Welcome to the Multi-Vendor E-commerce Platform project! This project aims to create a scalable, feature-rich e-commerce platform, including an admin portal for managing the platform, a vendor portal for sellers, and a public website for customers.
- Backend: Golang, gRPC, RESTful APIs.
- Frontend: React.js (Admin Portal), Next.js (Vendor Portal & Public Website).
- Containerization: Docker for easy deployment and scaling.
- Databases: MySQL, MongoDB, Redis.
- Monitoring and Logging: Grafana, Loki, Prometheus, Zipkin.
- Messaging: Kafka.
- Sign-up and OTP verification implemented in the authentication service.
- Mail service is completed; any service can send mail using Kafka.
- Complete all basic authentication functionality, such as login, forgot password, etc.
- Use Redis to cache authentication sessions.
High-level design of the multi-vendor e-commerce platform.
The project employs various technologies to ensure efficiency, scalability, and maintainability:
- Microservices Architecture: Utilizing Golang and modern frameworks for seamless communication across the platform.
- Frontend Development: React.js for the admin portal and Next.js for vendor portals and the public website.
- Containerization: Docker for efficient deployment and scaling of microservices.
- Monitoring and Logging: Grafana, Loki, Prometheus, and Zipkin for performance monitoring and analysis.
- Data Storage and Caching: MySQL, MongoDB, and Redis for efficient data handling.
Monitoring and logging dashboard.
To get started with the project, follow these steps:
- Clone the repository.
- Install Docker and Docker Compose.
- Run
make up-dev
ordocker-compose -f ./build/compose/compose.dev.yaml
to start the services. - Access the respective portals and websites via the provided URLs.
Here's a list of ports used by the project:
Name | Port |
---|---|
Admin Portal | 3000 |
Vendor Portal | 3001 |
Website | 3002 |
Broker | 7000 |
Broker-GraphQL | 7000 |
Authentication | 8000 |
MySql | 3306 |
Redis | 6379 |
Kafka-internal | 29092 |
Kafka-external | 9092 |
Grafana Dashboard | 15000 |
Grafana Loki | 3100 |
Prometheus | 15002 |
Zipkins | 9411 |
Contributions to the project are encouraged! Whether you're interested in adding new features, fixing bugs, or improving documentation, please submit pull requests. Follow the contribution guidelines outlined in CONTRIBUTING.md
.
For any questions, suggestions, or further assistance, feel free to reach out:
- Twitter: @samarthasthan
- Email: [email protected]