01. Il Contesto: Gestione massiva in tempo reale
A settembre 2025 gli organizzatori dell'evento di Let's Move al Generali Convention Center di Trieste, avevano bisogno di una piattaforma per gestire tutte le prenotazioni alle classi che si sarebbero svolte in quei giorni.
Con un volume di oltre 2.400 prenotazioni e pagamenti con carta di credito per circa 5.000€, l'integrità del dato è stata la priorità. La soluzione è stata un ecosistema basato su stack PEAN (PostgreSQL, Express, Angular, Node) progettato per la massima personalizzazione.
02. UX Mobile-First: Progettata per la flessibilità
Un evento fitness come Let's Move si svolge spesso in un ambiente dinamico e affollato, pertanto, l'interfaccia e l'esperienza utente (UX) è stata quindi distinta in due fronti: una parte pubblica essenziale e un'area operativa pensata per lo staff, con leggibilità immediata e interazioni veloci anche da cellulare, permettendone un uso flessibile all'evento.
- Per l'utente: un'area personale "I miei eventi" dove visualizzare le proprie classi prenotate, accessibile solo dopo aver effettuato l'accesso al proprio account.
- Per lo staff: una dashboard di controllo ottimizzata per l'uso con una sola mano, con palette colori ad alto contrasto per la leggibilità alla luce del sole (l'evento aveva anche alcune classi in esterno) e immagini in formato .webp per minimizzare il consumo di banda e diminuire i tempi di caricamento in condizioni in cui l'unica connessione a internet disponibile era il 4G/5G della rete cellulare.
03. Backend e Logica di Validazione
La logica di prenotazione è stata implementata con un approccio semplice: se una determinata classe aveva un numero massimo di partecipanti ed iscrizioni, il sistema impediva la prenotazione di ulteriori utenti in caso di raggiungimento del limite massimo. Questo ha permesso di evitare l'overbooking.
Gestione check-in e admin
Il personale addetto all'obliterazione disponeva di una pagina dedicata per l'inserimento rapido degli ID prenotazione (che gli utenti stessi leggevano dalla loro area personale "I miei eventi"). Il backend verificava in tempo reale lo stato del ticket, marcandolo come "obliterato" per impedire riutilizzi multipli.
Integrazione con Stripe per i pagamenti con carta di credito on-line
La sfida principale è stata sincronizzare il successo del pagamento con l'effettiva occupazione del posto. Grazie ai webhook di Stripe, il sistema aggiornava lo stato della prenotazione solo a pagamento confermato, garantendo la coerenza tra incassi e partecipanti effettivi alle classi.
Reporting e data management
Oltre alla gestione operativa, è stata implementata una suite di amministrazione per il monitoraggio dei flussi. Gli organizzatori potevano visualizzare o esportare liste iscritti in formato .csv, filtrare gli utenti per nome o stato di check-in e modificare autonomamente i dettagli delle classi in base alle esigenze del momento.
04. Sfide tecniche e problem solving
Il deploy su un VPS Hetzner ha richiesto un'attenzione particolare alla sicurezza del backend e alla configurazione dell'ambiente di produzione.
Gestire l'integrazione di un sistema di pagamento come Stripe per la prima volta ha comportato uno studio approfondito della documentazione per assicurare che ogni flusso fosse privo di errori critici, o comunque in grado di non mandare in crash l'intero sistema se un determinato utente non aveva un saldo sufficiente per completare l'acquisto.
05. Visione futura
Sebbene il sistema abbia retto perfettamente l'utilizzo degli utenti che hanno partecipato all'evento, l'evoluzione naturale del software prevede l'implementazione di logiche di gestione delle race conditions a livello di database per scalare verso eventi con più transazioni per ogni secondo.
Let's Move Trieste 2025 rimane un caso studio di successo su come la tecnologia corretta, applicata con semplicità, possa trasformare la logistica di un evento con migliaia di partecipanti.
Il sito web è accessibile online al seguente link: letsmovefestival.com