In questa lezione impari a
- progettare un'applicazione partendo da un'idea
- applicare tutto il corso a un progetto vostro
- lavorare in gruppo con Git
- presentare e difendere le scelte tecniche
È il momento di costruire un'applicazione vostra, usando tutto quello che avete imparato con la bacheca. Lavorate in gruppi di 2 o 3.
Il kit di partenza
Non partite dal foglio bianco: lo scheletro ha già tutto quello che è uguale in ogni applicazione (configurazione, login, pagine di errore, grafica) e un esempio completo di CRUD sulla tabella elementi, compresa la modifica con lo stesso form usato per creare. Il vostro lavoro è trasformarlo nel vostro tema: cercate nel codice i commenti TODO.
Per il primo avvio copiate .env.esempio in .env e generate la SECRET_KEY (lezione 7). L'utente di prova è admin con password admin1234: cambiatelo prima di pubblicare.
Un trucco dello scheletro: la stessa funzione serve due indirizzi,
/nuovoe/elemento/<id>/modifica. Seidc'è si modifica, altrimenti si crea. Guardate come il templatemodulo.htmlriempie i campi in tutti e due i casi.
Scegliete un tema
Potete scegliere tra questi o proporne uno vostro (va approvato dal docente):
- Prestiti del laboratorio: catalogo di attrezzature, prenotazioni, restituzioni e storico
- Ricettario della classe: ricette con ingredienti, categorie, ricerca e preferiti
- Torneo eSports: squadre, partite, risultati e classifica automatica
- Mercatino dei libri usati: annunci di libri scolastici, ricerca per materia e classe
- Diario dei compiti: compiti per materia, scadenze, stato di completamento
Requisiti minimi
| Area | Requisito |
|---|---|
| Template | pagina base con ereditarietà, almeno 5 pagine, stile curato e leggibile da telefono |
| Form | almeno 2 form con validazione lato server e messaggi flash |
| Database | almeno 2 tabelle (oltre a utenti) collegate da una chiave esterna, CRUD completo su almeno una |
| API | almeno 3 endpoint REST con JSON e codici di stato corretti |
| Sicurezza | registrazione e login, password con hash, pagine protette, controlli di autorizzazione |
| Produzione | lista di controllo della lezione 7 rispettata, applicazione pubblicata online |
Le tappe
- Progetto su carta. Descrivete in una pagina cosa fa l'applicazione, chi la usa, quali pagine avrà. Disegnate lo schema del database (tabelle, colonne, relazioni) e l'elenco degli endpoint dell'API.
- Base funzionante. Partendo dallo scheletro:
schema.sqlcon le vostre tabelle, il nome del sito, le prime pagine di lettura. - Form e utenti. Inserimento, modifica, eliminazione, registrazione e login.
- API. Gli endpoint REST, provati con Thunder Client.
- Rifinitura e sicurezza. Grafica, pagine di errore, lista di controllo della sicurezza.
- Pubblicazione e presentazione.
Lavorare in gruppo con Git
Usate un repository GitHub condiviso: ognuno lavora sulle sue parti e il docente vede l'avanzamento di tutti. Regole minime:
- un
.gitignorecorretto fin dal primo giorno - commit frequenti, con messaggi che spiegano cosa è cambiato
- nessun segreto (password,
SECRET_KEY) nel repository
Cosa consegnare
- il link al repository GitHub
- il link all'applicazione online
- il documento di progetto (tappa 1), aggiornato con le scelte finali
- una presentazione di 10 minuti con demo dal vivo: ogni componente del gruppo spiega una parte del codice
Come viene valutato
| Criterio | Peso |
|---|---|
| Funzionamento e completezza dei requisiti | 30% |
| Qualità del codice (organizzazione, nomi, niente ripetizioni) | 20% |
| Sicurezza | 20% |
| Database e API progettati bene | 15% |
| Presentazione e capacità di spiegare il proprio codice | 15% |
Il codice della Bacheca della classe è il vostro riferimento: quando siete bloccati, tornate alla lezione che tratta quell'argomento e confrontate.