- Sohaib Ibenhajene
- Jarne Dirken
- Introduction
- Architecture
- Github Repositories
- CI-CD pipeline
- GitHub Actions
- Docker Compose
- Docker Desktop
- 0Auth2 Security
- Postman
- Unit tests
- Conclusion
In our project we developed a Java backend achitecture of the basis of microservices. The acrhitecture includes:
- 4 microservices
- Two MySQL backend microservices
- Two MongoDB backend microservices
- Github Actions pipline
- Api related stuff
- Local hosting (Okteto didn't work anymore)
Our story is that we want to let people see football matches, clubs, players and transfers.
Our application has the following achitecture:
All code and version control is handled by GitHub actions. A GitHub workflow is made made. This includes building and uploading a docker container of each service.
This Docker Compose file serves as a blueprint for orchestrating a network of connected services within a containerized environment. It essentially defines a set of containers, each encapsulating a specific component of a larger application. The containers include databases like MongoDB and MySQL, as well as custom services for handling match, player, club, and transfer-related data.
Because the okteto hosting didn't work at the time of making this project. We did everything local and used docker desktop.
We secrured our API gateway with 0Auth2. This way you can only do the basic function without being autorized (like view all the upcomming matches, view all the clubs and players). But it's not possible for anyone to delete a club, edit, etc... .
Here I try calling one club without being authorised: As you can see this didn't work. Now let's try the same call but with our 0auth2 token.
Here you can see that the request did indeed work as expected.
Here you can view all of our requests.
The second Club has now been updated
The Match has now been created
The Player has now been created
Of course we used Unit tests. Here you can see that we did unit tests in all of our services. These tests have a 100% coverage on our service classes.
We found this project to be really challenging, but at the same time also very fun. We gained a lot of new knowledge from this project.
#itfactory #thomasmore