59 lines
3.1 KiB
Markdown
59 lines
3.1 KiB
Markdown
# Rendere CrAPP operativa: migrazione dal prototipo al Cloud
|
|||
|
|
|
||
|
|
## Stato attuale
|
||
|
|
|
||
|
|
L'app è un prototipo UI con alcune funzioni già collegate a Lovable Cloud:
|
||
|
|
|
||
|
|
- Già sul Cloud: voti MVP (`mvp_voti`), iscrizioni push (`push_subscriptions`), sessioni scout (`scout_sessioni`), turni palloni (`turni_palloni`).
|
||
|
|
- Ancora in locale come dati demo: rosa giocatori, calendario eventi, storico partite, classifica CSI, statistiche individuali, presenze/assenze, badge.
|
||
|
|
|
||
|
|
## Cosa serve per renderla operativa
|
||
|
|
|
||
|
|
1. **Rosa e profili giocatori sul database**
|
||
|
|
- Creare tabella `profiles` (o `giocatori`) con nome, numero maglia, ruolo, data di nascita, foto profilo.
|
||
|
|
- Collegare ogni riga all'utente autenticato corrispondente.
|
||
|
|
- Rimuovere la rosa statica da `src/lib/crapp-data.ts` e caricarla dal backend.
|
||
|
|
|
||
|
|
2. **Autenticazione reale**
|
||
|
|
- Sostituire la semplice selezione "Chi sei?" in `localStorage` con login email/password o OAuth (Google).
|
||
|
|
- Ogni giocatore accede con le proprie credenziali e vede solo i propri dati modificabili.
|
||
|
|
- Necessaria per garantire che uno scout o un voto MVP provenga davvero da quel giocatore.
|
||
|
|
|
||
|
|
3. **Calendario eventi persistente**
|
||
|
|
- Tabella `eventi` con tipo, titolo, data, ora, luogo, avversario, casa/fuori.
|
||
|
|
- Tabella `presenze` (evento_id, giocatore_id, stato, aggiornato_il).
|
||
|
|
- I compleanni possono restare derivati dalla data di nascita dei giocatori.
|
||
|
|
|
||
|
|
4. **Statistiche e badge dinamici**
|
||
|
|
- Tabella `statistiche` o `azioni_scout` (evento_id, giocatore_id, tipo azione, valore, creato_il).
|
||
|
|
- I badge vengono calcolati in tempo reale dalle statistiche accumulate, senza valori fissi in `crapp-data.ts`.
|
||
|
|
|
||
|
|
5. **Scout live collegato ai dati reali**
|
||
|
|
- Le azioni registrate in `scout.tsx` devono scrivere sulle tabelle eventi/statistiche.
|
||
|
|
- Mantenere il lock di modifica singolo e l'attivazione solo il giorno della partita.
|
||
|
|
|
||
|
|
6. **Classifica CSI**
|
||
|
|
- Tabella `classifica` aggiornata manualmente da un admin o importata dal sito CSI quando disponibile.
|
||
|
|
- Per ora nessuna API CSI ufficiale: si inserisce a mano o si copia/incolla.
|
||
|
|
|
||
|
|
7. **Notifiche push definitive**
|
||
|
|
- Verificare che i cron job inviino correttamente i promemoria palloni.
|
||
|
|
- Aggiungere notifiche per conferma eventi, promemoria presenze, MVP votabile.
|
||
|
|
|
||
|
|
8. **Ruoli e permessi**
|
||
|
|
- Definire chi può creare/modificare eventi (capitano/admin).
|
||
|
|
- Chi può fare scout (designato per partita).
|
||
|
|
- Chi può modificare i turni palloni (tutti, come da tua richiesta).
|
||
|
|
|
||
|
|
## Cosa resta salvato nel Cloud
|
||
|
|
|
||
|
|
Sì: tutto ciò che viene scritto sulle tabelle Lovable Cloud/Supabase resta salvato online e condiviso tra tutti i dispositivi.
|
||
|
|
|
||
|
|
I dati demo in `src/lib/crapp-data.ts` invece no: sono file statici, quindi ogni aggiornamento dell'app li sovrascrive e ogni telefono li vede identici.
|
||
|
|
|
||
|
|
## Decisioni da prendere insieme
|
||
|
|
|
||
|
|
- Vuoi abilitare login email/password per ogni giocatore, o preferisci mantenere la selezione "Chi sei?" senza password per semplicità?
|
||
|
|
- Chi gestirà inserimento eventi e aggiornamento classifica: solo alcuni o tutta la squadra?
|
||
|
|
- Vuoi procedere per fasi (prima rosa + calendario + presenze, poi statistiche) o tutto insieme?
|