Add project documentation and AI development guidelines

This commit is contained in:
Ivan Cacciari
2026-08-07 15:36:02 +02:00
parent 6dc63d9250
commit 7a2b26ec89
15 changed files with 1124 additions and 114 deletions
+37
View File
@@ -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
+12
View File
@@ -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.
+22
View File
@@ -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`
+11
View File
@@ -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.
+29
View File
@@ -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/`.
+228 -10
View File
@@ -1,10 +1,228 @@
<!-- LOVABLE:BEGIN -->
> [!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.
<!-- LOVABLE:END -->
# 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.
+50
View File
@@ -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.
+81 -104
View File
@@ -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 unapp mobile per la squadra di pallavolo CRAP Volley, con nome CrAPP, disponibile per Android e iOS. Lobiettivo è creare unapp 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 lapp 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 <this-repository-url>
cd <repository-name>
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
```
+71
View File
@@ -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
+30
View File
@@ -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
+159
View File
@@ -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
+46
View File
@@ -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
+29
View File
@@ -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.
+38
View File
@@ -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.
+281
View File
@@ -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