01
Sintesi esecutiva
Un ambiente digitale per l’intero ciclo del bridge.
GrandBridge è un applicativo mobile-first che porta in un’unica esperienza il gioco al tavolo, l’identità bridgistica, le relazioni tra giocatori, le carte delle convenzioni, le competizioni e gli strumenti operativi per chi organizza.
Contro il Robot ufficiale, con altre persone, in modalità sincrona o asincrona, riutilizzando lo stesso motore di bridge.
Decisioni del Robot motivate, cronologia delle azioni, punteggio deterministico e replay verificabile.
Profili selettivi, amici, inviti, coppie, convenzioni concordate e affidabilità calcolata dal sistema.
Tornei, movimenti, classifiche, ruoli del direttore e, in prospettiva, attività dei circoli.
Il telefono presenta l’esperienza; il motore applica le regole; il server decide lo stato competitivo; Postgres conserva identità, accordi, risultati e storia.
02
Identità del prodotto
Digitale senza perdere il carattere del tavolo.
GrandBridge non tratta il bridge come un semplice gioco di carte generico. L’interfaccia riproduce la logica visiva e temporale del gioco reale: bidding box, cartellini, sequenza della licita, morto ordinato per semi, presa visibile e transizioni che lasciano il tempo di leggere.
Obiettivi del prodotto
- rendere il bridge online contemporaneo, leggibile e adatto a telefoni e tablet;
- mantenere legalità, punteggio e risultati indipendenti dall’interfaccia;
- offrire un unico Robot ufficiale, stabile, veloce e capace di motivare le decisioni;
- proteggere carte private e risultati competitivi attraverso un server autorevole;
- costruire identità e relazioni senza trasformare dati privati in informazioni pubbliche;
- supportare nel tempo giocatori, coppie, direttori, circoli, organizzatori e partner.
Principi invarianti
03
Mappa funzionale
Le capacità della soluzione.
Gioco e motore di bridgeOperativo
Distribuzioni deterministiche per numero di board, dealer e vulnerabilità sul ciclo ufficiale di 16 board; licitazione con passo, contro e surcontro; determinazione di contratto, dichiarante, morto e attacco; gioco completo con obbligo di risposta al seme; conteggio prese e punteggio duplicate, compresi contratti contrati e surcontrati.
La macchina a stati governa le fasi della mano e può ricostruire lo stesso risultato a partire dagli stessi eventi.
Robot e convenzioniOperativo
Un solo Robot ufficiale per licita e gioco della carta: 16 reti neurali ONNX, stima posteriore, DDS selettivo e fallback interno dichiarato. La scelta è stata validata su 500 board identiche contro ogni motore precedente, sia sulla carta sia sull’intera partita.
Il catalogo delle convenzioni è nominato e versionato; gestisce dipendenze, incompatibilità, alternative esclusive e grado di supporto del Robot. Sono previste carte personali e fotografie immutabili della carta concordata dalla coppia.
Account, profilo e vita socialeOperativa
Accesso con Google, Apple o email secondo la configurazione del servizio, profilo pubblico e privato separati, codice utente copiabile, livello bridgistico, avatar ritagliabile, lingue e pubblicazione selettiva dei dati.
Le amicizie nascono da un link di invito condivisibile e restano un rapporto reciproco: non esistono follower o ricerca pubblica dei giocatori. Affidabilità e partite completate sono calcolate dal sistema e non modificabili dal telefono.
Tavoli multiplayer realtimeOperativo in collaudo
Protocollo WebSocket versionato, quattro posti, viste private, controllo di turno, comandi idempotenti, protezione da revisioni obsolete, heartbeat, token di riconnessione e ripristino dopo una caduta o un riavvio.
Il giocatore sceglie se entrare solo o con un compagno; Partecipa assegna il primo tavolo compatibile e Crea prepara un nuovo tavolo. Il claim viene risolto prima del risultato. Restano il collaudo prolungato con quattro dispositivi reali e le funzioni evolute di direzione, annullamento e spettatori.
Storico, replay e PAROperativo
Archivio personale dei board conclusi, ricerca libera, ricostruzione deterministica di licita e gioco, verifica di prese e punteggio dalla prospettiva corretta. Le tappe di Allenamento conservano un archivio separato.
PAR apre una pagina autonoma con contratti realizzabili, miglior risultato competitivo, sacrifici e punteggi; Rigioca permette di affrontare la stessa distribuzione da qualsiasi posizione contro tre Robot. Traveller, PBN, note e statistiche avanzate restano estensioni future.
Sfide e competizioni asincroneOperative nel prodotto
Sfide private contro amici o robot, serie da 1 a 32 board, scadenza, ripresa dal checkpoint, distribuzioni identiche custodite dal server e confronto board-per-board in punti e IMP.
Gruppi, competizioni istantanee e daylong usano serie comuni e classifiche IMP o Matchpoint indipendenti dall’ordine di completamento. Manca ancora il collaudo operativo con account reali.
Torneo FIGB personaleOperativo
Una pagina autonoma, raggiungibile direttamente dal menu principale, individua il torneo FIGB in corso o l’ultimo giocato. La barra inferiore rende sempre accessibili Torneo, Curriculum e Classifica: Torneo presenta i principali dati dell’evento, ogni board del Curriculum apre il proprio dettaglio e la mappa del movimento resta una funzione interna.
Il dettaglio di ciascun board — distribuzione delle carte, par, analisi double-dummy, frequenze di sala e replay con il Robot ufficiale — diventa disponibile appena FIGB acquisisce il risultato dell’utente su quella mano, anche prima della conclusione del torneo. I board non ancora acquisiti restano nascosti.
Tornei realtimeFondazione operativa
Schema dati per tornei, direttori, iscrizioni, lista d’attesa, coppie o squadre, turni, tavoli, risultati, classifiche, penalità, contestazioni e audit. Sono implementati movimenti Mitchell e Howell, accoppiamenti Swiss, tabelloni knockout, cronometro, verifica dei risultati e classifica esportabile.
Nell’app è disponibile la creazione del primo torneo privato a coppie Mitchell e l’iscrizione. Restano da collegare i tavoli generati alle stanze realtime e da completare il percorso del direttore turno per turno.
DidatticaPercorso in evoluzione
Corso progressivo con sommario come pagina autonoma, spiegazioni brevi, rappresentazione di semi e carte coerente con il replay, esempi guidati e domande di verifica distribuite nelle lezioni.
La struttura è predisposta per un corso completo ispirato al programma didattico del bridge italiano, con testi originali adatti all’app. Contenuti e progressione continuano a essere ampliati e revisionati.
Circoli e attività ordinariaPianificata
Circoli pubblici o privati, ruoli, membri, calendario, comunicazioni, tornei riservati, classifiche interne, distribuzioni preparate, correzioni, sostituzioni ed esportazioni federali autorizzate.
Spettatori, trasmissioni e comunicazionePianificate
Kibitzing con ritardo, tavoli in evidenza, commentatori, regia multi-tavolo, replay commentato, chat privata e di evento, messaggi offline, traduzione, moderazione e audio/video opzionali.
Ecosistema e sostenibilitàPianificati
Integrazioni federali tramite accordi ufficiali, badge, classifiche GrandBridge, abbonamenti, quote torneo, rimborsi, rendicontazione, API per partner, localizzazione e accessibilità avanzata.
04
Come funziona
Dal primo accesso al risultato verificabile.
- Identità
Il giocatore accede con un’identità non anonima, completa il profilo e decide quali informazioni rendere pubbliche.
- Relazioni e sistema
Aggiunge amici, configura la propria carta delle convenzioni e può concordarne una versione con il partner.
- Scelta dell’esperienza
Entra in un tavolo, accetta una sfida asincrona o si iscrive a una competizione o a un torneo.
- Assegnazione del board
Il server identifica giocatori, posti e condizioni, custodisce la distribuzione e prepara una vista privata per ciascun partecipante.
- Licita e gioco
Ogni comando dichiara board e revisione attesa. Il server verifica identità, turno e legalità prima di modificare lo stato.
- Persistenza
Dopo una transizione valida vengono aggiornati checkpoint ed eventi ordinati, senza affidarsi allo stato del telefono.
- Risultato
Prese, contratto e punteggio sono determinati dallo stesso motore. La modalità decide quando rendere visibili confronti e classifiche.
- Storico
A board concluso, la sequenza può essere riprodotta e verificata; statistiche e traveller potranno aggregare più tavoli.
05
Persone e responsabilità
Una sola app, funzioni diverse per ruolo.
Il ruolo non crea un prodotto separato: modifica il perimetro delle operazioni disponibili nella stessa applicazione. Le autorizzazioni sono riferite alla singola risorsa, non soltanto al nome del ruolo.
Giocatore
Gestisce profilo, relazioni e sistema; gioca, consulta storico, partecipa a sfide e si iscrive agli eventi consentiti.
Partner / coppia
Concorda e pubblica una carta di sistema versionata; partecipa come unità nelle competizioni a coppie.
Organizzatore
Crea un evento e ne definisce formato, capienza, tempi, movimento, condizioni di accesso e punteggio.
Direttore di torneo
Gestisce check-in, turni, tavoli, sostituzioni, correzioni, penalità, contestazioni e avanzamento dell’evento assegnato.
Responsabile di circolo
Amministra membri, calendario, comunicazioni, eventi e classifiche del proprio circolo.
Spettatore
Segue i tavoli consentiti con visibilità controllata; il ritardo competitivo e la trasmissione evoluta sono pianificati.
Commentatore / moderatore
Opera su trasmissioni e comunicazioni di uno specifico evento, con accessi e registri adeguati.
Staff di piattaforma
Gestirà assistenza globale, privacy, sospensioni e operazioni economiche in una futura superficie interna separata.
Federazione / partner
Accede soltanto a integrazioni, esportazioni e API formalmente autorizzate, senza controllo implicito sui dati personali.
Chi gestisce una risorsa assegnata opera nella normale app GrandBridge. Chi può intervenire trasversalmente su utenti, denaro o dati dell’intera piattaforma richiederà una superficie interna separata.
06
Architettura applicativa
Tre livelli indipendenti, con continuità locale.
La webapp viene distribuita come applicazione statica su grandbridge.app. Supabase gestisce identità e dati persistenti; un server separato governa soltanto il gioco competitivo in tempo reale. Questa separazione permette di continuare a usare Robot, Didattica, Allenamento e Replay locali quando il server di gioco non è disponibile.
Webapp React
Tavolo, bidding box, Robot e aree operative. Un service worker conserva la build, il modello locale e i componenti DDS dopo il primo caricamento completo.
Motore TypeScript
Legalità, transizioni, prese, punteggio, robot, proiezioni private ed eventi deterministici, indipendenti da React e dal database.
Server autorevole
Verifica identità, assegna posti, ordina i comandi, gestisce riconnessione e timer, produce viste personalizzate e persiste gli eventi confermati.
Supabase Auth
Gestisce account e sessioni con accesso Google, Apple o email. Le build distribuite rifiutano utenti anonimi.
Postgres
Conserva profili, relazioni, convenzioni, sessioni, board, eventi, sfide, tornei, risultati, ruoli e audit con modelli relazionali.
Continuità locale
Preferenze, Allenamento e copie dei replay vengono aperti dal dispositivo. Le funzioni cloud si riattivano e sincronizzano quando torna la connessione.
Un guasto al server realtime disabilita Tavoli, Tornei e Sfide online, senza bloccare il resto dell’app. Se manca Supabase, un account già verificato può riaprire le funzioni locali sullo stesso dispositivo; accesso iniziale e dati sociali richiedono invece la rete.
Scelte intenzionalmente escluse nella fase attuale
- microservizi indipendenti senza un reale bisogno di scala o isolamento;
- scambio peer-to-peer delle carte o fiducia nel telefono per risultati competitivi;
- logica di bridge inserita nelle policy del database;
- un’unica struttura JSON usata per tutti i domini;
- una seconda applicazione gestionale prima che esistano operazioni globali reali.
07
Dati, sicurezza e verificabilità
La fiducia non è affidata all’interfaccia.
Identità
Le build distribuite richiedono un account Google, Apple o email. Il server realtime verifica il token prima di accettare un giocatore quando opera in modalità autenticata.
Privacy selettiva
Email, nascita, tessera e codice ASD restano privati. Paese, lingue, disponibilità, ASD e categoria vengono pubblicati soltanto su scelta del giocatore.
Carte private
Ogni partecipante riceve soltanto la propria mano. Il morto e le altre carte diventano visibili esclusivamente quando le regole lo consentono.
Autorizzazione
Le tabelle esposte utilizzano Row Level Security. Nascondere un pulsante non concede né revoca un permesso: il controllo avviene sui dati e sul server.
Persistenza verificabile
Il sistema conserva checkpoint compatti e una sequenza append-only di eventi, utile a riconnessione, replay, audit e analisi.
Riconnessione
I token sono conservati come hash e ruotati dopo il rientro. Un riavvio può ripristinare stato e posti senza ricostruire la partita dal telefono.
Integrità competitiva
Board, revisioni, turni e comandi sono verificati. Una ritrasmissione non duplica un’azione e un client rimasto indietro viene riallineato.
Audit operativo
Correzioni, penalità e interventi del direttore producono un registro attribuibile; le funzioni future dello staff seguiranno lo stesso principio.
Le chiavi privilegiate e i segreti del servizio appartengono esclusivamente all’ambiente server e non vengono inclusi nell’app o nella documentazione pubblica.
08
Modello gestionale
Una sola applicazione, fino a quando è la scelta giusta.
GrandBridge mantiene una superficie utente unica. Le viste per direttori e responsabili possono assumere un layout desktop più denso, ma restano nello stesso prodotto, con la stessa identità e gli stessi servizi.
| Tipo di operazione | Superficie prevista |
|---|---|
| Gestione del proprio profilo, tavolo o iscrizione | App GrandBridge |
| Gestione di un torneo o circolo assegnato | App GrandBridge, area attivata per ruolo |
| Check-in, turni, risultati, penalità e contestazioni | App GrandBridge, vista direttore ottimizzata per desktop |
| Database, autenticazione e infrastruttura | Console dei fornitori autorizzata agli sviluppatori |
| Assistenza globale, privacy, sospensioni e rimborsi | Futura superficie interna, soltanto quando necessaria |
La comparsa di un modello economico non implica automaticamente una console proprietaria. Pagamenti e fatture possono inizialmente essere amministrati negli strumenti del fornitore; GrandBridge costruirà soltanto le funzioni operative specifiche che non possono essere delegate.
09
Distribuzione e operatività
Un solo prodotto, due ambienti di distribuzione.
GrandBridge Cloud e GrandBridge Server utilizzano lo stesso sorgente, la stessa interfaccia, lo stesso motore di bridge e lo stesso insieme di funzioni. Cambiano esclusivamente la destinazione dei servizi, l’identificativo dell’app e i dati a cui ciascuna installazione accede.
GrandBridge Cloud
È la Web App e l’APK pubblico. Usa Supabase Cloud per account, database e Storage e il servizio realtime pubblico per i tavoli online.
- pacchetto Android
com.grandbridge.app; - account e dati dell’ambiente cloud;
- accesso Google, Apple ed email configurato nell’ambiente pubblico;
- aggiornamento insieme alla Web App pubblica.
GrandBridge Server
È una confezione distinta dello stesso client, predisposta per collegarsi a un’installazione GrandBridge amministrata su infrastruttura dedicata.
- pacchetto Android
com.grandbridge.app.server; - API e WebSocket configurabili per l’ambiente dedicato;
- account, sessioni e dati completamente separati dal cloud;
- installazione affiancabile alla versione cloud sullo stesso telefono.
Caratteristiche tecniche della versione Server
| Area | Comportamento | Vincolo di rilascio |
|---|---|---|
| Codice applicativo | Deriva dallo stesso commit della versione cloud; non mantiene una variante funzionale dell’interfaccia. | La preparazione si arresta se la configurazione remota non è compatibile. |
| Identità Android | Application ID, nome visualizzato e callback nativo hanno il suffisso .server. | Consente coesistenza e sessioni indipendenti sullo stesso dispositivo. |
| Servizi | URL API, autenticazione e WebSocket puntano al server dedicato; nessun dato viene copiato dal cloud. | TLS valido, API raggiungibile e WebSocket operativo. |
| Autenticazione | L’interfaccia offre Google, Apple ed email come nella versione cloud. | I tre metodi e la registrazione devono essere realmente attivi sul server prima della build. |
| Chiavi | L’APK contiene soltanto la chiave client pubblicabile necessaria all’accesso. | Chiavi amministrative e credenziali OAuth restano nel runtime privato. |
| Aggiornamenti | La stessa versione dell’app viene riconfezionata con gli endpoint dedicati. | Ogni APK deve essere firmato e verificato separatamente. |
API e canale realtime dell’ambiente dedicato risultano raggiungibili. La rigenerazione dell’APK resta bloccata finché l’autenticazione remota non espone Google, Apple, email e registrazione con la stessa parità funzionale del cloud. L’APK server beta 8 già installato resta una build di collaudo e non certifica ancora tale parità.
Web App e APK includono il profilo riordinato, gli inviti amici tramite link, il compagno condiviso tra creazione e accesso ai tavoli, le sfide di circolo, il PAR come pagina e il replay sempre rigiocabile. Il corso GrandBridge comprende 41 lezioni basate sulla guida didattica FIGB e integrate con il metodo internazionale WBF. Leggi le novità e le verifiche effettuate.
10
Stato e percorso di evoluzione
Dal prototipo giocabile alla piattaforma.
Motore, tavolo, licita, gioco, punteggio e robot deterministico.
Account, profili separati, amici, blocchi, convenzioni e carte di coppia.
Server autorevole, distribuzione pubblica e ripristino implementati; collaudo reale prolungato da completare.
Replay verificabile, sfide, gruppi, daylong e classifiche.
Schema, motori e prima UI presenti; operatività multi-tavolo end-to-end ancora aperta.
Attività ordinaria, ruoli, calendario, comunicazioni, correzioni ed esportazioni.
Spettatori ritardati, commentatori, moderazione, chat e audio/video opzionali.
Analisi anomalie, federazioni, accessibilità, abbonamenti, quote e API partner.
Verifiche operative ancora necessarie
- percorso completo con almeno due account reali per profilo, amicizia, sistema e sfide;
- almeno 20 board con quattro dispositivi, compresi perdita di rete e rientro;
- torneo privato multi-tavolo concluso con movimento, tempi e classifica verificata;
- monitoraggio, prove di carico e simulazione di reti mobili instabili prima della beta pubblica.
11
Contesti di adozione
Una base per più modelli, senza anticiparli.
Gioco individuale
Esperienza personale contro robot, configurazione del sistema e analisi delle mani.
Comunità di giocatori
Amici, coppie, sfide, gruppi, daylong e reputazione collegata alle partite effettive.
Circoli e ASD
Calendario, tornei riservati, membri, classifiche interne e gestione operativa degli eventi.
Organizzatori
Eventi competitivi, movimenti, cronometro, audit del direttore, esportazioni e contestazioni.
Federazioni e partner
Integrazioni circoscritte ad accordi, API autorizzate e separazione tra dichiarazioni e verifiche ufficiali.
Modello economico
Abbonamenti, quote torneo e servizi premium isolati dal motore di gioco e contabilmente verificabili.
12
Perimetro documentale
Che cosa identifica la soluzione GrandBridge.
Ai fini di presentazione, valutazione e confronto con terze parti, il prodotto è composto da un insieme coerente di elementi:
- codice sorgente dell’applicazione React/TypeScript e del contenitore mobile;
- motore di bridge, macchina a stati, punteggio, robot e regole supportate;
- protocollo e server autorevole per il gioco realtime e asincrono;
- modello dati, migrazioni, policy di accesso, replay e registri di audit;
- interfaccia, flussi di interazione, design system e rappresentazione digitale del tavolo;
- catalogo strutturato delle convenzioni e modello delle carte personali e di coppia;
- documentazione di prodotto, architettura e roadmap versionata.
Questo dossier ha finalità descrittiva e di tracciamento del prodotto. Per un deposito formale, una registrazione o una valutazione legale devono essere conservati separatamente gli artefatti richiesti, le versioni del codice e le evidenze di data e titolarità secondo la procedura applicabile.