Overview

This project guides students through building an E-commerce Backend System using a Microservices Architecture. Each service is developed independently with its own responsibilities, database, and codebase. The project introduces essential backend development practices such as authentication, inter-service communication, event-driven design, containerization, and API Gateway patterns.

By the end of the project, students will have hands-on experience in building, running, and deploying scalable microservices using modern tools and NodeJS-based frameworks.

e-Commerce Web App - Development Plan (12 Episodes)

Epoch Topic Technologies & Concepts Deliverables / Output
1 Introduction to Microservices & Architecture
Monolith vs Microservices, service boundaries
Microservice Architecture, Service Decomposition System architecture diagram, service definitions
2 Build the User Service (ExpressJS)
Registration, login, hashing, JWT generation, MongoDB connection
ExpressJS, Mongoose, JWT, bcrypt Functional user-service with authentication API
3 Build the Product Service (ExpressJS)
CRUD products, input validation, clean folder structure
ExpressJS, MongoDB, Joi product-service with independent CRUD API
4 Build the Order Service (ExpressJS)
Save order documents, use product & user IDs internally
ExpressJS, MongoDB order-service with basic order creation functionality
5 Notification Service using HonoJS
Minimalistic logging or alert service
HonoJS, REST API notification-service for async logs/notifications
6 Event-Driven Architecture with RabbitMQ
Publish/Subscribe model, message queue communication
RabbitMQ, amqplib Services publish and consume events asynchronously
7 JWT Authentication Across Services
Token verification, middleware, role-based access control
JWT, Express Middleware All protected routes verify JWT correctly
8 API Gateway (Custom-built)
Central routing, token checking, CORS handling
ExpressJS, Gateway Pattern A working api-gateway routing requests to services
9 Dockerize All Services
Dockerfile per service, docker-compose, internal networking
Docker, Docker Compose All services containerized and connected in one system
10 Redis Caching for Product Service
GET request caching, cache invalidation on update/delete
Redis, ioredis Cached product data with improved response time
11 Monitoring, Logging & CI/CD (Basic)
Logging with Winston, health checks, CI/CD via GitHub Actions
Winston, Morgan, Healthcheck, GitHub Actions System logs + automated test/deploy pipeline

Technologies & Libraries Used

Category Tools & Libraries
Languages JavaScript (ES6+), NodeJS
Frameworks ExpressJS, HonoJS
Databases MongoDB (via Mongoose), Redis (caching)
Authentication JSON Web Tokens (JWT), bcrypt
Message Broker RabbitMQ, amqplib
API Gateway Custom Express Gateway
Containerization Docker, Docker Compose
Logging & Monitor Winston, Morgan, Healthcheck Routes
CI/CD GitHub Actions
Testing (Optional) Postman, Thunder Client

E-commerce Microservices Architecture Diagram

alt text