MISSIONI - 3.5 Progetto del periodo: la chat diventa web
============================================================

Progetto.

Obiettivo

Riprendere la chat del Periodo 2 (fatta con i socket) e trasformarla in un'applicazione web che si usa dal browser, anche dai PC dei compagni.

Come funziona il kit

- app.py tiene i messaggi in una lista e offre due API: leggere (GET) e scrivere (POST).
- templates/chat.html è la pagina.
- static/js/chat.js è il client: chiede i messaggi ogni 2 secondi con fetch e manda i nuovi con una POST. È commentato riga per riga.

Avviatelo, trovate il vostro IP con ipconfig e fatelo aprire ai compagni su http://VOSTRO-IP:5000.

Cosa dovete aggiungere (requisiti minimi)

- Un limite di lunghezza dei messaggi (es. 200 caratteri), controllato nel server con risposta 400
- Una route /api/utenti che restituisce l'elenco dei nomi che hanno scritto almeno un messaggio, senza ripetizioni
- Una pagina HTML /statistiche (con un template che eredita lo stile) che mostra quanti messaggi ha scritto ognuno
- Codice commentato nei punti chiave

Idee per chi vuole fare di più

- Un pulsante "😀" che aggiunge emoji al messaggio
- Il comando /pulisci che svuota la chat (solo se lo scrive un nome "admin")
- Salvare i messaggi in un file JSON, così non si perdono riavviando il server

Discussione finale

Siate pronti a rispondere: cosa cambia tra la versione con i socket e questa? Chi è il client e chi il server? Perché qui il browser deve chiedere i messaggi ogni 2 secondi, mentre con i socket il server poteva mandarli lui?

Cosa consegnare: la cartella del progetto (senza __pycache__) + demo live in laboratorio + risposte alle domande.

Pagina della lezione: https://www.academy-pc.it/tpsit/intro-flask-quarta.html
