This project is a full-scale, production-ready e-commerce backend built using a microservice architecture. It is designed to manage an online store for selling audio systems and event management equipment.
- Architecture
- Tech Stack
- Microservices
- Message Broker
- Setup and Installation
- API Documentation
- CI/CD Pipeline
- Testing
- Contributing
- License
The system is designed as a microservice architecture, with each service handling a specific business domain. Services communicate asynchronously using RabbitMQ.
- Node.js
- TypeScript
- Mongodb a Nosql db for storing data
- RabbitMQ for asynchronous messaging
- Redis for caching and session management
- Firebase Admin for user authentication
- JWT for token-based authentication
- Cloudinary for image storage and management
- Docker for containerization
- CI/CD using GitHub Actions
- Postman for API testing and documentation
Handles user authentication, registration, and profile management.
Features:
- User registration and login
- Profile management
- Role-based access control
Manages products, categories, and stock levels.
Features:
- Product and category management
- Stock updates
- Product reviews
Handles order creation, item management, and status updates.
Features:
- Order management
- Order status tracking
Processes payments and manages transactions.
Features:
- Payment processing
- Transaction management
- Refund handling
Manages and syncs stock levels.
Features:
- Inventory management
- Stock adjustments
Sends email and SMS notifications.
Features:
- Email notifications
- SMS notifications
- Notification templates management
RabbitMQ is used to facilitate asynchronous communication between microservices. It handles various events such as user registration, order creation, and payment processing.