How alsrepo/web_fit works
FitNotes Analytics Dashboard imports FitNotes CSV workout logs into DuckDB, then serves mobile-first views for workout summaries, calendar days, detailed sessions and exercise history. The documented analysis includes strength progression and estimated 1RM, cardio projections, training volume and muscle activation maps. The sampled code confirms database-backed services and the API entry point; router and frontend-page wiring is represented at subsystem level where their source was not sampled.
Main entry points: dashboard.py Dashboard endpoints · database.py DuckDB access and views · routes Dashboard views · client.js API client
Components 18
Web interface
- Dashboard views
frontend/src/routes - Dashboard cards
frontend/src/lib/components/dashboard - Session and muscle views
frontend/src/lib/components/detalle - Exercise charts
frontend/src/lib/components/historico - API client
frontend/src/lib/services/client.js
API layer
- FastAPI application
backend/app/main.py - FitNotes endpoints
backend/app/api/routers/fitnotes.py - Dashboard endpoints
backend/app/api/routers/dashboard.py - Analytics response models
backend/app/models/dashboard.py
Workout analytics
- Dashboard summaries
backend/app/services/dashboard_service.py - Calendar queries
backend/app/services/calendar_service.py - Day detail and muscles
backend/app/services/day_detail_service.py - Exercise history and projections
backend/app/services/exercise_service.py
Import and storage
- CSV ingestion
backend/app/services/csv_service.py - DuckDB access and views
backend/app/database.py - Workout analytics store
backend/app/database.py
Other components
- Athlete
- FitNotes CSV
Connections 23
- Athlete → Dashboard views: uses
- FitNotes CSV → FitNotes endpoints: uploads
- Dashboard views → Dashboard cards: renders
- Dashboard views → Session and muscle views: renders
- Dashboard views → Exercise charts: renders
- Dashboard cards → API client: requests data
- Session and muscle views → API client: requests data
- Exercise charts → API client: requests data
- API client → FastAPI application: HTTP requests
- FastAPI application → FitNotes endpoints: dispatches
- FastAPI application → Dashboard endpoints: dispatches
- FitNotes endpoints → CSV ingestion: ingests CSV
- CSV ingestion → DuckDB access and views: writes logs
- Dashboard endpoints → Dashboard summaries: queries summaries
- Dashboard endpoints → Calendar queries: queries calendar
- Dashboard endpoints → Day detail and muscles: queries day detail
- Dashboard endpoints → Exercise history and projections: queries history
- Dashboard summaries → DuckDB access and views: queries
- Calendar queries → DuckDB access and views: queries
- Day detail and muscles → DuckDB access and views: queries
- Exercise history and projections → DuckDB access and views: queries
- DuckDB access and views → Workout analytics store: opens and initializes
- Dashboard endpoints → Analytics response models: validates responses