EN
Torna ai progetti
2024-2025
In produzione
Open Source

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