This repository contains the code for the microservices with Golang Ecommerce project. The project is divided into multiple microservices, each responsible for a specific part of the business.
- Product Service: Responsible for managing products.
- User Service: Responsible for managing users.
- Cart Service: Responsible for managing the cart.
- Order Service: Responsible for managing orders.
- Payment Service: Responsible for managing payments.
- Shipping Service: Responsible for managing shipping.
The project is built using the microservices architecture. Each service is a separate codebase and is deployed separately. The services communicate with each other over HTTP.
- Golang: All the services are built using Golang.
- MySQL: MySQL is used as the database.
- Docker: Docker is used to containerize all the services
- Postman: Postman is used for API testing.
- Gorilla Mux: Gorilla Mux is used as the router for all the services.
- Gorm: Gorm is used as the ORM for the project.
- RabbitMQ: RabbitMQ is used as the message broker. It is used for communication between services.
- Testify: Testify is used for testing in Golang.
- Clone the repository
- Run
make up
to start all the services
The project contains tests for all the services. To run the tests, run the following command:
make up
docker-compose build
make test
make docker-test
make docker-test-monolith
make docker-test-microservices