Un'applicazione web full-stack per analizzare le performance di corsa utilizzando i dati di Strava.
- Autenticazione Strava: Connessione sicura tramite OAuth2
- Sincronizzazione Dati: Download automatico delle attività da Strava
- Dashboard Interattivo: Visualizzazione delle metriche chiave e tendenze
- Elenco Attività: Tabella completa con filtri e ricerca
- Analisi Dettagliata: Grafici e statistiche per ogni attività
- Interfaccia Moderna: UI responsive con Tailwind CSS e Radix UI
- React 18 con TypeScript
- Vite per il build e development
- Tailwind CSS per lo styling
- Radix UI per i componenti
- Recharts per i grafici
- React Query per la gestione dello stato
- React Router per la navigazione
- FastAPI (Python)
- SQLAlchemy per l'ORM
- SQLite per il database
- Stravalib per l'integrazione con Strava
- Pandas/NumPy per l'analisi dei dati
- Node.js 18+ e npm
- Python 3.11+
- Account Strava Developer
- Vai su Strava API Settings
- Crea una nuova applicazione
- Imposta l'URL di redirect a
http://localhost:3000/auth/callback - Prendi nota di
Client IDeClient Secret
Crea un file .env nella root del progetto:
# Strava API
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
# Frontend
VITE_API_URL=http://localhost:8000# Frontend
npm install
# Backend
cd backend
pip install -r requirements.txtdocker-compose up --buildL'applicazione sarà disponibile su:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000npm run dev- Accesso: Vai su http://localhost:3000
- Autenticazione: Clicca "Connetti con Strava" e autorizza l'applicazione
- Sincronizzazione: Le tue attività verranno scaricate automaticamente
- Esplorazione: Naviga tra Dashboard, Attività e altre sezioni
run-insights-unleashed/
├── src/ # Frontend React
│ ├── components/ # Componenti UI
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Utilità e API
│ ├── pages/ # Pagine dell'applicazione
│ └── ...
├── backend/ # Backend FastAPI
│ ├── app/
│ │ ├── api/ # Endpoint API
│ │ ├── core/ # Configurazione
│ │ ├── db/ # Database
│ │ ├── models/ # Modelli SQLAlchemy
│ │ ├── schemas/ # Schemi Pydantic
│ │ ├── services/ # Logica di business
│ │ └── utils/ # Utilità
│ └── requirements.txt
├── docker-compose.yml
└── README.md
GET /auth/strava/authorize- URL di autorizzazione StravaGET /auth/strava/callback- Callback OAuth2GET /auth/user/{user_id}- Dati utente
POST /activities/sync/{user_id}- Sincronizza attivitàGET /activities/{user_id}- Lista attivitàGET /activities/{user_id}/activity/{activity_id}- Dettaglio attivitàGET /activities/{user_id}/stats- Statistiche utenteGET /activities/{user_id}/trends- Tendenze temporali
# Backend
cd backend
pytest
# Frontend
npm test- Configurazione FastAPI
- Autenticazione OAuth2 con Strava
- Modelli database SQLAlchemy
- Sincronizzazione attività base
- Frontend React con TypeScript
- Pagina di login/connessione Strava
- Dashboard con metriche aggregate
- Grafici di tendenza con Recharts
- Tabella attività con filtri
- Paginazione e ricerca
- Mappa interattiva del percorso
- Grafici dettagliati (ritmo, FC, cadenza)
- Analisi dei laps/split
- Analisi delle zone
- Comparazione attività
- Record personali
- Analisi delle tendenze avanzate
- Impostazioni utente
- Fork il progetto
- Crea un branch per la feature (
git checkout -b feature/AmazingFeature) - Commit le modifiche (
git commit -m 'Add some AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
- Account Vercel
- Repository GitHub/GitLab con il codice
- Backend deployato (FastAPI su Vercel, Railway, o altro servizio)
- Copia il file
env.examplein.env:
cp env.example .env- Configura le variabili d'ambiente su Vercel:
- Vai su Vercel Dashboard
- Seleziona il tuo progetto
- Vai su "Settings" → "Environment Variables"
- Aggiungi le seguenti variabili:
VITE_API_URL=https://your-backend-url.vercel.app
VITE_STRAVA_CLIENT_ID=your_strava_client_id
VITE_STRAVA_REDIRECT_URI=https://your-frontend-url.vercel.app/auth/callback
VITE_USE_MOCK_DATA=false-
Connetti il repository a Vercel:
- Vai su Vercel Dashboard
- Clicca "New Project"
- Importa il repository GitHub/GitLab
- Vercel rileverà automaticamente che è un progetto Vite
-
Configura il build:
- Framework Preset: Vite
- Build Command:
npm run build - Output Directory:
dist - Install Command:
npm install
-
Deploy:
- Clicca "Deploy"
- Vercel buildera e deployerà automaticamente l'applicazione
Dopo il deployment, aggiorna l'URL di redirect su Strava:
- Vai su Strava API Settings
- Cambia l'URL di redirect da
http://localhost:3000/auth/callbackahttps://your-domain.vercel.app/auth/callback
- Backend: Assicurati che il backend sia deployato e accessibile
- CORS: Il backend deve permettere richieste dal dominio Vercel
- HTTPS: Vercel fornisce automaticamente HTTPS
- Environment Variables: Configura tutte le variabili necessarie su Vercel
Questo progetto è sotto licenza MIT. Vedi il file LICENSE per i dettagli.
Per problemi o domande:
- Controlla la documentazione API su http://localhost:8000/docs
- Apri una issue su GitHub
- Controlla i log del backend per errori dettagliati
- Integrazione con altri servizi (Garmin, TrainingPeaks)
- Analisi dei segmenti Strava
- Piani di allenamento personalizzati
- Notifiche e alert
- Esportazione dati in CSV/PDF
- App mobile (React Native)
