Allegato 3 - Work Breakdown Structure
A partire dalla RBS definita nel Allegato 2 - Requirements Breakdown Structure, vengono qui di seguito esplosi i requisiti del sistema elencando le attività necessarie per soddisfarli, nel formato di una Work Breakdown Structure.
- Progettazione, inizializzazione e configurazione dei workspace con un adeguato build tool, di un’infrastruttura con predisposizione a una pipeline automatizzata di continuous integration & deployment
- Configurazione build tool e DVCS;
- Configurazione pipeline di continuous integration;
- Configurazione pipeline di continuous deployment;
- Progettazione diagrammi deployment;
- Creazione struttura locale minimale di orchestrazione;
- Configurazione ambiente di produzione;
- Sviluppo azioni deployment da locale a produzione;
- Configurazione bot per aggiornamento automatico delle dipendenze;
- Configurazione bot per il merge automatizzato di Pull Request sulla repo;
- Configurazione bot per il rilascio automatico delle release;
- Configurazione di un sistema di ticketing automatizzato.
- Progettazione e implementazione di un servizio per la gestione utente
- Il sistema deve poter gestire l’autenticazione degli utenti;
- Configurazione DB e implementazione repository:
- Implementazione token di autenticazione:
- Regole di controllo di accesso:
- Implementazione API di autenticazione;
- Il sistema deve poter gestire la creazione, adesione e abbandono ai gruppi (operazioni CRUD);
- Configurazione DB e implementazione repository;
- Implementazione API di gestione gruppi;
- Il sistema deve supportare una struttura gerarchica degli utenti appartenenti ad un gruppo;
- Esplorazione di plugin on the shelf;
- Implementazione API di gestione dei ruoli;
- Predisposizione dello storage per la gestione dei ruoli;
- Il sistema deve poter gestire le informazioni relative agli utenti e l’impostazione degli indirizzi preferiti;
- Configurazione DB e implementazione repository;
- Implementazione API per la gestione delle informazioni;
- Definizione configurazione di deployment.
- Il sistema deve poter gestire l’autenticazione degli utenti;
- Progettazione e implementazione di un servizio di localizzazione
- Il sistema deve effettuare il geocoding di indirizzi e luoghi in coordinate;
- Ricerca di un servizio web di mappe per il geocoding;
- Implementazione ReST API;
- Il sistema deve tracciare in tempo reale la posizione degli utenti e supportarne la condivisione con i membri del proprio gruppo;
- Confronto di tecnologie MOM consone allo sviluppo del servizio;
- Identificazione della tecnologia che consenta un tracciamento real-time reattivo e potenzialmente replicabile;
- Progettazione e design;
- Implementazione repository posizioni utenti;
- Implementazione comunicazione real-time tramite websocket;
- Implementazione interazione con la tecnologia MOM per la ricezione di eventi;
- Il sistema deve gestire lo stato degli utenti in tempo reale;
- Implementazione logica di gestione dello stato utente;
- Il sistema deve permettere all’utente d’iniziare un percorso e condividerlo con i membri del proprio gruppo, notificando l’arrivo in prossimità della posizione di arrivo o in caso si verifichino situazioni anomale, quali: l’utente rimane fermo per troppo tempo nella stessa posizione, va off-line o non ha raggiunto la destinazione entro un certo tempo stabilito all’atto della creazione del percorso;
- Implementazione logica di reazione a eventi;
- Implementazione comunicazione con il servizio di notifiche;
- Il sistema, al sollevarsi di una situazione di pericolo, deve tracciare il percorso compiuto fino alla sua cessazione;
- Implementazione logica salvataggio dei percorsi;
- Definizione configurazione di deployment.
- Il sistema deve effettuare il geocoding di indirizzi e luoghi in coordinate;
- Progettazione e implementazione di un servizio di chat
- Il sistema deve permettere una comunicazione sicura;
- Ricerca strumenti o librerie che permettano di implementare una comunicazione criptata E2E;
- Installazione e configurazione dello strumento scelto nel punto precedente;
- Il sistema deve permettere un canale di comunicazione tra il client e il server;
- Analisi di tecnologie / protocolli per lo scambio di messaggi;
- Configurazione tecnologia scelta per lo scambio di messaggi;
- Implementazione API;
- Il sistema deve permettere una comunicazione di natura broadcast ai membri appartenenti ai gruppi;
- Implementazione logica di broadcasting dei messaggi;
- Implementazione comunicazione con il servizio di notifiche;
- Definizione configurazione di deployment.
- Il sistema deve permettere una comunicazione sicura;
- Sistema di notifiche
- Il sistema deve permettere l’invio di notifiche push;
- Analisi di tecnologie / protocolli per l’invio di notifiche push;
- Configurazione tecnologia scelta;
- Implementazione logica d’invio notifiche push;
- Il sistema deve permettere l’invio di notifiche mail;
- Configurazione mail server;
- Implementazione logica invio mail;
- Definizione configurazione di deployment.
- Il sistema deve permettere l’invio di notifiche push;
- Frontend
- Prototipazione delle interfacce utente (mockup);
- Il sistema deve permettere di registrarsi e autenticarsi al sistema;
- Realizzazione UI;
- Integrazione con backend;
- Il sistema deve mostrare all’utente la mappa in tempo reale e lo stato di tutti i gruppi di cui fa parte;
- Realizzazione UI;
- Integrazione con backend;
- Il sistema deve permettere la modifica delle informazioni dell’utente;
- Realizzazione UI;
- Integrazione con backend;
- Il sistema deve permettere di visualizzare le notifiche ricevute;
- Realizzazione UI;
- Integrazione con backend;
- Il sistema deve permettere di visualizzare e interagire con le chat;
- Realizzazione UI;
- Integrazione con backend.