This is an experimental E-Commerce Platform built with a modern microservices architecture using:
- NestJS (TypeScript framework)
- RabbitMQ (message broker)
- Prisma (ORM)
- OAuth2.0 (for authentication/authorization)
- Docker & Docker Compose
- Swagger (OpenAPI documentation)
- GitHub Actions (CI/CD)
- Jest (testing framework)
- Winston (logging)
- Grafana (monitoring)
The goal of this project is to build a scalable, modular, and production-ready e-commerce system using best practices.
Each major domain of the system will be implemented as a separate microservice, communicating via RabbitMQ.
✅ Monorepo project structure ✅ Basic Gateway → Auth Service RPC communication ✅ Dockerized RabbitMQ broker ✅ Initial GitHub repository setup
- Gateway API
- Auth Service
- Products Service
- Orders Service (future)
- Payments Service (future)
- Notifications Service (future)
git clone https://github.com/Armnajafi/nestjs-ecommerce-api.git
cd nestjs-ecommerce-api
docker-compose up -d
# In separate terminals:
npm run start --prefix apps/gateway
npm run start --prefix apps/auth
npm run start --prefix apps/products
[ Client ] → [ Gateway API ] → [ RabbitMQ ] → [ Microservices ]
↳ Auth Service
↳ Products Service
↳ Orders Service
↳ Payments Service
↳ Notifications Service
This project is licensed under the MIT License.