diff --git a/.cursor/architecture-summary.md b/.cursor/architecture-summary.md new file mode 100644 index 0000000..e37235c --- /dev/null +++ b/.cursor/architecture-summary.md @@ -0,0 +1,37 @@ +# Architecture Summary + +Frontend + +- React +- TanStack Start +- Tailwind +- TypeScript + +Backend + +- Supabase + +Hosting + +- Vercel + +Repository + +- GitHub + +Branch + +- main +- develop + +Documentazione + +- docs/ + +Database + +- Supabase + +Storage + +- Supabase Storage \ No newline at end of file diff --git a/.cursor/coding-style.md b/.cursor/coding-style.md new file mode 100644 index 0000000..a695ac0 --- /dev/null +++ b/.cursor/coding-style.md @@ -0,0 +1,12 @@ +# Coding Style + +Preferenze del progetto. + +- Utilizzare TypeScript. +- Preferire funzioni piccole. +- Evitare duplicazione di codice. +- Utilizzare componenti React riutilizzabili. +- Commentare solamente il codice realmente complesso. +- Preferire nomi descrittivi. +- Non introdurre librerie senza reale necessità. +- Mantenere la struttura esistente del progetto. \ No newline at end of file diff --git a/.cursor/crapp-context.md b/.cursor/crapp-context.md new file mode 100644 index 0000000..d03bd8a --- /dev/null +++ b/.cursor/crapp-context.md @@ -0,0 +1,22 @@ +# CrAPP Context + +CrAPP è una Progressive Web App dedicata alla gestione di una squadra di pallavolo amatoriale. + +L'obiettivo principale NON è solamente registrare dati. + +L'obiettivo è ridurre il lavoro amministrativo degli amministratori e aumentare il coinvolgimento dei giocatori attraverso gamification, statistiche e strumenti intelligenti. + +Quando implementi nuove funzionalità: + +- privilegia semplicità +- mantieni la coerenza dell'interfaccia +- evita duplicazioni +- leggi sempre la documentazione presente in `docs/` + +Prima di scrivere codice consulta: + +- README +- ROADMAP +- DATABASE +- ARCHITECTURE +- il modulo interessato in `docs/modules` \ No newline at end of file diff --git a/.cursor/development-workflow.md b/.cursor/development-workflow.md new file mode 100644 index 0000000..fe70802 --- /dev/null +++ b/.cursor/development-workflow.md @@ -0,0 +1,11 @@ +# Development Workflow + +Ogni nuova funzionalità segue questo flusso. + +1. Discussione funzionale. +2. Documento in `docs/modules`. +3. Progettazione database. +4. Implementazione su branch `develop`. +5. Test. +6. Merge su `main`. +7. Deploy automatico tramite Vercel. \ No newline at end of file diff --git a/.cursor/project-rules.md b/.cursor/project-rules.md new file mode 100644 index 0000000..cbd9c92 --- /dev/null +++ b/.cursor/project-rules.md @@ -0,0 +1,29 @@ +# Project Rules + +Queste regole devono essere rispettate per qualsiasi modifica al progetto. + +## Regole generali + +- Non modificare il branch `main` direttamente. +- Tutte le nuove funzionalità vengono sviluppate su `develop`. +- Prima di implementare una funzionalità leggere sempre la documentazione presente in `docs/`. +- Non creare codice duplicato. +- Riutilizzare sempre componenti già esistenti quando possibile. +- Mantenere uno stile coerente con il progetto. + +## Database + +- Non modificare il database senza creare una nuova migration Supabase. +- Non eliminare tabelle esistenti senza esplicita richiesta. +- Preferire nuove tabelle rispetto all'aggiunta di molte colonne quando il modulo è indipendente. + +## Componenti + +- Preferire componenti piccoli e riutilizzabili. +- Evitare componenti con responsabilità multiple. + +## Documentazione + +Ogni nuova funzionalità deve essere documentata prima dell'implementazione. + +La documentazione tecnica si trova nella cartella `docs/`. \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 36eb109..650a686 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,10 +1,228 @@ - -> [!IMPORTANT] -> This project is connected to [Lovable](https://lovable.dev). Avoid rewriting -> published git history — force pushing, or rebasing/amending/squashing commits -> that are already pushed — as it rewrites history on Lovable's side and the -> user will likely lose their project history. -> -> Commits you push to the connected branch sync back to Lovable and show up in -> the editor, so keep the branch in a working state. - +# AGENTS.md + +# CrAPP - AI Development Guide + +Questo documento definisce le regole che qualsiasi assistente AI (Cursor, Claude Code, Codex, ChatGPT o altri) deve seguire quando lavora su questo progetto. + +--- + +# Obiettivo del progetto + +CrAPP è una Progressive Web App sviluppata per digitalizzare completamente la gestione di una squadra di pallavolo. + +L'obiettivo principale è: + +- ridurre il lavoro amministrativo degli amministratori; +- aumentare il coinvolgimento dei giocatori; +- centralizzare tutte le informazioni della squadra; +- utilizzare l'intelligenza artificiale solo quando porta un reale beneficio. + +--- + +# Prima di modificare il codice + +Prima di implementare qualsiasi modifica leggere sempre: + +1. docs/README.md +2. docs/VISION.md +3. docs/ROADMAP.md +4. docs/ARCHITECTURE.md +5. docs/DATABASE.md +6. docs/TODO.md +7. il documento interessato in docs/modules/ + +Non implementare funzionalità non documentate. + +--- + +# Workflow di sviluppo + +Ogni nuova funzionalità segue sempre questo processo. + +Idea + +↓ + +Progettazione + +↓ + +Documentazione + +↓ + +Database + +↓ + +Implementazione + +↓ + +Test + +↓ + +Merge su main + +↓ + +Deploy automatico + +--- + +# Git + +Il repository utilizza due branch principali. + +## main + +Versione stabile. + +Qualsiasi modifica deve mantenere l'app perfettamente funzionante. + +## develop + +Branch utilizzato per lo sviluppo delle nuove funzionalità. + +Tutte le nuove implementazioni devono essere realizzate qui. + +--- + +# Architettura + +Frontend + +- React +- TypeScript +- TanStack Start +- Tailwind CSS + +Backend + +- Supabase + +Hosting + +- Vercel + +Repository + +- GitHub + +--- + +# Database + +Il database utilizza Supabase. + +Regole: + +- non eliminare tabelle esistenti; +- non modificare lo schema senza creare una migration; +- preferire strutture scalabili; +- evitare duplicazione dei dati. + +Fare sempre riferimento a: + +docs/DATABASE.md + +--- + +# Componenti + +Preferire: + +- componenti piccoli; +- componenti riutilizzabili; +- responsabilità singola; +- codice semplice da mantenere. + +Evitare duplicazioni. + +--- + +# Interfaccia + +Lo stile dell'app deve rimanere coerente. + +Principi: + +- semplice; +- moderna; +- pulita; +- veloce; +- ottimizzata per smartphone; +- poche schermate; +- pochi click. + +--- + +# Documentazione + +Ogni nuova funzionalità deve essere documentata prima dello sviluppo. + +La documentazione dei moduli si trova in: + +docs/modules/ + +Aggiornare sempre, quando necessario: + +- ROADMAP.md +- CHANGELOG.md +- TODO.md +- DATABASE.md (se il database cambia) +--- + +# Struttura della documentazione + +La cartella `docs/` rappresenta la documentazione ufficiale del progetto. + +## Documenti principali + +- README.md → panoramica del progetto +- VISION.md → obiettivi e filosofia +- ROADMAP.md → evoluzione prevista +- ARCHITECTURE.md → architettura tecnica +- DATABASE.md → struttura del database +- CHANGELOG.md → cronologia delle modifiche +- TODO.md → attività pianificate + +## Moduli + +La cartella `docs/modules/` contiene una specifica funzionale per ogni modulo dell'applicazione. + +Ogni nuovo modulo deve essere progettato e documentato prima dell'implementazione. +--- + +# Regole + +L'AI non deve: + +- introdurre librerie senza necessità; +- modificare il database senza motivazione; +- eliminare funzionalità esistenti; +- modificare il comportamento dell'app senza richiesta esplicita. + +L'AI deve: + +- spiegare le modifiche importanti; +- mantenere compatibilità con il codice esistente; +- privilegiare la semplicità; +- riutilizzare i componenti esistenti. + +--- + +# Filosofia del progetto + +Prima di scrivere codice chiedersi sempre: + +Questa modifica rende CrAPP più semplice? + +Riduce il lavoro degli amministratori? + +Migliora l'esperienza dei giocatori? + +È coerente con la documentazione? + +Se almeno una risposta è negativa, rivalutare la soluzione proposta. \ No newline at end of file diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md new file mode 100644 index 0000000..4a91cbb --- /dev/null +++ b/PROJECT_STATE.md @@ -0,0 +1,50 @@ +# Project State + +Ultimo aggiornamento: 07/08/2026 + +## Stato generale + +Fase corrente: + +Progettazione dell'area Profilo Giocatore. + +--- + +## Infrastruttura + +- Sviluppo locale configurato +- GitHub configurato +- Vercel configurato +- Branch develop operativo + +--- + +## Moduli completati + +- Squadra +- Presenze +- Badge +- Scout Live +- Pagelle +- MVP +- Notifiche + +--- + +## Modulo in progettazione + +Profilo Giocatore + +--- + +## Prossimo sviluppo + +Implementazione del modulo Profilo Giocatore. + +--- + +## Note + +Il progetto segue una metodologia document-first. + +Ogni nuova funzionalità viene progettata nella cartella `docs/modules/` prima di essere implementata. \ No newline at end of file diff --git a/README.md b/README.md index 6510c88..1d1cc9a 100644 --- a/README.md +++ b/README.md @@ -1,118 +1,95 @@ -# CRAP Volley Hub +# CrAPP 🏐 -CrAPP – App per CRAP Volley +CrAPP è una Progressive Web App sviluppata per digitalizzare completamente la gestione di una squadra di pallavolo. -Vorrei sviluppare un’app mobile per la squadra di pallavolo CRAP Volley, con nome CrAPP, disponibile per Android e iOS. L’obiettivo è creare un’app semplice da usare, moderna, bella da vedere e più coinvolgente rispetto a SportEasy, includendo anche funzionalità normalmente a pagamento in altre app. +## Funzionalità principali -Funzionalità principali +- Gestione squadra +- Gestione presenze +- Calendario allenamenti e partite +- Scout Live +- Badge e gamification +- Statistiche +- Notifiche intelligenti +- Gestione amministrativa +- AI per la pianificazione degli allenamenti (in sviluppo) -Gestione presenze/assenze +--- -Partite +## Stack tecnologico -Allenamenti +- React 19 +- TypeScript +- TanStack Start +- Vite +- Tailwind CSS +- Supabase +- GitHub +- Vercel -Eventi extra +--- -Stati rapidi: presente, assente, forse, in ritardo, indisponibile, infortunato +## Ambienti -Statistiche giocatori +- `main` → Produzione +- `develop` → Sviluppo -Presenze totali +--- -Presenze consecutive +## Avvio locale -Gol/punti o altre statistiche specifiche della pallavolo - -MVP, migliori performance, medie stagione - -Statistiche partite - -Risultati - -Formazioni - -Andamento set - -Storico match - -Campionato in tempo reale - -Visualizzazione classifica e risultati - -Dati presi direttamente dal sito del CSI - -Aggiornamento automatico o importazione periodica - -Calendario squadra - -Allenamenti - -Partite - -Promemoria - -Vista mensile e lista eventi - -Profilo giocatore - -Foto - -Ruolo - -Statistiche personali - -Badge e obiettivi - -Idea di stile - -Interfaccia sportiva, pulita e moderna - -Molto mobile-first - -Design divertente, energico e più “premium” - -Inserire in seguito il logo della squadra - -Possibile uso di badge, livelli, premi e mini-gamification per rendere l’app più piacevole da usare - -Extra che sarebbe bello aggiungere - -Notifiche push per convocazioni e cambi orario - -Chat o bacheca squadra - -Report automatici dopo le partite - -Sondaggi rapidi per disponibilità - -Sezione “Best of the match” - -Obiettivi di gruppo per presenza e continuità - -Obiettivo finale - -Realizzare una app che non sia solo utile per la gestione della squadra, ma anche piacevole, coinvolgente e bella da usare ogni giorno. - -This project was built with [Lovable](https://lovable.dev). - -**Live app**: https://volley-cronos-app.lovable.app - -## Build with Lovable - -Continue developing this project in the [Lovable editor](https://lovable.dev/projects/8d07b0e4-6bd2-4a17-9dd2-bb2cf13f9f7c). - -- **Ship faster**: describe what you want to build and Lovable handles the code. -- **Stay in sync**: every change made in Lovable is committed straight to this repository. -- **Full ownership**: this code is yours. Push to `main` on GitHub and your changes sync back into Lovable, ready for your next prompt. - -## Development - -Prefer working locally? You need Node.js and npm — [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating). - -```sh -git clone -cd -npm i +```bash +npm install npm run dev ``` + +L'app sarà disponibile su: + +``` +http://localhost:8080 +``` + +--- + +## Build + +```bash +npm run build +``` + +--- + +## Deploy + +Il deploy è automatico tramite Vercel ad ogni push sul branch `main`. + +Le modifiche sviluppate nel branch `develop` vengono pubblicate automaticamente come Preview Deployment. + +--- + +## Variabili d'ambiente + +Il progetto richiede le seguenti variabili: + +- `SUPABASE_URL` +- `SUPABASE_PUBLISHABLE_KEY` +- `VITE_SUPABASE_URL` +- `VITE_SUPABASE_PUBLISHABLE_KEY` + +--- + +## Repository + +Il codice sorgente è gestito tramite GitHub. + +Flusso di sviluppo: + +``` +develop + ↓ +Test + ↓ +Merge su main + ↓ +Deploy automatico Vercel +``` \ No newline at end of file diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..5335322 --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,71 @@ +# Architettura del progetto + +## Frontend + +- React 19 +- TypeScript +- TanStack Start +- Vite +- Tailwind CSS +- Radix UI + +--- + +## Backend + +- Supabase + +--- + +## Hosting + +- Vercel + +--- + +## Versionamento + +- Git +- GitHub + +--- + +## Branch + +- main → Produzione +- develop → Sviluppo + +--- + +## Struttura del progetto + +src/ + +- components/ +- routes/ +- lib/ +- integrations/ +- hooks/ +- assets/ + +supabase/ + +docs/ + +--- + +## Flusso di sviluppo + +develop + +↓ + +Test + +↓ + +Merge su main + +↓ + +Deploy automatico su Vercel \ No newline at end of file diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md new file mode 100644 index 0000000..5374edd --- /dev/null +++ b/docs/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +Tutte le modifiche significative del progetto vengono registrate in questo documento. + +--- + +## Versione attuale + +### Infrastruttura + +- Migrazione completa da Lovable a sviluppo locale. +- Configurazione Git. +- Repository GitHub indipendente. +- Deploy automatico tramite Vercel. +- Branch main e develop. + +--- + +## Funzionalità implementate + +- Gestione squadra +- Calendario +- Presenze +- Scout Live +- Badge +- Obiettivi di squadra +- Pagelle +- Badge social +- Serie di presenze +- Notifiche intelligenti \ No newline at end of file diff --git a/docs/DATABASE.md b/docs/DATABASE.md new file mode 100644 index 0000000..738d2e6 --- /dev/null +++ b/docs/DATABASE.md @@ -0,0 +1,159 @@ +# Database CrAPP + +## Obiettivo + +Questo documento descrive la struttura del database Supabase e il ruolo di ogni tabella. + +--- + +# Utenti + +## giocatori + +Contiene l'anagrafica dei giocatori. + +Utilizzato da: + +- Squadra +- Profili +- Presenze +- Scout +- Badge +- Pagelle + +--- + +## user_roles + +Definisce i ruoli applicativi. + +Esempi: + +- amministratore +- giocatore + +--- + +# Eventi + +## eventi + +Calendario generale. + +Comprende: + +- allenamenti +- partite +- eventi della squadra + +--- + +## eventi_app + +Eventi gestionali utilizzati dall'app. + +--- + +# Presenze + +## presenze + +Gestisce le presenze agli eventi. + +--- + +## risposte_presenze + +Memorizza le risposte dei giocatori. + +--- + +# Scout + +## scout_sessioni + +Sessioni di Scout Live. + +Una sessione corrisponde ad una partita. + +--- + +## scout_live + +Eventi registrati durante lo Scout Live. + +Serve esclusivamente per statistiche di squadra. + +--- + +# Votazioni + +## mvp_voti + +Voti MVP assegnati a fine partita. + +--- + +## pagelle_voti + +Voti anonimi assegnati ai giocatori. + +Utilizzati per il voto medio. + +--- + +## badge_social_voti + +Voti social per i badge. + +--- + +# Badge + +Attualmente i badge vengono calcolati dall'applicazione. + +Non esiste una tabella dedicata. + +--- + +# Turni + +## turni_palloni + +Gestione dei turni palloni. + +--- + +# Notifiche + +## push_subscriptions + +Dispositivi registrati per le notifiche Push. + +--- + +## promemoria_push + +Storico dei promemoria inviati. + +--- + +# Funzioni speciali + +## cacche_partita + +Sondaggio prepartita. + +Utilizzato per statistiche e badge segreti. + +--- + +# Moduli futuri + +Da implementare + +- Certificati medici +- Tesseramenti CSI +- Database allenamenti +- AI Allenamenti +- Integrazione CSI \ No newline at end of file diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md new file mode 100644 index 0000000..4fb2502 --- /dev/null +++ b/docs/ROADMAP.md @@ -0,0 +1,46 @@ +# Roadmap + +## Versione 1.0 + +- [x] Gestione squadra +- [x] Calendario +- [x] Presenze +- [x] Scout Live +- [x] Badge +- [x] Obiettivi di squadra +- [x] Notifiche Push + +--- + +## Versione 1.1 + +- [ ] Certificati medici +- [ ] Gestione tesseramenti CSI +- [ ] Dashboard amministratore +- [ ] Download CSV dati + +--- + +## Versione 1.2 + +- [ ] Database esercizi +- [ ] AI Allenamenti +- [ ] Archivio allenamenti + +--- + +## Versione 2.0 + +- [ ] Collegamento CSI +- [ ] Classifica automatica +- [ ] Risultati campionato +- [ ] Calendario ufficiale + +--- + +## Idee future + +- [ ] Gestione quote +- [ ] Calendario Google +- [ ] Backup automatici +- [ ] Analisi statistiche avanzate \ No newline at end of file diff --git a/docs/TODO.md b/docs/TODO.md new file mode 100644 index 0000000..011b5ee --- /dev/null +++ b/docs/TODO.md @@ -0,0 +1,29 @@ +# TODO + +## In corso + +- Documentazione tecnica del progetto. + +--- + +## Prossimo + +- Certificati medici. +- Gestione tesseramenti CSI. + +--- + +## Backlog + +- AI Allenamenti. +- Dashboard amministratore. +- Collegamento CSI. + +--- + +## Idee + +- Gestione quote. +- Widget meteo. +- Analisi Scout con AI. +- Backup automatici. \ No newline at end of file diff --git a/docs/VISION.md b/docs/VISION.md new file mode 100644 index 0000000..6aa2495 --- /dev/null +++ b/docs/VISION.md @@ -0,0 +1,38 @@ +# Visione del progetto + +## Missione + +CrAPP nasce con un obiettivo semplice: + +Digitalizzare completamente la gestione di una squadra di pallavolo, eliminando il maggior numero possibile di attività manuali e aumentando il coinvolgimento dei giocatori attraverso strumenti moderni e intuitivi. + +--- + +## Principi del progetto + +Ogni funzionalità sviluppata deve rispettare almeno uno di questi principi: + +- Ridurre il lavoro amministrativo. +- Migliorare il coinvolgimento della squadra. +- Centralizzare tutte le informazioni in un'unica piattaforma. +- Automatizzare le attività ripetitive. +- Sfruttare l'intelligenza artificiale solo quando porta un reale beneficio. + +--- + +## Filosofia + +CrAPP deve essere: + +- Semplice +- Veloce +- Divertente +- Intuitiva +- Accessibile da smartphone +- Utilizzabile anche da persone poco esperte + +--- + +## Obiettivo finale + +Diventare il punto di riferimento per la gestione quotidiana della squadra, sostituendo chat, fogli Excel e strumenti separati con un'unica applicazione. \ No newline at end of file diff --git a/docs/modules/profilo-giocatore.md b/docs/modules/profilo-giocatore.md new file mode 100644 index 0000000..5c5fb4e --- /dev/null +++ b/docs/modules/profilo-giocatore.md @@ -0,0 +1,281 @@ +# Profilo Giocatore + +## Obiettivo + +Il modulo "Profilo Giocatore" raccoglie tutte le informazioni personali, amministrative e documentali di ciascun membro della squadra. + +L'obiettivo è centralizzare in un'unica schermata tutti i dati necessari sia al giocatore sia agli amministratori, eliminando la gestione tramite chat, documenti cartacei e fogli Excel. + +--- + +# Utenti + +## Giocatore + +Può: + +- visualizzare il proprio profilo +- modificare i propri dati personali +- aggiornare il certificato medico +- aggiornare i documenti +- caricare le immagini richieste + +--- + +## Amministratore + +Può: + +- visualizzare il profilo di tutti i giocatori +- scaricare documenti e certificati +- esportare i dati necessari al tesseramento CSI +- verificare lo stato di completamento dei profili + +--- + +# Flusso utente + +## Primo accesso + +1. Login tramite Google oppure Email. +2. Selezione del proprio giocatore. +3. Accesso alla Home. + +Se il profilo non è completo compare automaticamente un widget di completamento. + +--- + +# Home + +Il giocatore visualizza un widget dedicato. + +## Completa il tuo profilo + +Viene mostrata una barra di avanzamento. + +Esempio + +Profilo completato + +85% + +La barra è composta dalle seguenti sezioni. + +- Dati personali +- Documento di identità +- Certificato medico +- Foto tessera + +Quando tutte le sezioni sono complete il widget scompare automaticamente. + +--- + +# Profilo + +Il profilo viene suddiviso in cinque aree. + +## Dati Giocatore + +Contiene. + +### Dati squadra + +Solo lettura. + +- Nome +- Cognome +- Numero di maglia +- Ruolo + +Questi dati sono gestiti esclusivamente dagli amministratori. + +--- + +### Dati personali + +Modificabili dal giocatore. + +- Data di nascita +- Luogo di nascita +- Indirizzo di residenza +- Telefono +- Email + +--- + +## Documento di identità + +Campi. + +- Tipo documento +- Numero documento +- Rilasciato da +- Data emissione +- Data scadenza + +Upload. + +- Foto fronte +- Foto retro + +--- + +## Certificato medico + +Campi. + +- Data di scadenza + +Upload. + +- Certificato medico + +Il giocatore può aggiornare liberamente sia la data sia il file. + +Lo storico non viene mantenuto nella prima versione. + +--- + +## Foto tessera + +Upload di una fotografia formato tessera. + +Utilizzata dagli amministratori per il tesseramento CSI. + +--- + +## Statistiche + +Sezione già presente. + +Contiene. + +- Presenze +- Voto medio +- MVP +- Serie +- Altre statistiche disponibili + +--- + +## Badge + +Sezione già presente. + +Contiene tutti i badge ottenuti e quelli ancora da sbloccare. + +--- + +## Impostazioni + +Contiene. + +- Logout +- Preferenze notifiche +- Impostazioni applicazione + +--- + +# Dashboard amministratore + +Gli amministratori dispongono di una schermata dedicata. + +Per ogni giocatore vengono mostrati. + +- Stato del profilo +- Certificato medico +- Documento di identità +- Foto tessera + +Azioni disponibili. + +- Visualizza profilo +- Scarica certificato +- Scarica documento +- Scarica foto tessera + +--- + +# Esportazione CSI + +Gli amministratori possono esportare un file CSV contenente esclusivamente i dati richiesti per il tesseramento. + +Campi esportati. + +- Nome +- Cognome +- Data di nascita +- Luogo di nascita +- Indirizzo +- Telefono +- Email +- Tipo documento +- Numero documento +- Rilasciato da +- Data emissione +- Data scadenza + +--- + +# Completamento profilo + +Ogni sezione contribuisce alla percentuale di completamento. + +## Pesi + +Dati personali + +30% + +Documento di identità + +30% + +Certificato medico + +30% + +Foto tessera + +10% + +Quando tutte le sezioni risultano complete il profilo raggiunge il 100%. + +--- + +# Permessi + +## Giocatore + +Può modificare esclusivamente il proprio profilo. + +## Amministratore + +Può visualizzare tutti i profili. + +Può scaricare tutti i documenti. + +Può esportare i dati. + +--- + +# Versione 1 + +- Profilo giocatore +- Completamento profilo +- Gestione dati personali +- Documento di identità +- Certificato medico +- Foto tessera +- Dashboard amministratore +- Esportazione CSV CSI + +--- + +# Versioni future + +- Storico certificati medici +- Gestione documenti aggiuntivi +- Consensi privacy +- Firma digitale +- Verifica automatica documenti \ No newline at end of file