Skip to content

Management system for restaurant's orders using hexagonal-fashioned microservices using spring-boot, mariaDB, CI/CD and deployment in docker-compose

Notifications You must be signed in to change notification settings

isaacmaffeis/ServeEasy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ServeEasy

Software Gestionale per il managing di un'attività di ristorazione con design a microservizi.

Componenti attualmente in beta:

  • serveeasy_gateway: gateway per comunicazione unificata col sistema;
  • GestioneComanda: schedulazione algoritmica degli ordini tramite struttura a priorità;
  • GestioneCucina: gestione a code verso le postazioni di cucina, classificate per ingrediente;
  • GestioneCliente: gestione di comande (intesa come collezione dei singoli ordini) ed ordini verso il dispositivo cliente.

Algoritmo attualmente in beta: indexMinPQ buffer producer-consumer pattern per schedulazione ordini.

Setup del deployment (demo)

Prima di procedere è necessario possedere Docker Desktop (Windows, Mac) o Docker Engine (Linux, Mac).

Si può clonare questa repository con git, oppure è sufficiente creare una cartella dove copiare la cartella db/ ed il file docker-compose.yaml di questa repository, ricreando la seguente struttura:

cartella/
└───db/
│   └───initial-data-and-schema.sql 
└───docker-compose.yaml

In particolare, initial-data-and-schema.sql contiene schema SQL e dati di prova ai fini della demo.

Deploy del sistema a microservizi utilizzando Docker Compose

Per scaricare le dipendenze ed avviare la rete di microservizi, aprire una riga di comando nella cartella contenente il docker-compose.yaml e digitare il comando:

docker compose up

demo gif

Durante il caricamento, verifica la salute della rete. Apri una riga di comando e digita:

docker ps

Puoi interagire col sistema non appena vedi solo "healthy" di fianco ai servizi interessati. demo img Per disattivare la rete e rimuovere i container si può procedere con la combinazione tasti Ctrl + C oppure, con una riga di comando nella cartella contenente il docker-compose.yaml digitare il comando:

docker compose down

demo gif 2

Se invece si volessero mantenere i container per riattivarli successivamente si può utilizzare il comando

docker compose stop

Testing della demo

Di seguito vengono riportate delle chiamate di prova per il collaudo. Le chiamate documentate e pubblicate su Postman sono disponibili qui.

aggiornamento: ora che il docker-compose.yml è dotato del componente gateway, tutte le chiamate vanno redirette verso 8083. Le chiamate di test verso GestioneComanda non sono direttamente disponibili. Togliere i commenti dal docker-compose.yml se si vuole ripristinare il port-binding verso localhost:8082, localhost:8081 e localhost:8080.

Ai fini della demo è stato incluso un file reset_db.bat per eliminare i dati del database, da usare solamente prima o dopo l'avvio della demo . pagina1 pagina2

About

Management system for restaurant's orders using hexagonal-fashioned microservices using spring-boot, mariaDB, CI/CD and deployment in docker-compose

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 97.3%
  • JavaScript 2.3%
  • Other 0.4%