Fitness Hub
One view across training, recovery, sleep and nutrition.
Personal project

Training and recovery data live in different services, making it difficult to examine the same day across workouts, sleep and nutrition.
One view across distinct sources
- Connectors for WHOOP recovery/sleep and Hevy workout records.
- A separate personal-use MyFitnessPal bridge for nutrition imports.
- A server-rendered dashboard backed by normalized data models and database migrations.
A local bridge and hosted scheduler
- FastAPI exposes the application and internal ingestion routes; SQLAlchemy models persist source-specific and derived records.
- Scheduled synchronization pulls source data into a shared database. SQLite supports local development and PostgreSQL supports hosting.
- The MyFitnessPal bridge runs separately from the hosted application.
Keep connectors independent
- Polling-first synchronization reduces dependence on webhook delivery.
- Keep source integrations modular so each service can handle its own authentication and data shape.
- Separate local bridge execution from cloud scheduling instead of requiring every connector to run in the same environment.
Context and limits
The MyFitnessPal bridge is unofficial and intended for personal use. Portfolio media excludes personal health records.