This is the main repository of microservice-based My Message in a Bottle application, project of Advanced Software Engineering course of the MSc in Computer Science, University of Pisa.
Mark with bold the person(s) that has developed this microservice.
Name and Surname | |
---|---|
Laura Norato | l.norato@studenti.unipi.it |
Emanuele Albertosi | 20783727@studenti.unipi.it |
Michele Zoncheddu | m.zoncheddu@studenti.unipi.it |
Alessio Russo | a.russo65@studenti.unipi.it |
Matteo Pinna | m.pinna10@studenti.unipi.it |
The project is an implementation of the monolith application with a microservice-based architecture, specifically splitting the previous monolith in at least three microservices. In short, users can register to the platform, customize their profile section, report/block/unblock other users with negative behaviour, exchange time-capsule messages (implemented with Celery tasks running in the background) etc..
To clone the repository you have to specify the recursive parameter, in this way:
git clone --recursive git@github.com:<team_leader_username>/<main-project>.git
All the submodules will be fetched from GitHub and they will be placed inside the project root.
If you want to add a microservice (hence a submodule), you have to run the command:
git submodule add -b <branchName> <repoURL>
If a developer has pushed to branch and you want to pull the updates, you have to run the following command:
git submodule update --remote
If you are not familiar with git submodules or you have some doubts about it, you can check the git-scm documentation here.
Each micro-service should have a single configuration file, placed inside the main project root, with the name <microservice_name>_ms.conf
. An example of this can be found in the project root.
The project structure should be the following:
Application is built with docker-compose. To build the environment you have to run
docker-compose build
To startup application you can issue the following command:
docker-compose run
The default application environment for this application is production.