- DEV 1: Alessandro Gondolo, dedicato alla configurazione del db H2 e alla gestione della persistenza dei dati sul backend
- DEV 2: Andrea Schiavi, dedicato all'implementazione del controller sul backend e alla supervisione del repository Git
- DEV 3: Andrea Bentley, dedicato al'implementazione del frontend
-
Abbiamo attribuito i ruoli secondo le indicazioni di progetto.
-
Abbiamo deciso di lavorare con una modalità di sviluppo incrementale, non test-driven.
-
Abbiamo stabilito di procedere in prima istanza con due progetti separati per frontend e backend:
- DEV 1 e DEV 2 implementano il backend su uno scaffold Maven Spring Boot versionato con Git, sviluppando su branch separati.
- DEV 3 si forma su Angular, sperimentando su un progetto separato.
- Successivamente il frontend viene integrato nel progetto di backend
Il risultato finale sarà un progetto Maven padre con due moduli figli per frontend e backend
-
Abbiamo stabilito informalmente il contratto tra repository e controller, e la web API.
-
Abbiamo concordato un set di dati di mock condivisi con un foglio di calcolo Google Docs.
- Implementazione dell'entity modules secondo le specifiche ricevute e da quelel definite da noi
- Implementazione del repository tramite l'interfaccia DataJpaRepository
- Inserimento dei metodi necessari a noi a testare la correttezza dei dati inseriti
- Creazione dei dati di mock su cui testeremo il repository
- Creazione dei test per il database in memory che andremo a testare
- Modifica del repository in memory reso persistente tramite le configuration properties
- Inserimento di file di cofigurazione per prendere i dati di mock necessari ai test in memory
- Verifica che la tabella con i dati in memory non si vede se viene eseguita l'applicazione
- Implementazione di un REST controller per la gestione delle richieste CRUD
- Unit test delle richieste CRUD con repository di mock
- Integration test delle richieste CRUD con repository di produzione con db H2 in memory
- Test euristico dell'applicazione con db H2 persistito, lanciando richieste HTTP da Postman
- Estensione della web API con una chiamata che gestisca la paginazione dell'elenco dei Module
- Creazione di un report Jasper in formato jrxml per i dettagli di un'entità selezionata
- Estensione della web API con una chiamata che gestisca la produzione e il download del report
- Integrazione del frontend nel backend
- Configurazione delle policies CORS per consentire a DEV 3 di sviluppare il progetto Angular senza dover ricompilare l'intera applicazione
- Estensione della web API con una chiamata per la selezione di un'entità parametrizzata su tutti i campi dell'entità
- Implementazione di nuovi test di integrazione per testare le nuove funzionalità della web API
- Configurazione di Swagger per la documentazione della web API
- Studio di come sviluppare un'applicazione Angular.
- Studio di come implementare un server backend finto per eseguire i primi test (il database era pieno di dati con formato concordato assieme gli altri Dev del Gruppo)
- Ottenuto il Backend dagli altri Dev.
- Implementato le operazioni di CRUD più semplici.
- Integrato il Front-End con il Back-End per far girare l'applicazione Full Stack sulla porta 8080.
- Implementato le operazioni di CRUD più complesse (eccetto i CRUD dedicati alla ricerca ed alla paginazione).
- Implementato il bottone per accedere alla documentazione Swagger, implementato il bottone per scaricare i report PDF generati da Jasper nel Backend.
- Implementato le componenti di ricerca e paginazione.
- Pulizia del codice.