In this project, we will be building a microservices architecture using various technologies. The goal is to create a scalable and maintainable system that can handle different services independently.
The project is organized into several directories, each representing a different microservice. Each service will have its own codebase, dependencies, and configuration files. The main directories include:
user-service: Handles user-related operations such as registration, authentication, and profile management.order-service: Manages order processing, including order creation, tracking, and history.product-service: Responsible for product catalog management, including adding, updating, and retrieving product information.
- FastAPI: A modern web framework for building APIs with Python 3.7+ based on standard Python type hints.
- Docker: A platform for developing, shipping, and running applications in containers.
- MongoDB: A NoSQL database for storing user, order, and product data.
- gRPC: A high-performance, open-source universal RPC framework for connecting services.
To get started with the project, follow these steps:
- Clone the repository:
git clone https://github.com/ahghanbari/microservices.git
- Navigate to the project directory:
cd microservices - Build and run the Docker containers:
docker-compose up --build
- Access the services through their respective endpoints:
- Get Help from the API documentation available at:
http://localhost:8001/docsfor User Servicehttp://localhost:8002/docsfor Product Servicehttp://localhost:8003/docsfor Order Service.
We welcome contributions to the project! If you would like to contribute, please fork the repository and submit a pull request. Make sure to follow the coding standards and include tests for any new features or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for more details.