Skip to content

A scalable e-commerce application using microservices architecture with Node.js, MongoDB, Docker, and RabbitMQ for backend services. The frontend is under development using React.js and Redux

Notifications You must be signed in to change notification settings

AmaedaQ/ecommerce-microservices-App

Repository files navigation

E-Commerce Microservices Application

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.

Architecture Overview

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.

Technology Stack

Backend (Completed)

  • 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.

Frontend (In Progress)

  • 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.

Setup Instructions

To set up the project locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/AmaedaQ/ecommerce-microservices.git
    cd ecommerce-microservices
  2. Install the dependencies:

    npm install
  3. 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.

Project Roadmap

  • 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.

Future Enhancements

  • 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.

Links

Contributing

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.

About

A scalable e-commerce application using microservices architecture with Node.js, MongoDB, Docker, and RabbitMQ for backend services. The frontend is under development using React.js and Redux

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages