Sync roadmap and project state with the code
Mark medical certificates, admin dashboard and CSV export as done: the player-side profile screens exist, so the notes calling them missing were stale. Leave CSI membership and official calendar open, each with what is already there. Record the current dev state of Google auth: implemented but returning "provider is not enabled" until the provider is turned on in Supabase. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+24
-12
@@ -7,8 +7,8 @@ Ultimo aggiornamento: 30/08/2026
|
||||
Fase corrente:
|
||||
|
||||
Backend migrato al nuovo Supabase proprietario. M1 completata. M2 e M3 scritte e da applicare.
|
||||
Autenticazione Google e dashboard amministratore implementate su `develop`, da attivare in
|
||||
produzione seguendo i passaggi più sotto. Profilo Giocatore lato giocatore ancora da fare.
|
||||
Autenticazione Google, dashboard amministratore e Profilo Giocatore (lato giocatore e lato
|
||||
admin) implementati su `develop`, da attivare in produzione seguendo i passaggi più sotto.
|
||||
|
||||
---
|
||||
|
||||
@@ -49,12 +49,7 @@ produzione seguendo i passaggi più sotto. Profilo Giocatore lato giocatore anco
|
||||
- Pagelle
|
||||
- MVP
|
||||
- Notifiche
|
||||
|
||||
---
|
||||
|
||||
## Modulo da implementare
|
||||
|
||||
Profilo Giocatore (specifica in `docs/modules/profilo-giocatore.md`)
|
||||
- Profilo Giocatore (su `develop`, specifica in `docs/modules/profilo-giocatore.md`)
|
||||
|
||||
---
|
||||
|
||||
@@ -63,13 +58,30 @@ Profilo Giocatore (specifica in `docs/modules/profilo-giocatore.md`)
|
||||
Implementate su `develop`, **non ancora attive in produzione**. Il codice è additivo: finché
|
||||
i passaggi qui sotto non sono fatti, l'app si comporta esattamente come prima.
|
||||
|
||||
**Stato in sviluppo (30/08/2026):** il codice c'è ed è completo, ma il login non funziona
|
||||
ancora. Con `npm run dev`, «Accedi con Google» risponde:
|
||||
|
||||
```
|
||||
{"code":400,"error_code":"validation_failed","msg":"Unsupported provider: provider is not enabled"}
|
||||
```
|
||||
|
||||
Non è un difetto dell'app: l'errore arriva da Supabase, dove il provider Google è spento.
|
||||
È il passo 1 qui sotto, ancora da fare. Tutto il resto dell'app in dev funziona normalmente,
|
||||
perché l'accesso avviene ancora scegliendo il proprio nome.
|
||||
|
||||
Passaggi in ordine, nessuno dei quali è reversibile a metà:
|
||||
|
||||
1. **Provider Google in Supabase** — Google Cloud Console: consent screen *External* (scope
|
||||
`email` e `profile`, nessuna verifica richiesta), credenziale *Web application* con
|
||||
redirect URI `https://kfkcldwncxqaixetsjes.supabase.co/auth/v1/callback`. Client ID e
|
||||
`email` e `profile`, non sensibili: nessuna verifica richiesta, e la modalità *Testing*
|
||||
regge fino a 100 utenti, più che sufficiente per la squadra), credenziale
|
||||
*Web application* con redirect URI
|
||||
`https://kfkcldwncxqaixetsjes.supabase.co/auth/v1/callback`. Client ID e
|
||||
secret in *Authentication → Providers → Google*. In *URL Configuration*: Site URL di
|
||||
produzione, più `localhost:8080` e il wildcard delle preview Vercel tra i Redirect URLs.
|
||||
Per provare sullo stack locale invece che sul cloud servono anche `enabled = true` in
|
||||
`[auth.external.google]` di `supabase/config.toml`, le due variabili
|
||||
`SUPABASE_AUTH_GOOGLE_*` in `.env` e una credenziale con redirect URI
|
||||
`http://127.0.0.1:54321/auth/v1/callback`.
|
||||
2. **Migration M2 e M3** (`supabase db push`). Sono `CREATE` puri: si possono applicare in
|
||||
produzione senza toccare il comportamento attuale.
|
||||
3. **Primo admin**, dopo il primo login (l'ID esiste solo da quel momento):
|
||||
@@ -85,8 +97,8 @@ collega uno slot lo occupa anche in produzione, e va liberato da un admin.
|
||||
|
||||
## Prossimo sviluppo
|
||||
|
||||
Profilo giocatore lato giocatore (caricamento di documento, certificato e foto tessera):
|
||||
finché non esiste, la dashboard amministratore mostra profili vuoti.
|
||||
Gestione tesseramenti CSI: la raccolta dati e l'export CSV sono pronti, manca il
|
||||
tracciamento di chi è già tesserato (numero e data di tessera).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ qui: sta in [ROADMAP.md](ROADMAP.md).
|
||||
- I permessi di amministrazione arrivano da `user_roles` (`src/lib/ruoli.ts`) e non più
|
||||
dalla lista di nomi in `crapp-data.ts`, che resta solo come ponte finché
|
||||
`VITE_AUTH_OBBLIGATORIA` non viene acceso.
|
||||
- Profilo giocatore: da `/profilo` ognuno compila i propri dati anagrafici e carica
|
||||
documento, certificato medico e foto tessera con le relative scadenze
|
||||
([modules/profilo-giocatore.md](modules/profilo-giocatore.md)).
|
||||
- Nuova schermata `/admin`: stato dei profili della squadra, download di documento,
|
||||
certificato e foto tessera, export CSV per il tesseramento CSI.
|
||||
- Migration `m2_profili_giocatore` (tabella dei profili) e `m3_bucket_profili` (bucket
|
||||
|
||||
+11
-5
@@ -19,10 +19,15 @@ sta facendo adesso.
|
||||
|
||||
## Versione 1.1
|
||||
|
||||
- [ ] Certificati medici
|
||||
- [ ] Gestione tesseramenti CSI
|
||||
- [ ] Dashboard amministratore
|
||||
- [ ] Download CSV dati
|
||||
Le voci spuntate sono implementate su `develop` e non ancora attive in produzione: lo stato
|
||||
di attivazione sta in [PROJECT_STATE.md](../PROJECT_STATE.md).
|
||||
|
||||
- [x] Certificati medici — caricamento, scadenza, stato e download; lo storico dei
|
||||
certificati resta un'estensione futura
|
||||
- [ ] Gestione tesseramenti CSI — raccolta dati ed export CSV pronti, manca il tracciamento
|
||||
di chi è già tesserato (numero e data di tessera)
|
||||
- [x] Dashboard amministratore
|
||||
- [x] Download CSV dati
|
||||
|
||||
## Versione 1.2
|
||||
|
||||
@@ -35,7 +40,8 @@ sta facendo adesso.
|
||||
- [x] Collegamento CSI (stagione 2025/26)
|
||||
- [x] Classifica automatica
|
||||
- [x] Risultati campionato
|
||||
- [ ] Calendario ufficiale
|
||||
- [ ] Calendario ufficiale — i dati delle gare future arrivano già dal feed CSI, la pagina
|
||||
Campionato usa solo quelle giocate
|
||||
|
||||
## Idee future
|
||||
|
||||
|
||||
+9
-5
@@ -6,7 +6,9 @@ Solo il lavoro in corso o imminente. L'elenco completo delle funzionalità previ
|
||||
## In corso
|
||||
|
||||
- Documentazione tecnica del progetto.
|
||||
- Autenticazione Google e dashboard amministratore: implementate su `develop`. Restano da
|
||||
- Autenticazione Google e dashboard amministratore: implementate su `develop`, ma in dev il
|
||||
login risponde ancora `provider is not enabled` perché il provider Google non è stato
|
||||
acceso in Supabase. Restano da
|
||||
fare, in quest'ordine: configurazione del provider Google in Supabase, applicazione delle
|
||||
migration M2/M3, inserimento del primo admin in `user_roles`, collegamento dei 17 account,
|
||||
e solo alla fine `VITE_AUTH_OBBLIGATORIA=true` + rimozione delle policy `anon`.
|
||||
@@ -14,10 +16,12 @@ Solo il lavoro in corso o imminente. L'elenco completo delle funzionalità previ
|
||||
|
||||
## Prossimo
|
||||
|
||||
- Profilo giocatore lato giocatore: senza le schermate di caricamento di documento,
|
||||
certificato e foto, la dashboard amministratore resta a zero dati.
|
||||
- Certificati medici (roadmap v1.1).
|
||||
- Gestione tesseramenti CSI (roadmap v1.1).
|
||||
- Gestione tesseramenti CSI (roadmap v1.1): la raccolta dati e l'export CSV ci sono, manca
|
||||
il tracciamento di chi è già tesserato (numero e data di tessera).
|
||||
|
||||
Il profilo giocatore lato giocatore e i certificati medici sono fatti: `ProfiloAmministrativo`
|
||||
in `src/routes/profilo.tsx` carica documento, certificato e foto con le date di scadenza, e
|
||||
la dashboard amministratore legge quei dati.
|
||||
|
||||
## Debito di documentazione
|
||||
|
||||
|
||||
Reference in New Issue
Block a user