This SpringBoot + Maven Project consists of a 5 different Microservices.
It uses Java 17.
- team-service
- This service loads Pokemon and default teams from the warehouse
- It also saves teams created by users and fetches Pokemon Image urls from a third party API
- This service also organize costs and currency assembling for responses to the api-gateway
- This service has an own instance of a PostgreSQL db to save Pokemon and Teams ( costs and ** currencies** aren't persisted )
- Is connected to api-gateway through RabbitMQ
- costs-service
- Calculates costs for Pokemon and Teams of Pokemon
- Is connected to team-service through RabbitMQ
- currency-service
- Calculates given costs into 3 different currencies ( Euro, Dollar, Bitcoin )
- Is connected to team-service through RabbitMQ
- identity-service
- This service has an own PostgreSQL instance to save Users and Roles for the Backend
- It's connected to the api-gateway through HTTP
- api-gateway
- This is the (only) entrance point for the Webclient to talk to the backend
- Is connected to the team-service through RabbitMQ
- Documented through Swagger - click to see exposed HTTP paths
- You can build and start the project with docker-compose by running
docker-compose up
in the rootdir.
- Every sub-repo has its own Dockefile so you can also run every maven module on its own
with
docker build ./service
- Every sub-repo has its own Dockefile so you can also run every maven module on its own
with
- For developing you can also use the intellij run-configurations as long as you're hosting a postgresqlDB with a
db called team-service
and identity-service.
You also need to have redis running on your local host as well as rabbitMQ.
For hosting we're using a Digital Ocean droplet running Ubuntu 20.04 LTS. You have to ssh into the Machine run git pull
and build the changed components via docker-compose.
The Droplet is accessible under this address: 128.199.35.167