Skip to content

sebastian-montero/bloglog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlogLog

Welcome to BlogLog, where your blog adventure begins! Save, rate, and discover your favorite blogs, while keeping tabs on what your friends are reading. 📚💬

Project Structure

Server

This directory contains the backend for BlogLog, built with a modular domain-driven design.

  • bloglog: The main application directory.
    • app.py: Entry point of the application.
    • conn: Connection handlers, primarily for MongoDB.
      • mongo.py: MongoDB connection setup.
    • domain: Contains different domains that manage various aspects of BlogLog.
      • blog: Manages blog creation, updates, and data handling.
        • _model.py, _repository.py, _resolver.py, _service.py: Handles models, repositories, resolvers, and services for blog data.
      • bookmark: Manages bookmark functionality.
        • _model.py, _repository.py: Defines models and repositories for bookmarks.
      • follow: Handles user following functionality.
        • _model.py, _repository.py: Manages follow models and repositories.
      • like: Manages like interactions on blogs.
        • _model.py, _repository.py, _resolver.py, _service.py: Defines models, repositories, resolvers, and services for likes.
      • rate: Handles blog rating functionality.
        • _model.py, _repository.py: Manages rating models and repositories.
      • user: Manages user information and actions.
        • _model.py, _repository.py, _resolver.py, _service.py: Defines models, repositories, resolvers, and services for users.
    • logger.py: Logging configuration for the application.
    • schema.py: Schema definitions for the GraphQL API.
    • tests: Contains unit tests for the application.

Client

This directory holds the frontend code for BlogLog, developed with a focus on modular components and a clean layout.

  • app: The main frontend application folder.
    • layout.js: Main layout file.
    • login, profile, save, search_user, signup, user: Subdirectories containing page components.
  • components: Reusable components such as NavBar.js.
  • graphql: Contains GraphQL queries and mutations.
    • queries.js: Contains all GraphQL queries.
    • mutations.js: Contains all GraphQL mutations.
  • lib: Application utilities and setup.
    • apolloClient.js: Apollo Client setup for GraphQL.
  • pages: Next.js pages and API routes.
    • _app.js: Custom App component.
    • _document.js: Custom Document component.
    • api: API routes, e.g., hello.js.
  • styles: Global CSS styling.
    • globals.css: Main stylesheet.

Airflow

Contains scripts for data scraping and task management.

  • hn_scrape.py, lobsters_scrape.py, tildes_scrape.py: Scripts to scrape data from different sources.
  • __pycache__: Compiled Python files for caching.

Docker

Docker configuration to set up services required by BlogLog.

  • mongodb: MongoDB container for database storage.
  • mongo-express: MongoDB web interface.
  • server: BlogLog server, built from the server directory.
  • web-client: BlogLog frontend, built from the client directory.
  • postgres: PostgreSQL container for Airflow.
  • airflow-webserver, airflow-scheduler, airflow-init: Containers for Airflow setup and scheduling.

Features

  • Save, rate, and discover blogs.
  • Follow and interact with friends.
  • Scrape data from various sources.
  • Modular architecture with MongoDB and Airflow integration.

About

A social platform to share blogs with friends and see what they're reading 🪵

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors