This project is a simple CRUD for an e-commerce platform. It consists of 3 microservices: users, products, and orders. The service names indicate the resources handled by each service. The orders microservice connects to the products microservice to perform stock reservation and confirmation while an order is being placed.
The 3 microservices connect to the same database but use different schemas. This has been implemented to simulate each service being completely independent.
In front of the 3 microservices, an API gateway microservice named ecommerce is placed. It works as an aggregator and should be the only service exposed to the clients. It also provides authorization and caching, reducing the risk of unwanted requests to the inner microservices.
- Docker: Install Docker
- Docker Compose: Install Docker Compose
- Clone the Repository:
git clone ... cd b2chat - Start:
docker compose up
- When ready, visit swagger to get the openapi definition of the api-service
Some methods are protected and require login, only clients can be created from the login endpoint, in case you want to create an admin user, do it calling the user creation service directly through the user's microservice.
visit the docs folder to get postman collections for the endpoints
NOTE: no user provided by default
NOTE 2: in case you needed, you can use build-modules.sh to compile all the projects before starting the docker containers