-
Notifications
You must be signed in to change notification settings - Fork 0
Milestone #6
Deadline 7 giugno

- app: codice riguardante il backend dell'applicazione, qui sono definite tutte le api RESTful
- app/models: qui abbiamo definito i modelli per le collezioni dati che verranno poi salvate in MongoDb
- app/tests: qui abbiamo salvato tutti i test
- doc: contiene la versione 2 della documentazione
- public/images: static folder contenente le immagini che vengono visualizzate nel frontend dell'applicazione
- static: in questa cartella abbiamo inserito la UI e il frontend dell'applicazione
- utils: in questa cartella abbiamo deciso di mettere file utili per il progetto e per il backend dell'applicazione.
Il goal di questo sprint è quello di implementare gli ultimi punti del product backlog (come la gestione delle stanze e l'aggiunta dei filtri di ricerca) e sviluppare ulteriormente alcuni punti della versione 1 del software. Alla fine dello sprint vorremmo arrivare ad ottenere una versione 2 del web service che è stata testata e di cui è stato fatto il deploy su Heroku.
Sprint Planning (Commentare aspetti rilevanti del meeting + inserire link allo Sprint Backlog con tabella e burndown chart):
Sprint Backlog #1 Sprint Backlog #2
Durante lo sprint planning abbiamo scelto su quali user story concentrarci per il secondo sprint e come suddividerle in task, inoltre abbiamo verificato che l'ordine e la priorità con cui devono essere implementate sia quella corretta. Per quanto riguarda la stima del tempo necessario a compiere ogni task abbiamo tenuto conto dell'esperienza ottenuta durante il primo sprint e abbiamo cercato di regolarci di conseguenza.
Alla fine dello sprint ci siamo riuniti per la demo del progetto, anche in questa occasione abbiamo riscontrato dei bug nell'interfaccia ma ci siamo ritenuti comunque soddisfatti del lavoro svolto in queste due settimane. Abbiamo raggiunto il goal prefissato all’inizio dello sprint e ottenuto un web service con tutte le funzionalità previste dalla milestone #4.
Per quanto riguarda il Product Backlog Refinement dobbiamo solamente riportare il fatto che abbiamo adeguato le stime dell’effort per le user stories che hanno interessato quest’ultimo sprint. Non abbiamo modificato le user story definite inizialmente.
###Sprint retrospective Come Retrospective dello Sprint #2, il lavoro è avanzato in modo migliore di quello precedente, soprattutto grazie all’esperienza acquisita nel corso di queste settimane, sia dal punto di vista delle nostre abilità nell’uso dei diversi strumenti sia da quello del nostro coordinamento come squadra. La comunicazione è stata costante e sempre costruttiva, in più di un’occasione il confronto fra di noi ha permesso la determinazione di una buona soluzione per un problema o ne ha anche semplicemente permesso la risoluzione. Siamo molto contenti del fatto di essere riusciti a terminare il lavoro prima della scadenza del 7 giugno, insieme al fatto che le nostre nuove stime dell’effort necessario per il raggiungimento dell’obiettivo prefissato per questo sprint si siano rivelate molto accurate, un chiaro segno dei progressi fatti. Infine, per quanto riguarda l'adozione di norme di sviluppo agile come nello scorso sprint abbiamo seguito molte delle prescrizioni dell'approccio Scrum, come la redazione del product backlog e dello sprint backlog nonché lo svolgimento di gran parte delle riunioni previste (Sprint planning, Sprint Review e Sprint Retrospective).
Durante lo sprint abbiamo avuto delle problematiche riguardo ad alcuni commit sul branch master che invalidavano alcuni test ma gli errori sono stati prontamente risolti e da questo abbiamo sicuramente imparato a ricontrollare sempre tutto, compresi i test, prima di fare un merge con master. Questo sprint però è proceduto in maniera più fluida del primo perchè avevamo già capito come organizzarci e suddividerci il lavoro.
Il deploy finale è la release 2 del branch master, non abbiamo usato altri repository per l’interfaccia.
Per la continuous integration (CI/CD) abbiamo usato le GitHub Actions, ci hanno permesso di fare il build, eseguire i test e successivamente fare il deploy in caso di successo. Questo procedimento viene attivato ogni volta che viene fatto un push su master.
Lo stack tecnologico utilizzato parte da MongoDB per il database, poi utilizziamo Heroku come server web che ospita il nostro servizio. Per la documentazione e la progettazione di API RESTful è stato utilizzato Apiary, con Swagger come linguaggio, per il back-end e l’implementazione del web service è stato utilizzato Express con Node.js. Per testare le API abbiamo utilizzato Postman, per il controllo di versione abbiamo usato git e GitHub. Per il front-end è stato utilizzato HTML, JavaScript e CSS con Bootstrap. Infine per il testing abbiamo usato il framework Jest con Supertest.
Per concludere questo lavoro è stato molto istruttivo, abbiamo imparato molto riguardo ai metodi per progettare e implementare un web service e lavorare in gruppo. Ci è piaciuto molto lavorare al progetto e ci siamo trovati bene anche tra di noi nonostante non ci conoscessimo prima di questo corso, siamo rimasti piacevolmente sorpresi dalla sintonia che abbiamo raggiunto e che ci ha permesso di procedere senza intoppi nella realizzazione del web service. Per quanto riguarda il lavoro svolto pensiamo di aver proceduto bene, non abbiamo avuto troppi problemi a lavorare in parallelo su più feature e c’è sempre stata comunicazione per quanto riguarda le problematiche riscontrate ogni giorno, infatti per risolvere alcuni problemi c’è stato l’aiuto da parte di tutti. E’ stato anche molto interessante durante gli sprint discutere e scambiarci pareri riguardo alle problematiche software e come risolverle.