My Vote
Votazioni di giurie — voto a tutto schermo
App Android nativa per la gestione di votazioni di giurie. Costruita in Kotlin + Jetpack Compose + Room, con layer di rete Ktor (server CIO + client WebSocket) per il multi-device. Setup giuria (numero giurati + alias), inserimento performance/concorrente, votazione giurato per giurato (slider + numerico), schermata voto a schermo intero con colore interpolato tra "voto minimo" e "voto massimo" (default rosso → verde), riepilogo performance, classifica finale rivelata un concorrente alla volta dal peggiore al migliore. Storico sessioni navigabile, ripresa di sessioni interrotte, range/colori/palette personalizzabili.
Due modalità d'uso. Modalità single-device: un solo telefono passa di mano fra i giurati a turno (semplice, niente rete). Modalità multi-device LAN: il presidente di giuria avvia il telefono come host — server Ktor con WebSocket esposto sulla stessa Wi-Fi, registrazione mDNS, generazione di un QR code. Ogni giurato scansiona il QR dal proprio telefono per collegarsi come client e votare in tempo reale. Niente piu` passaggio di smartphone, niente sbirciate ai voti altrui. L'host orchestra il flusso (cambio performance, momento del reveal della classifica) e raccoglie i voti sincronizzati.
Funzionalità
- Modalità single-device: un solo telefono passa di mano
- Modalità multi-device LAN: host (server Ktor + WebSocket) + client via QR
- mDNS discovery del server sulla rete locale
- QR code per il join istantaneo dei giurati
- Voti sincronizzati in tempo reale via WebSocket
- Reveal della classifica orchestrato dall'host
- Setup giuria: numero giurati + alias
- Voto a schermo intero con colore interpolato min→max
- Classifica progressiva (un concorrente alla volta dal peggio al meglio)
- Riepilogo performance (totale, media, lista voti)
- Storico sessioni navigabile + ripresa sessioni interrotte
- Range / colori / palette personalizzabili
Parametrizzazioni
- Modalità: single-device | multi-device LAN
- Porta server WebSocket (default 8765)
- Nome sessione + alias dei giurati
- Range votazione (min / max, default 0–10)
- Colore voto minimo / massimo (interpolazione lineare)
- Palette: Default (Violet) / Sunset / Ocean / Forest
- Tema chiaro / scuro / sistema
Pre-requisiti tecnici
- Android 8.0+ (API 26)
- ~50 MB di spazio
- Per modalità multi-device: 2+ dispositivi sulla stessa Wi-Fi
- Per modalità multi-device: permessi Wi-Fi state, Camera (per QR client)
- In single-device: nessun permesso particolare richiesto