Vai al contenuto

Progetto finale

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, /nuovo e /elemento/<id>/modifica. Se id c'è si modifica, altrimenti si crea. Guardate come il template modulo.html riempie 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

  1. 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.
  2. Base funzionante. Partendo dallo scheletro: schema.sql con le vostre tabelle, il nome del sito, le prime pagine di lettura.
  3. Form e utenti. Inserimento, modifica, eliminazione, registrazione e login.
  4. API. Gli endpoint REST, provati con Thunder Client.
  5. Rifinitura e sicurezza. Grafica, pagine di errore, lista di controllo della sicurezza.
  6. 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 .gitignore corretto 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.