modulo 16 di 24 / Ore 21-40

Moduli 9-16 / Checkpoint 40 ore

Checklist prima della presentazione

Checklist concreta con 20+ voci da verificare il giorno prima della presentazione del Registro: codice, localStorage, README, test, demo.

25 min Architettura del software

Checklist prima della presentazione

Questa lezione appartiene al Modulo 16 — Preparazione alla presentazione.

Il lavoro continua il progetto guida, il Registro del laboratorio scolastico. Questa lezione è una lista di controllo da usare il giorno prima della presentazione finale per assicurarsi che nulla sia rotto o incompleto.

Obiettivo della lezione

Completare la verifica sistematica del Registro prima della presentazione. Ogni voce della checklist deve avere una risposta concreta — non “sì probabilmente” ma “sì, l’ho verificato adesso”.

Alla fine devi avere: tutte le voci della checklist spuntate o con un’annotazione su cosa manca.

Come usare questa checklist

Fai la verifica nell’ordine elencato. Non saltare voci. Per ogni voce:

  • se tutto va bene: segna con una spunta
  • se c’è un problema: scrivi cosa manca e quanto tempo stimi per risolverlo
  • se una voce non è applicabile al tuo progetto: annotalo e spiega perché

Il giorno della presentazione questa lista deve essere completamente spuntata o consapevolmente rinunciata (con motivazione).

Procedura guidata

  1. Esegui la checklist dall’inizio alla fine senza saltare.
  2. Per ogni problema trovato, valuta se è risolvibile in meno di 30 minuti.
  3. Se un problema richiede più di 30 minuti, documentalo come “limite noto” invece di cercare di risolverlo all’ultimo minuto.
  4. Prepara lo scenario della demo: i dati iniziali, la sequenza di operazioni, i messaggi attesi.
  5. Fai una prova completa della demo a velocità reale.

Attività in classe

Usa questa scheda durante la verifica:

## Checklist pre-presentazione — [data]

Voci completate: __ / 22
Problemi trovati: __
Tempo stimato per correzioni: __ min

Spiegazione guidata per studiare

La preparazione alla presentazione non è “rileggi il codice”. È verificare ogni singola cosa che potrebbe andare male davanti al docente. I problemi più comuni il giorno della presentazione sono:

  • localStorage con dati sporchi da sessioni di test precedenti
  • README con istruzioni non aggiornate
  • un caso d’uso che non gestisce un errore specifico
  • la demo che presuppone dati che non ci sono

La checklist serve a trovarli prima, non durante.

Passo per passo nel progetto

Segui questa checklist completa:

## Checklist pre-presentazione del Registro

### Codice

- [ ] Il codice compila senza errori (apri la console del browser — zero errori rossi)
- [ ] Nessun `console.log` di debug lasciato in giro nei file di produzione
- [ ] Nessuna variabile o funzione non usata nei file principali
- [ ] I nomi delle funzioni descrivono quello che fanno (niente f1, temp, x)
- [ ] Ogni file ha una responsabilità chiara — posso dirla in una frase

### Struttura

- [ ] Le cartelle domain/, application/, infrastructure/, presentation/ esistono
- [ ] main.js è il solo punto di composizione — non ci sono import incrociati tra livelli
- [ ] Il dominio non importa nulla da infrastructure/ o presentation/
- [ ] I casi d'uso non chiamano direttamente localStorage, fetch o DOM
- [ ] L'adapter localStorage rispetta il contratto: caricaTutti, salva, trovaPerId

### Funzionalità

- [ ] Posso registrare un nuovo strumento dalla UI e vederlo nella lista
- [ ] Posso aprire un prestito per uno strumento disponibile
- [ ] Non posso aprire un prestito per uno strumento già in prestito (messaggio di errore corretto)
- [ ] Posso chiudere un prestito e lo strumento torna disponibile
- [ ] Posso segnalare un guasto e lo strumento cambia stato a "guasto"
- [ ] Posso cercare strumenti per nome o categoria e vedere i risultati filtrati

### Persistenza

- [ ] Ricarico la pagina e i dati sono ancora presenti (localStorage funziona)
- [ ] Apro DevTools → Application → Local Storage e vedo le chiavi del Registro con dati validi
- [ ] I dati sono JSON valido (non stringa corrotta)
- [ ] Ho un set di dati iniziali pronti per la demo (non parto da lista vuota)

### Errori e messaggi

- [ ] Ogni errore del dominio mostra un messaggio in italiano, non il codice tecnico
- [ ] Il sistema non si blocca su un input vuoto (es. ID strumento vuoto → messaggio chiaro)
- [ ] La console non mostra errori non gestiti durante la demo prevista

### README

- [ ] Il README descrive la struttura delle cartelle
- [ ] Il README ha istruzioni per avviare il Registro da zero (es. aprire index.html)
- [ ] Il README elenca i dati di esempio e come caricarli
- [ ] Ho seguito le istruzioni del README su un computer diverso (o ho chiesto a un compagno di seguirle)

### Demo

- [ ] Ho preparato uno scenario di demo con 5-8 passi in ordine
- [ ] Ho eseguito la demo completa almeno una volta a velocità reale
- [ ] So cosa mostrare se qualcosa va storto (piano B)
- [ ] I dati iniziali per la demo sono già in localStorage (o so come caricarli in 30 secondi)

Esempio JS — caricare dati iniziali per la demo

Se vuoi partire dalla demo con dati già presenti in localStorage senza doverli inserire a mano:

// script-dati-demo.js — da eseguire una volta in console
const strumentiDemo = [
  { id: "s1", name: "Multimetro", category: "misura", status: "disponibile" },
  { id: "s2", name: "Oscilloscopio", category: "misura", status: "in-prestito" },
  { id: "s3", name: "Saldatore", category: "saldatura", status: "disponibile" },
  { id: "s4", name: "Trapano", category: "perforazione", status: "guasto" }
];

const prestitiDemo = [
  { id: "p1", strumentoId: "s2", dataApertura: "2025-10-01", dataChiusura: null }
];

localStorage.setItem("registro_strumenti", JSON.stringify(strumentiDemo));
localStorage.setItem("registro_prestiti", JSON.stringify(prestitiDemo));
console.log("Dati demo caricati.");

Incolla questo codice nella console del browser il giorno della presentazione. I dati saranno pronti in 2 secondi.

Prova di comprensione

Rispondi per iscritto:

  • Quale voce della checklist hai trovato più difficile da soddisfare?
  • Qual è la differenza tra “il codice funziona” e “la demo funziona”?
  • Cosa hai trovato aprendo DevTools → Application → Local Storage?
  • Qual è il piano B se durante la demo un’operazione fallisce?

Errori da evitare

  • verificare solo le funzionalità principali e ignorare gli errori;
  • lasciare console.log di debug nel codice presentato;
  • presentare con dati di test sporchi in localStorage da sessioni precedenti;
  • non aver mai fatto una prova completa della demo a velocità normale;
  • avere un README che descrive intenzioni, non il codice reale.

Prodotto da consegnare

La checklist completata con tutte le 22 voci spuntate o annotate. Come verifica finale: esegui la demo completa davanti a un compagno che non conosce il tuo progetto e chiedigli di seguire le istruzioni del README.

Checklist di chiusura

  • tutte le 22 voci hanno una risposta;
  • i dati demo sono pronti in localStorage;
  • il README è stato testato da qualcun altro;
  • la demo completa è stata eseguita almeno una volta;
  • i problemi non risolvibili sono documentati come “limiti noti”.

Risultato atteso

Ho completato la checklist pre-presentazione.
Voci superate: 20/22.
Limiti noti documentati: [descrizione].
Dati demo pronti in localStorage.
Demo completa eseguita: sì, durata 6 minuti.