Progetto Esame Settembre 2020

Stiamo collaborando alla realizzazione di un sistema informativo su Web per la gestione delle prenotazioni delle camere di un albergo.
Gli utenti del sistema sono la segreteria dell'albergo e i clienti.

La segreteria, previa autenticazione, accede ad una pagina web contenente una form attraverso la quale vengono immessi i dati relativi alle camere dell’albergo. Per semplicità supponiamo che per ogni camera siano di interesse il numero di posti, il numero e la tipologia di letti (singolo, matrimoniale), il prezzo (per semplicità ipotizziamo che il prezzo sia sempre lo stesso indipendentemente dal periodo).

Il cliente che intende prenotare una stanza accede ad una pagina contenente una form attraverso la quale può specificare i dati relativi alla prenotazione: data di arrivo, data di partenza, numero di ospiti. Il sistema risponde mostrando una pagina che contiene l’elenco delle camere che soddisfano i criteri specificati dal cliente (se non ci sono camere libere, il sistema mostra una pagina con un opportuno messaggio). Ad ogni elemento della lista di camere disponibili è associato un link (o un pulsante) che porta ad una pagina che mostra i dati di riepilogo della prenotazione e il costo totale. Per semplicità non consideriamo la finalizzazione della prenotazione (che richiederebbe la raccolta dei dati del cliente) e il pagamento.

La segreteria ha la possibilità di accedere ad una pagina che mostra una form attraverso la quale viene inserita una data: in risposta il sistema mostra l’elenco delle camere libere e l’elenco delle camere prenotate nella data specificata nella form.

Completare ed estendere le specifiche a piacere dove si ritiene necessario.

• Progettare il sistema, definendone casi d’uso, class diagram (con indicazioni utili alla progettazione dello strato di persistenza)

• Implementare con Spring Boot tutto lo strato di persistenza (repository) e lo strato della logica applicativa servizi (model e service)

• Implementare con Spring Boot lo strato di presentazione per almeno 5 casi d'uso (che prevedano operazioni crud diverse)

CONSEGNA

Ogni studente iscritto all'esame deve avere un account su una piattaforma Git (Github o GitLab o Bitbucket o simili)

• Ogni studente deve mettere il progetto sul proprio account della piattaforma Git (come repository pubblico). Il progetto deve contenere:

– La descrizione testuale dei casi d’uso implementati in un file specifiche.txt

– Il codice completo (Java, CSS, HTML) del progetto (fare attenzione ad usare username e password fasulle per la connessione al database)

• Ogni studente iscritto all'esame deve inviare un messaggio di posta elettronica all'indirizzo siw.roma3@gmail.com entro le ore 19:00 del 16 settembre 2020

– L'oggetto del messaggio deve iniziare con la stringa [SIW SETTEMBRE 2020] seguita dal proprio nome e cognome. Esempio: lo studente Antonio De Bruni invierà un messaggio con oggetto: [SIW SETTEMBRE 2020] Antonio De Bruni

– Nel corpo del messaggio deve esserci:

• l'url del proprio progetto sulla piattaforma GIT

• una descrizione di eventuali bachi o malfunzionamenti noti ma non risolti