Skip to content

Explore our online book reading platform's codebase featuring Django, ASP.NET, Go, Node.js, and PostgreSQL services.

Notifications You must be signed in to change notification settings

alitaami/Bookland

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookLand Online Book Reading Platform

Welcome to BookLand, your premier destination for accessing a vast library of books and enjoying a seamless reading experience online. Our platform is designed to cater to book enthusiasts, providing a diverse collection of titles across various genres, authors, and languages.

Screenshots

For a visual overview of our platform's interface and features, please refer to the Screenshots section. Screenshots showcase different aspects of our online book reading platform, including the user interface, book browsing, and interactive features.

You can view the presentation of BookLand View Presentation Videos

System Architecture Overview

Our online book reading platform employs a distributed monolithic architecture, leveraging various technologies to deliver a seamless user experience. Here's an overview of the services comprising our system architecture:

Services Diagram

  • ASP.NET (Wallet Service): Manages user wallet functionality, including transactions and balances.
    GitHub Link: ASP.NET Wallet Service

  • Django (User & Books Service): Handles user management, authentication, and book-related functionalities.
    GitHub Link: Django Service

  • Go (File Server): Responsible for storing and serving book files securely.
    GitHub Link: Go File Server

  • Go (Search Service): Facilitates book search functionality, enabling users to discover relevant content.
    GitHub Link: Go Search Service

  • ASP.NET (Order & Discount Service): Handles order processing and applies discounts for users.
    GitHub Link: ASP.NET Order & Discount Service

  • Node.js (Comment & Review Service): Manages user comments and reviews for books.
    GitHub Link: Node.js Comment & Review Service

  • Front-End Framework: For the front-end, we've utilized Next.js to build a responsive and interactive user interface.
    GitHub Link: Next.js Front-End

Database Schema

BookLand utilizes a PostgreSQL database to store its data. The database schema includes tables for users, books, publishers, authentication, and other related information. Here's a brief overview of the main tables:

DataModels

State Diagram

The state diagram illustrates the various states and transitions involved in the authentication process, providing insights into the user flow within the platform.

StateDiagram

Usage & Deployment

To deploy our system locally using Docker, follow these steps:

  1. Clone Repositories: Clone all the service repositories from GitHub to your local machine. Ensure that you have Git installed and configured.

  2. Install Docker: If you haven't already, install Docker on your system. You can download and install Docker Desktop from the official Docker website.

  3. Create Docker Network: Create a Docker network to enable communication between the services. Run the following command in your terminal:

    docker network create my_network

    This command will create a Docker network named my_network.

  4. Compose Services: Navigate to each service directory and use Docker Compose to bring up the services. Run the following command in each service directory:

    docker-compose up -d

    This command will start the service containers in detached mode, allowing them to run in the background.

  5. Verify Deployment: Once all services are up and running, you can verify the deployment by accessing the respective endpoints or by interacting with the system through the provided interfaces.

About

Explore our online book reading platform's codebase featuring Django, ASP.NET, Go, Node.js, and PostgreSQL services.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published