Progetto sviluppato per l’esame di Ingegneria del Software (Prof. Morichetta - Prof. Polini) ST0496
TurisTown è una piattaforma innovativa progettata per la valorizzazione e digitalizzazione di un territorio comunale. La piattaforma permetterà il caricamento e la gestione di informazioni culturali, turistiche, sportive e di altre nature, connesse a punti geolocalizzati all’interno del comune.
Inoltre, permette ai cittadini di contribuire in modo collaborativo, caricando contenuti testuali e multimediali, che saranno pubblicati previa verifica della conformità da parte dei curatori.
Tali informazioni saranno utili sia per i residenti che per i visitatori del territorio.
Il progetto è stato sviluppato seguendo il modello di sviluppo incrementale, con iterazioni time-boxed della durata di 2 settimane ciascuna. Il modello di sviluppo incrementale prevede la realizzazione di un prodotto software in modo incrementale, suddividendo il lavoro in parti più piccole e più facili da gestire.
In totale sono state svolte 3 iterazioni, ognuna delle quali ha portato a un incremento del prodotto software.
Come strumento di versioning è stato utilizzato Git e GitHub attraverso i quali è stato distinto un’unico branch per lo sviluppo.
Le varie iterazioni hanno dato origine ai seguenti artefatti:
Nel corso della prima iterazione abbiamo effettuato l’analisi dei requisiti del progetto, che hanno poi gettato le basi del sistema. A seguire abbiamo definito il diagramma dei casi d’uso, dettagliandone le varie descrizioni e funzionalità, per poi terminare l’iterazione con la prima stesura del diagramma delle classi di analisi, dove abbiamo rappresentato le caratteristiche e le relazioni tra le varie entità richiamate dal sistema.
Durante la seconda iterazione abbiamo proseguito dettagliando più nello specifico il diagramma dei casi d’uso, inserendo le pre e post condizioni necessarie, e definendo le sequenze degli eventi principali. Inoltre abbiamo adattato il diagramma delle classi di analisi alle modifiche apportate al progetto, dovute dalla rielaborazione di alcune idee. Siamo andati a definire il diagramma delle classi di progetto, di pari passo con l’implementazione delle classi su IntelliJ e abbiamo terminato l’iterazione creando il diagramma di sequenza per alcuni casi d’uso.
Nella terza iterazione abbiamo terminato la creazione dei diagrammi di sequenza e siamo andati a completare in maniera definitiva il diagramma delle classi di progetto con le relative implementazioni del codice. Abbiamo scelto di utilizzare Gradle come strumento di build automation per la gestione delle dipendenze del progetto e H2 come database per la persistenza dei dati. Abbiamo poi migrato il backend del progetto su Spring Boot. Inoltre, abbiamo implementato le API REST, documentate tramite Swagger, e abbiamo iniziato a testare le API tramite l’applicativo Postman per eseguire i test.
Per la sicurezza delle API è stata utilizzata la libreria Spring Security, che permette di gestire l’autenticazione e l’autorizzazione degli utenti. In particolare, l’autenticazione è basata su username e password dell’utente, mentre l’autorizzazione è basata su ruoli assegnati all’utente.
Nella piattaforma sono già registrati diversi utenti con ruoli differenti, tutti elencati all’interno della documentazione presente su Postman.
POI
.Contenuto
.Prerequisiti
Installazione