MicroFreshener is a web-based prototype that enables to identify bad architectural smells that possibly violate principles of microservices, and to select suitable refactorings to resolve them.
MicroFreshener has a web-based interface that allows to:
- Draw and edit the architectures of microservices
 - Manage teams and their owned nodes
 - Analyse the architecture to identify architectural smells
 - Apply refactorings
 
MicroFreshener can be used either as admin or team member.
- You can login as administrator by typing 
adminin the login page - You can login as a team member by typing the exact name of your team in the login page
 
In order to run MicroFreshener you should run both the server and the client (for local use only).
In order to use MicroFreshener you should first download the repository:
git clone https://github.com/di-unipi-socc/microFreshener.gitEnter the server directory.
cd serverCreate a virtual environment and install the Python dependencies. Python3.8+ is needed.
virtualenv -p="/usr/bin/python3.8" venv  
source venv/bin/activate 
pip install -r requirements.txt If you're using Windows, type this instead.
python -m venv venv  
Set-ExecutionPolicy Unrestricted -Scope Process
.\venv\Scripts\Activate.ps1
pip install -r requirements.txtApply migrations (if this doesn't work, try running it after you already run the server once)
python manage.py migrate
Run the local server
python manage.py runserver
// expose the server to a specific port
python manage.py runserver 0.0.0.0:8000
The client is an Angular web application.
cd clientInstall the project dependencies.
npm installThen, serve the client with a local server by typing
sudo ng serveor
sudo npm startIn case of ERR_OSSL_EVP_UNSUPPORTED error, type export NODE_OPTIONS=--openssl-legacy-provider before ng serve.
Open the bowser on http://localhost:4200/.
Make sure to install the following dependencies:
pip install websocket
pip install docopt
pip install texttable
pip install dockerpty
pip install websocket-clientCreate the docker network
docker network create webBuild the image
docker-compose -f docker-compose.prod.yml builddocker-compose -f docker-compose.prod.yml upOpen the bowser on http://localhost:80.
