diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index d6c988d..69855eb 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -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). --- diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6c7c487..d1311de 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -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 diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 8559122..230a602 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -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 diff --git a/docs/TODO.md b/docs/TODO.md index b975d7c..450677d 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -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