Strumenti utilizzati
Per la realizzazione del progetto sono stati utilizzati differenti tool a supporto del processo di sviluppo. Tali strumenti, hanno come obiettivo quello di agevolare gli sviluppatori durante tutta la realizzazione del progetto, cercando di automatizzarne i diversi aspetti.
GitHub
GitHub è un servizio di hosting per lo sviluppo del software e gestione del version-control basato su Git. Fornisce: il distributed version control di Git più l’access control, il tracciamento dei bug, le richieste di funzionalità software, la gestione delle attività, l’integrazione continua e wiki per ogni progetto.
Per il nostro progetto abbiamo utilizzato: GitHub come servizio di hosting per il codice sorgente, le GitHub actions per promuovere il processo di continuous integration e le GitHub Pages per la documentazione e spiegazione del sistema realizzato.
Renovate
Renovate è un popolare strumento di automazione per il controllo delle dipendenze dei progetti software. È progettato per semplificare il processo di aggiornamento delle dipendenze del codice, come librerie, framework e plugin, mantenendo i progetti aggiornati con le ultime versioni disponibili.
MongoDB
MongoDB è un database non relazionale open source, in grado di elaborare dati strutturati, semi-strutturati e non strutturati. Si tratta di un database orientato ai documenti che sfrutta un linguaggio di query non strutturato.
MongoDB, quindi, si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON, rendendo l’integrazione di alcuni tipi di dati più facile e veloce.
Docker
Docker è una piattaforma open-source per lo sviluppo, il rilascio e l’esecuzione di applicazioni. Esso consente di separare le applicazioni dall’infrastruttura dell’host, in modo da poter fornire il software rapidamente.
Docker consente di racchiudere un’applicazione in un ambiente isolato chiamato container. È possibile eseguire più container isolati all’interno di uno stesso host. I Container sono lightweight e pensati per fornire solo il necessario ad eseguire l’applicazione che essi contengono.
npm
Npm è il package manager per la piattaforma Node JavaScript. Mette i moduli al loro posto in modo che node possa trovarli e gestisce in modo intelligente i conflitti di dipendenza. È estremamente configurabile per supportare un’ampia varietà di casi d’uso. Più comunemente, viene utilizzato per pubblicare, scoprire, installare e sviluppare programmi node.