A modern web application for analyzing Strava running data with interactive visualizations.
stravalytics/
├── frontend/ # React + TypeScript + Vite
├── backend/ # FastAPI REST API
├── old/ # Original Flask/Jinja2 app (reference)
└── venv/ # Python virtual environment
- React 19 - UI library
- TypeScript - Type safety
- Vite - Build tool & dev server
- Plotly.js - Interactive visualizations
- FastAPI 0.128 - REST API
- Pandas 2.3 - Data processing
- Plotly 6.5 - Chart generation
- Uvicorn 0.40 - ASGI server
- Node.js 22+ and npm 10+
- Python 3.x
cd frontend
npm install
npm run devThe frontend will run on http://localhost:5173
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python src/main.pyThe backend API will run on http://localhost:8000
- Start backend server (FastAPI on port 8000)
- Start frontend dev server (Vite on port 5173)
- Frontend makes API calls to backend for data processing
- Backend returns JSON data
- Frontend renders visualizations with Plotly
The original Flask/Jinja2 implementation is preserved in the old/ directory for reference.