How neruaka/passion-project works
PASSION-FR is a self-hosted personal AI system; the current implemented focus is fitness. A user accesses the dashboard and API, fitness data can sync from Hevy, and analysis produces records, findings, recovery information, and period statistics. The README also describes brain/chat, memory, nutrition, health ingestion, and notifications, though several are planned or unsampled; those are shown conservatively. The sampled source confirms the Hevy sync and nightly analysis ownership, but not all API-to-service wiring.
Main entry points: analysis_runner.py Analysis runner · session.py PostgreSQL · tasks.py Scheduled tasks · router.py API router
Components 34
User experience
- Dashboard
frontend/src/app/page.tsx - API client
frontend/src/lib/api/client.ts - Chat interface
frontend/src/lib/ws/chat-socket.ts
Backend API
- FastAPI app
backend/src/main.py - API router
backend/src/api/router.py - Authentication
backend/src/api/v1/auth.py - Workout API
backend/src/api/v1/workouts.py - Analysis API
backend/src/api/v1/analysis.py
Fitness domain
- Fitness services
backend/src/services/fitness - Analysis runner
backend/src/services/fitness/analysis_runner.py - PR detection
backend/src/services/fitness/pr_detection.py - Plateau detection
backend/src/services/fitness/plateau.py - Recovery status
backend/src/services/fitness/recovery.py - Period statistics
backend/src/services/fitness/stats.py - Training targets
backend/src/services/fitness/targets.py - Workout repository
backend/src/repositories/workouts.py - Analysis repository
backend/src/repositories/analysis.py - Workout records
backend/src/models/workouts.py - Analysis records
backend/src/models/analysis.py - Target records
backend/src/models/targets.py - Health records
backend/src/models/health.py
Runtime platform
- Scheduled tasks
backend/src/jobs/tasks.py - PostgreSQL
backend/src/db/session.py
AI and integrations
- Agent orchestration
backend/src/brain/graph.py - Long-term memory
backend/src/memory - LLM routing
backend/src/llm/router.py - Hevy MCP client
backend/src/integrations/mcp/hevy.py - Cronometer integration
backend/src/integrations/mcp - Push notifications
backend/src/integrations/external/ntfy.py
Other components
- User
- Hevy
- Cronometer
- LLM providers
- ntfy.sh
Connections 33
- User → Dashboard: uses
- Dashboard → API client: requests
- API client → FastAPI app: calls API
- Dashboard → Chat interface: opens chat
- FastAPI app → API router: mounts
- API router → Authentication: dispatches
- API router → Workout API: dispatches
- API router → Analysis API: dispatches
- Scheduled tasks → Hevy MCP client: builds client
- Scheduled tasks → Fitness services: runs sync
- Fitness services → Hevy MCP client: fetches workouts
- Hevy MCP client → Hevy: calls MCP
- Scheduled tasks → Analysis runner: runs nightly
- Analysis runner → Analysis repository: loads and saves
- Analysis runner → Workout repository: loads sets
- Analysis runner → PR detection: detects records
- Analysis runner → Plateau detection: detects stalls
- Analysis runner → Recovery status: computes status
- Analysis runner → Period statistics: aggregates periods
- Analysis runner → Training targets: checks progress
- Workout repository → PostgreSQL: reads workouts
- Analysis repository → PostgreSQL: reads and writes
- PostgreSQL → Workout records: stores
- PostgreSQL → Analysis records: stores
- PostgreSQL → Target records: stores
- PostgreSQL → Health records: stores
- Chat interface → FastAPI app: chat transport
- Agent orchestration → LLM routing: routes reasoning
- Agent orchestration → Long-term memory: retrieves context
- LLM routing → LLM providers: calls models
- Cronometer integration → Cronometer: syncs nutrition
- Scheduled tasks → Push notifications: alerts on failure
- Push notifications → ntfy.sh: sends notification