Welcome to BlogLog, where your blog adventure begins! Save, rate, and discover your favorite blogs, while keeping tabs on what your friends are reading. 📚💬
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.
- blog: Manages blog creation, updates, and data handling.
logger.py: Logging configuration for the application.schema.py: Schema definitions for the GraphQL API.tests: Contains unit tests for the application.
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.
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 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
serverdirectory. - web-client: BlogLog frontend, built from the
clientdirectory. - postgres: PostgreSQL container for Airflow.
- airflow-webserver, airflow-scheduler, airflow-init: Containers for Airflow setup and scheduling.
- Save, rate, and discover blogs.
- Follow and interact with friends.
- Scrape data from various sources.
- Modular architecture with MongoDB and Airflow integration.