modulo 16 di 24 / Ore 21-40
Moduli 9-16 / Checkpoint 40 ore
Checkpoint 40 ore: presentazione della versione completa
Come preparare e condurre il checkpoint finale a 40 ore: struttura della presentazione in 15 minuti, apertura, demo live, architettura, test, retrospettiva e checklist pre-checkpoint.
Checkpoint 40 ore: presentazione della versione completa
Questa lezione appartiene al Modulo 16 — Checkpoint finale.
Obiettivo della lezione
Preparare e condurre il checkpoint a 40 ore: una presentazione strutturata di 15 minuti del Registro del laboratorio scolastico, che copre il problema risolto, la demo live, le scelte architetturali, i test e una retrospettiva onesta.
Alla fine hai uno schema temporale preciso e una checklist pre-checkpoint da completare il giorno prima.
Perché serve nel percorso
Il checkpoint a 40 ore non è solo una valutazione — è la prova che il progetto è spiegabile, dimostrabile e difendibile. Saper presentare il proprio lavoro con esempi concreti è parte del percorso tanto quanto il codice.
Nel Registro del laboratorio
Struttura temporale della presentazione (15 minuti)
Minuti 0-2 — Apertura: il problema e la soluzione
Descrivi il problema in una frase e la soluzione in due:
"Il Registro del laboratorio scolastico tiene traccia degli strumenti,
dei prestiti e dei guasti in modo che docenti e tecnici possano sapere
in ogni momento quale strumento è disponibile, chi lo ha in prestito
e cosa è rotto.
È un'applicazione browser-only in JavaScript modulare, con localStorage
per la persistenza. Non usa framework — usa quattro livelli separati:
dominio, application, infrastruttura e presentazione."
Minuti 2-7 — Demo live
Esegui lo scenario nel browser in diretta. Lo scenario deve coprire almeno:
- Registra uno strumento nuovo (“Multimetro”, categoria “Misura”).
- Mostra che appare nella lista degli strumenti disponibili.
- Registra un prestito per quello strumento.
- Mostra che lo stato è cambiato a “in prestito”.
- Prova a prestarlo di nuovo — mostra il messaggio di errore.
- Chiudi il prestito.
- Mostra che lo stato è tornato a “disponibile”.
- Ricarica la pagina — mostra che i dati persistono.
Minuti 7-10 — Architettura
Mostra la struttura delle cartelle e spiega ogni livello con un esempio:
src/
domain/ "Qui stanno le regole — per esempio, uno strumento guasto
non può essere prestato. Queste funzioni non sanno nulla
di localStorage o di HTML."
application/ "Qui stanno i casi d'uso — registraPrestito, chiudiPrestito.
Ricevono l'archivio come dipendenza, non lo creano."
infrastructure/ "Qui sta l'adapter di localStorage. Se domani si passa
a un'API, si sostituisce questo file senza toccare il dominio."
presentation/ "Qui stanno i form handler e gli event listener. Leggono
l'input, chiamano il caso d'uso, mostrano il risultato."
Minuti 10-12 — Test
Esegui npm test in diretta e spiega due o tre test:
"Questo test verifica che uno strumento guasto non possa essere prestato.
Senza il test, potrei rompere questa regola per sbaglio durante il refactoring
e non me ne accorgerei."
[mostra l'output del runner con i test verdi]
Minuti 12-15 — Retrospettiva e prossimi passi
Sii onesto su cosa funziona, cosa no e cosa cambieresti:
"Cosa funziona bene: la separazione dei livelli — il dominio è testabile
senza il browser, e ho dimostrato che l'adapter si può sostituire senza
toccare i casi d'uso.
Cosa cambierei: avrei aggiunto i test prima di scrivere il codice, invece
che dopo. Alcuni casi limite li ho trovati tardi.
Prossimo passo: aggiungere la visualizzazione della cronologia dei prestiti
per strumento."
Procedura guidata
- Prepara lo scenario di demo in anticipo — verifica che funzioni senza errori.
- Prepara l’output di
npm test— deve mostrare test verdi. - Scrivi l’apertura (problema + soluzione) in forma di testo da dire ad alta voce.
- Prepara la spiegazione dei 4 livelli con un esempio per ognuno.
- Prepara la retrospettiva con almeno una cosa che cambieresti.
Attività in classe
Compila la checklist pre-checkpoint il giorno prima della presentazione:
## Checklist pre-checkpoint a 40 ore
### Demo
[ ] lo scenario funziona senza errori nel browser
[ ] il messaggio di errore per strumento guasto appare correttamente
[ ] il messaggio di errore per doppio prestito appare correttamente
[ ] i dati persistono dopo ricaricamento della pagina
[ ] localStorage è pulito e contiene solo dati realistici (non dati di debug)
### Test
[ ] npm test esegue senza errori di configurazione
[ ] tutti i test passano (nessun test rosso)
[ ] l'output del runner è leggibile e mostra i nomi delle regole
### Codice
[ ] non ci sono console.log di debug nella console durante l'uso normale
[ ] nessun errore in console durante la demo
[ ] il README spiega come avviare il progetto
### Presentazione
[ ] ho scritto l'apertura (problema + soluzione in 2 minuti)
[ ] ho preparato la spiegazione dei 4 livelli con esempi
[ ] ho preparato la retrospettiva (cosa funziona, cosa cambierei, prossimo passo)
[ ] ho cronometrato la presentazione completa (deve stare in 15 minuti)
Spiegazione guidata per studiare
Il checkpoint a 40 ore valuta tre cose insieme: il codice, la comprensione e la comunicazione. Non basta avere un progetto funzionante — devi saper spiegare perché è fatto così.
La demo non è una demo del software — è una demo dell’architettura. Mentre mostri la demo, commenta le scelte:
"Quando clicco 'Presta', il form handler legge solo i valori dei campi
e chiama registraPrestito — non sa nulla di localStorage. È la separazione
tra presentazione e infrastruttura che rende possibile testare registraPrestito
senza il browser."
I test sono la tua assicurazione. Se durante la demo qualcosa non funziona, puoi dire: “questo scenario è coperto dal test X — mostrami dove si trova il problema.” I test ti danno sicurezza durante la presentazione.
La retrospettiva onesta vale più di una presentazione perfetta. Un “avrei aggiunto i test prima” è una risposta matura che dimostra comprensione del processo — non una debolezza.
Rispondere alle domande:
Quando il docente chiede “come mai hai scelto X invece di Y?”, la risposta deve avere questa struttura:
"Ho scelto X perché [motivo concreto nel contesto del Registro].
Y avrebbe richiesto [costo o complessità].
Il trade-off era [vantaggio X / svantaggio Y]."
Passo per passo nel progetto
- Esegui la checklist pre-checkpoint completa.
- Fai una prova della presentazione da solo — cronometra ogni sezione.
- Se una sezione supera il tempo: taglia i dettagli, non la struttura.
- Il giorno della presentazione: pulisci localStorage, esegui
npm test, verifica lo scenario. - Durante la presentazione: parla lentamente, mostra il codice solo quando serve, non leggere il README.
Prova di comprensione
- Come si spiega in 2 minuti il problema che risolve il Registro?
- Come si dimostra durante la demo che i livelli sono separati davvero?
- Cosa dici se durante la demo appare un errore imprevisto?
- Come si risponde alla domanda “perché hai usato localStorage invece di un database?”
Errori da evitare
- iniziare la demo senza aver pulito localStorage — i dati di test sporcano la presentazione;
- non cronometrare la presentazione prima — 15 minuti si riempiono in fretta;
- mostrare il codice riga per riga invece di spiegare le scelte architetturali;
- non preparare la retrospettiva — la domanda “cosa cambieresti?” arriverà sempre.
Prodotto da consegnare
La checklist pre-checkpoint compilata con tutti i punti verificati, lo scenario di demo testato, e la struttura della presentazione scritta con i timing.
Checklist di chiusura
- la checklist pre-checkpoint è completa (tutti i punti spuntati)
- lo scenario di demo funziona senza errori
npm testmostra tutti i test verdi- la presentazione sta in 15 minuti (cronometrata)
- la retrospettiva è preparata con almeno una cosa concreta da cambiare
- localStorage è pulito e contiene solo dati realistici per la demo
Risultato atteso
Ho completato la checklist pre-checkpoint.
La demo funziona: registro strumento, presto, mostro errore per doppio prestito,
chiudo, verifico persistenza — tutto in 5 minuti.
npm test mostra 16 test verdi con nomi descrittivi.
La presentazione strutturata in 15 minuti è pronta e cronometrata.
Sono pronto per il checkpoint finale.