Eco-Dex is a modern, scalable e-commerce platform built using a microservices architecture. The platform provides a robust foundation for building and deploying e-commerce applications with features like user management, product catalog, shopping cart, order processing, payment integration, and real-time notifications.
- Microservices-based architecture for modularity and scalability
- Event-driven communication using Apache Kafka
- Distributed caching with Redis
- Load balancing and API Gateway using Nginx
- Container orchestration with Kubernetes
- Horizontal scaling of services based on load
- Database sharding and replication
- Caching strategies at multiple levels
- Message queue for asynchronous processing
- CDN integration for static assets
- JWT-based authentication
- Role-based access control (RBAC)
- API rate limiting
- Data encryption at rest and in transit
- Regular security audits and penetration testing
The platform consists of the following microservices:
- User Service (Port 3001): Handles user authentication, authorization, and profile management
- Product Service (Port 3002): Manages product catalog, inventory, and search functionality
- Cart Service (Port 3003): Manages shopping cart operations with Redis-based caching
- Order Service (Port 3004): Processes orders and manages order lifecycle
- Payment Service (Port 3005): Handles payment processing and transaction management
- Notification Service (Port 3006): Manages real-time notifications and alerts
- Backend: Node.js microservices
- Database: PostgreSQL
- Caching: Redis
- Message Broker: Apache Kafka
- API Gateway: Nginx
- Containerization: Docker
- Container Orchestration: Kubernetes
- Infrastructure as Code: Terraform
- Monitoring: Prometheus, Grafana, ELK Stack
- Elasticsearch integration for product search
- Advanced filtering and faceted search
- Search suggestions and autocomplete
- Image optimization and lazy loading
- Database query optimization
- Response caching
- Minification and bundling of assets
- Real-time analytics dashboard
- Sales and inventory reports
- User behavior tracking
- Performance metrics monitoring
- Docker and Docker Compose
- Node.js (v14 or higher)
- Make (for using Makefile commands)
-
Clone the repository:
git clone https://github.com/rowjay007/eco-dex.git cd eco-dex -
Set up the development environment:
make dev-setup
-
Install dependencies for all services:
make build
-
Start the services using Docker Compose:
make docker-up
-
Access the services:
- API Gateway: http://localhost:8080
- Individual service endpoints are available at their respective ports
The platform uses a centralized .env file for base configuration, with service-specific .env files for individual service configuration. Key environment variables include:
NODE_ENV: Application environmentDB_*: Database configurationREDIS_*: Redis configurationKAFKA_*: Kafka configuration- Service-specific ports and configurations
For a detailed roadmap of the project, please visit: Scalable E-commerce Platform Roadmap
├── services/ # Microservices
├── infrastructure/ # Infrastructure configuration
│ ├── kubernetes/ # Kubernetes manifests
│ ├── terraform/ # Terraform configurations
│ ├── nginx/ # API Gateway configuration
│ └── monitoring/ # Monitoring setup
├── docs/ # Documentation
└── scripts/ # Utility scripts
make build: Build all servicesmake test: Run all testsmake clean: Clean up build artifactsmake docker-up: Start all servicesmake docker-down: Stop all services
The platform can be deployed to various cloud providers using Terraform and Kubernetes. Detailed deployment guides are available in the docs/deployment directory.
Continuous Integration and Deployment is handled through GitHub Actions workflows in the .github/workflows directory.
- Prometheus & Grafana: Metrics and monitoring dashboards
- ELK Stack: Centralized logging
- Health Checks: Available for all services
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a 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.