A modern, scalable e-commerce platform built using microservices architecture. This project demonstrates best practices in distributed systems design, containerization, and cloud-native development.
The platform consists of the following microservices:
- User Service (Java/Spring Boot): Handles user authentication, registration, and profile management
- Product Service (Java/Spring Boot): Manages product catalog and inventory
- Order Service (Python/FastAPI): Processes customer orders and manages order lifecycle
- Notification Service (Node.js): Handles system notifications and communications
- Backend Services: Java (Spring Boot), Python (FastAPI), Node.js
- Database: PostgreSQL, MongoDB
- Authentication: JWT-based authentication
- API Gateway: API Gateway for routing and load balancing
- Container Orchestration: Kubernetes
- Infrastructure as Code: Terraform
- CI/CD: GitHub Actions
- Docker and Docker Compose
- Kubernetes cluster (for production deployment)
- Java 11 or higher
- Python 3.9 or higher
- Node.js 14 or higher
- Clone the repository:
git clone https://github.com/yourusername/ecom-microservices.git
cd ecom-microservices- Start the services using Docker Compose:
cd infrastructure
docker-compose up -d- Access the services:
- API Gateway: http://localhost:8080
- User Service: http://localhost:8081
- Product Service: http://localhost:8082
- Order Service: http://localhost:8083
- Notification Service: http://localhost:8084
├── .github/workflows # CI/CD pipeline configurations
├── api-gateway # API Gateway service
├── docs # Project documentation
├── infrastructure # Docker, K8s, and Terraform configs
├── scripts # Utility scripts
└── services # Microservices
├── user-service
├── product-service
├── order-service
└── notification-service
-
Code Style
- Follow language-specific style guides
- Use consistent naming conventions
- Write comprehensive unit tests
-
Git Workflow
- Create feature branches from
develop - Use meaningful commit messages
- Submit PRs for code review
- Create feature branches from
-
API Design
- Follow RESTful principles
- Use consistent error handling
- Document APIs using OpenAPI/Swagger
- Apply Kubernetes configurations:
kubectl apply -f infrastructure/kubernetes/- Verify deployments:
kubectl get podsTerraform configurations are available in infrastructure/terraform/ for cloud deployment.
- Kubernetes dashboard for cluster monitoring
- Prometheus and Grafana for metrics
- ELK stack for centralized logging
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branchw
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions, please open an issue in the GitHub repository.
Last Updated: 22-03-2025 ⸺ Last Reviewed: 22-03-2025