Karaoke System
Ecosistema realtime per la gestione code karaoke
> Il problema
In un karaoke con decine di partecipanti, gestire la coda dei cantanti con carta e penna o fogli condivisi genera confusione: ordine perso, duplicati, nessuna visibilità per chi aspetta. Quando ci sono più dispositivi connessi (tablet dell'host, telefoni dei partecipanti), mantenere lo stato sincronizzato diventa il vero problema tecnico.
- Ordine della coda incoerente tra dispositivi
- Nessuna visibilità in tempo reale per i partecipanti
- Conflitti frequenti nella gestione manuale
> La soluzione
Ho progettato un'architettura server-authoritative dove il backend NestJS è l'unica fonte di verità. Il server gestisce tutta la logica di coda, stanze e turni, mentre i client si limitano a inviare azioni e ricevere aggiornamenti. La comunicazione avviene via Socket.IO con Redis come layer di stato condiviso e MongoDB per la persistenza.
- Backend NestJS come single source of truth
- Socket.IO per aggiornamenti realtime bidirezionali
- Redis per stato condiviso e recovery delle sessioni
- App React Native (Expo) come interfaccia utente e host
> Il risultato
Il sistema è stabile in produzione e gestisce sessioni karaoke con decine di partecipanti connessi simultaneamente. La sincronizzazione multi-device è istantanea, i conflitti di stato sono eliminati dall'architettura server-authoritative e le sessioni sopravvivono a disconnessioni grazie al recovery automatico.
- Zero conflitti di stato tra dispositivi
- Recovery automatico delle sessioni
- Latenza di sincronizzazione sotto i 100ms