Un sistema completo di gestione per associazioni sportive sviluppato con Streamlit, che integra gestione atleti, calendario gare e generazione automatica di documenti.
- Registrazione e gestione profili atleti
- Visualizzazione informazioni complete (nome, email, telefono, livello atletico)
- Pannello dedicato per ogni atleta con documenti organizzati per categoria
- Integrazione con Google Calendar API
- Aggiunta automatica di gare al calendario
- Visualizzazione gare future
- Generazione automatica di documenti per tutti gli atleti dopo l'aggiunta di una gara
- Documenti organizzati per tipologia:
- Dieta: Piani alimentari personalizzati
- Mental Coaching: Supporto psicologico e motivazionale
- Statistiche: Analisi performance
- Scheda: Programmi di allenamento
- Visualizzazione in formato Markdown
- Sistema di invio email per ogni documento
- Generazione automatica tramite AI (OpenAI GPT)
- Invio documenti via email agli atleti
- Template personalizzati per ogni tipo di documento
- Tracciamento del tipo di documento nell'email
- Clona il repository
git clone <repository-url>
cd hackaton_valtellina- Installa le dipendenze
pip install -r requirements.txt- Configura le variabili d'ambiente
Crea un file
.envnella root del progetto:
# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key
SYSTEM_PROMPT=Sei un assistente specializzato nella creazione di documenti per atleti. Genera contenuti professionali e dettagliati in formato markdown.
# Email Configuration
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password
# Google Calendar Configuration
GOOGLE_CALENDAR_EMAIL=your_calendar_email@gmail.com- Configura Google Calendar API
- Vai alla Google Cloud Console
- Crea un nuovo progetto o seleziona uno esistente
- Abilita la Google Calendar API
- Crea le credenziali (Service Account)
- Scarica il file JSON delle credenziali
- Condividi il tuo calendario con l'email del service account
- Inizializza il database
python database_handler.py- Aggiungi dati di esempio (opzionale)
python sample_data.pystreamlit run streamlit_app.pyL'applicazione sarà disponibile su http://localhost:8501
- Panoramica generale con statistiche
- Numero totale atleti, gare future e documenti
- Lista completa degli atleti registrati
- Lista Atleti: Visualizza tutti gli atleti con possibilità di accedere ai profili
- Aggiungi Atleta: Form per registrare nuovi atleti
- Gare Future: Visualizza eventi dal Google Calendar
- Aggiungi Gara:
- Crea nuovi eventi nel calendario
- Opzione per generare automaticamente documenti per tutti gli atleti
- Selezione del tipo di documento da generare
- Informazioni complete dell'atleta
- Documenti organizzati per tipologia in tab separate
- Visualizzazione documenti in formato Markdown
- Pulsanti per:
- Visualizzare contenuto completo
- Inviare documento via email
- Generazione manuale di nuovi documenti
- Registra atleti nella sezione "Gestione Atleti"
- Aggiungi una gara nel "Calendario Gare"
- Seleziona la generazione automatica di documenti durante l'aggiunta della gara
- Vai al profilo di un atleta per revisionare i documenti generati
- Invia i documenti via email dopo la revisione
hackaton_valtellina/
├── streamlit_app.py # Applicazione Streamlit principale
├── database_handler.py # Gestione database SQLite
├── emails.py # Sistema di invio email
├── google_calendar.py # Integrazione Google Calendar
├── llm.py # Integrazione OpenAI
├── pipeline.py # Pipeline di generazione documenti
├── schemas.py # Schemi Pydantic
├── sample_data.py # Dati di esempio
├── requirements.txt # Dipendenze Python
├── README.md # Documentazione
└── .env # Variabili d'ambiente
- ID univoco
- Codice fiscale
- Nome e cognome
- Email e telefono
- Livello atletico (Avanzato, Agonistico, Professionista)
- ID univoco
- Riferimento all'atleta
- Tipo documento (Dieta, Mental Coaching, Statistiche, Scheda)
- Titolo e contenuto
- Data di creazione
- Oggetto
- Contenuto
- Tipo documento (nuovo campo aggiunto)
- Modifica l'enum
TipoDocumentoindatabase_handler.py - Aggiorna il prompt di sistema per la generazione AI
- L'interfaccia si adatterà automaticamente
- Modifica la funzione
send_emailinemails.py - Personalizza il formato del messaggio
- Modifica
google_calendar.pyper aggiungere nuove funzioni - Integra con altre API di calendario se necessario
-
Errore Google Calendar API
- Verifica che le credenziali siano corrette
- Controlla che il calendario sia condiviso con il service account
-
Errore invio email
- Verifica le credenziali SMTP
- Per Gmail, usa una App Password invece della password normale
-
Errore OpenAI API
- Controlla che la chiave API sia valida
- Verifica di avere crediti sufficienti
-
Database non trovato
- Esegui
python database_handler.pyper creare il database
- Esegui
Per contribuire al progetto:
- Fork del repository
- Crea un branch per la tua feature
- Commit delle modifiche
- Push del branch
- Crea una Pull Request
Questo progetto è sviluppato per scopi educativi e di hackathon.