Notiziario
Digital signage per la mia scuola, con avvisi, orari e meteo su una TV e un'app con l'orario dei docenti.
Contesto
La scuola aveva bisogno di un modo semplice per mostrare informazioni sempre aggiornate — avvisi, orari, meteo — su una TV nei corridoi, e di dare ai docenti il proprio orario senza doverlo cercare ogni volta. Notiziario è il sistema che ho costruito per fare entrambe le cose.
Il problema
Un display in un corridoio deve funzionare da solo: nessuno lo tocca per settimane, ma il contenuto deve restare fresco. Serviva qualcosa che si aggiornasse da remoto, ripartisse da solo dopo un riavvio o un blackout, funzionasse anche senza internet e che una persona non tecnica potesse gestire da un pannello.
E c’era un secondo problema: la scuola distribuisce un unico foglio Excel con l’orario di tutti. Trovare il proprio vuol dire scorrerlo ogni volta.
Cosa ho costruito
Un server su Raspberry Pi collegato alla TV, che mostra a rotazione avvisi, meteo e un ticker di notizie. Il contenuto arriva da un pannello di amministrazione raggiungibile da remoto e protetto da autenticazione a due fattori.
Un modulo orario che importa il foglio Excel e ne ricava l’orario di ogni docente, classe e aula. L’orario non compare sulla TV, perché contiene nomi di persone: resta nel pannello e nei link personali.
Un’app desktop per i docenti che mostra l’orario personale e funziona anche senza connessione, tenendo in memoria l’ultima versione scaricata. L’ho distribuita come installer per Windows.
Il sistema si aggiorna da remoto e fa un backup automatico prima di ogni aggiornamento, così un aggiornamento andato male non lascia la TV spenta.
Scelte tecniche
Il server è in PHP con MariaDB: uno stack essenziale, che gira senza problemi su un Raspberry Pi. I dati sensibili nel database sono cifrati con AES-256-GCM, così avere il solo file del database non basta per leggerli.
L’accesso da remoto passa da un tunnel Cloudflare, che evita di aprire porte sul router della scuola: è il Raspberry ad aprire la connessione verso l’esterno, non il contrario.
L’app dei docenti è in Python con Tkinter perché doveva essere leggera, girare offline e installarsi senza niente da configurare.
Stato
Finito. È il progetto che mi ha insegnato di più su cosa vuol dire mettere in produzione qualcosa che deve restare in piedi senza che nessuno lo guardi.