This project is an e-commerce platform built using microservices architecture. It leverages various technologies such as PostgreSQL, Redis, RabbitMQ, and Docker to ensure scalability, reliability, and performance.
- Microservices Architecture: Each service is designed to be independent and scalable.
- PostgreSQL: Used as the primary database for storing user and order information.
- Redis Cache: Implemented for caching frequently accessed data to improve performance.
- Email Verification and Order Notifications: Utilizes
net/smtp
for sending verification emails and order notifications. - Social Login: Supports login via Google and Facebook using
github.com/markbates/goth
. - REST API: Provides a RESTful API for interaction with the services.
- Service Communication: Uses RabbitMQ for inter-service communication.
- Payment Integration: Integrated with MoMo and VNPay for payment processing.
- Docker: Configured to run all services in isolated containers.
- Docker
- Docker Compose
- PostgreSQL
- Redis
- RabbitMQ
-
Clone the repository:
git clone https://github.com/yourusername/ecommerce-microservices.git cd ecommerce-microservices
-
Set up environment variables:
cp .env.example .env
-
Update the
.env
file with your configuration details. -
Build and run the services using Docker Compose:
docker-compose up --build
- Access the API at
http://localhost:8000/api
. - Use the provided endpoints to interact with the services.
- Manages user registration, authentication, and profile management.
- Supports social login via Google and Facebook.
- Handles order creation, updates, and tracking.
- Sends order notifications via email.
- Integrates with MoMo and VNPay for payment processing.
- Sends email notifications for account verification and order updates.
- Services communicate with each other using RabbitMQ.
- Redis is used to cache frequently accessed data to improve performance.
- PostgreSQL is used as the primary database for storing user and order information.
- The project is containerized using Docker, making it easy to deploy and scale.
This project is licensed under the MIT License - see the LICENSE file for details.
- Mark Bates for the
goth
library. - MoMo and VNPay for payment integration.