Skip to content

Resolving architectural smells in microservices via refactorings.

License

Notifications You must be signed in to change notification settings

di-unipi-socc/microFreshener

Repository files navigation

MicroFreshener

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.

Table of Contents

Web-based interface

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 admin in the login page
  • You can login as a team member by typing the exact name of your team in the login page

Quick Guide

In order to run MicroFreshener you should run both the server and the client (for local use only).

Installation

In order to use MicroFreshener you should first download the repository:

git clone https://github.com/di-unipi-socc/microFreshener.git

Run the server

Enter the server directory.

cd server

Create 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.txt

Apply 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

Run the client

The client is an Angular web application.

cd client

Install the project dependencies.

npm install

Then, serve the client with a local server by typing

sudo ng serve

or

sudo npm start

In case of ERR_OSSL_EVP_UNSUPPORTED error, type export NODE_OPTIONS=--openssl-legacy-provider before ng serve.

Open the bowser on http://localhost:4200/.

Install MicroFreshener using Docker compose

Make sure to install the following dependencies:

pip install websocket
pip install docopt
pip install texttable
pip install dockerpty
pip install websocket-client

Create the docker network

docker network create web

Build the image

docker-compose -f docker-compose.prod.yml build
docker-compose -f docker-compose.prod.yml up

Open the bowser on http://localhost:80.

About

Resolving architectural smells in microservices via refactorings.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published