This repository contains the code for a scalable, modular e-commerce application built using a microservices architecture. The backend services are fully developed, while the frontend is currently under construction. This project aims to showcase the flexibility and scalability of microservices in building complex e-commerce platforms.
The application is designed using a microservices architecture, where each service is responsible for a specific domain. The key services in the system include:
- Authentication Service: Manages user registration, login, and authentication using JWT.
- Product Service: Handles product catalog management, including product details, categories, and inventory.
- Order Service: Processes orders and manages order details, including payment processing.
- Cart Service: Manages the shopping cart, allowing users to add and remove products.
- Notification Service: Sends email notifications for order status updates and other user interactions.
- Node.js & Express: The backend services are developed using Node.js and Express for building RESTful APIs and handling HTTP requests.
- MongoDB & Mongoose: MongoDB is used as the database to store product, user, and order information, with Mongoose providing an elegant solution for interacting with the database.
- RabbitMQ: RabbitMQ serves as the message queue system, facilitating communication between microservices.
- Docker: All services are containerized using Docker to ensure consistent deployment across environments and improve scalability.
- React.js & Next.js: The frontend is under development, with plans to use React.js and Next.js for a responsive and fast user interface.
- Redux/Context API: These tools will be used for state management to handle global application state.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/AmaedaQ/ecommerce-microservices.git cd ecommerce-microservices -
Install the dependencies:
npm install
-
Run the services using Docker Compose:
docker-compose up -d
This will start all the backend services as Docker containers. Ensure that Docker is installed and running on your machine before proceeding.
- Frontend Integration: The frontend UI will be built using React.js and Next.js.
- Payment Gateway Integration: Integration of a third-party payment gateway for processing real transactions.
- Monitoring & Logging: Implementation of monitoring and centralized logging solutions, such as Prometheus and ELK Stack, to track the performance and health of the services.
- Cart Service: Enhancements for better handling of dynamic product configurations and promotional offers.
- Security: Implementation of additional security features, including rate limiting, data encryption, and advanced authentication mechanisms.
- Automated Testing: Adding comprehensive unit and integration tests to ensure reliability and code quality.
- GitHub Repository: E-commerce Microservices App
Contributions to the project are welcome. To contribute, please fork the repository, create a new branch, and submit a pull request. Ensure that your contributions align with the existing code style and include tests where applicable.