3.2 KiB
3.2 KiB
Phase 06 — Intelligent Workout Adaptation & Recovery Tracking
🎯 Goals
Skapa intelligenta träningsprogram som anpassas baserat på muskelgruppernas återhämtning, inte bara vilket pass som kördes senast.
📋 Features
06-01: Workout Swap/Rotation System
- Add "Swap Workout" button to WorkoutPage
- Show available workouts for current week
- Replace current workout while keeping tracking
- Update UI to show swap history
- Database: Update workout_logs to track swaps
06-02: Muscle Group Recovery Tracking
- Model: Define muscle groups per exercise
- Calculate recovery time from last workout targeting each group
- Store: muscle_group_recovery table (timestamp, intensity)
- Display: Recovery status in ExerciseCard (red/yellow/green)
- Algorithm: Track last 7-14 days of activity per muscle group
06-03: Smart Workout Recommendation Engine
- Analyze: Which muscle groups were trained this week
- Identify: Most-recovered groups available to train today
- Suggest: 2-3 workouts that target recovered muscle groups
- Avoid: Overtraining same groups (48-72h rest recommendation)
- Backend: POST /api/recommendations/smart-workout
06-04: Recovery Metrics & Analytics
- Dashboard card: Recovery status per muscle group
- Chart: 7-day muscle group activity heatmap
- Insight: "Chest needs work", "Legs well-recovered"
- Prediction: Next recommended workout based on recovery
06-05: UI/UX Polish
- Integrate swap system with recommendation engine
- Show recovery timeline for each group
- Mobile-friendly recovery badges
- One-tap "Use Recommendation" button
- Visual feedback for muscle group selection
06-06: Testing & Validation
- E2E tests: Swap workflow
- E2E tests: Recovery calculation accuracy
- Performance: Recovery algorithm benchmarks
- User feedback: Recommendation quality validation
🏗️ Database Changes
-- Muscle Group Recovery Tracking
CREATE TABLE muscle_group_recovery (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
muscle_group VARCHAR(50),
last_workout_date TIMESTAMP,
intensity FLOAT, -- 0-1
exercises_count INT,
created_at TIMESTAMP DEFAULT NOW()
);
-- Workout Swaps
ALTER TABLE workout_logs ADD COLUMN swapped_from_id INT REFERENCES workout_logs(id);
🔑 Key Algorithms
Recovery Calculation
recovery_score = 1.0 if last_workout > 72h ago
recovery_score = 0.5 if 48h < last_workout < 72h
recovery_score = 0.2 if 24h < last_workout < 48h
recovery_score = 0.0 if last_workout < 24h
Smart Recommendation
- Get all exercises available
- Group by muscle group
- Calculate recovery for each group
- Sort by recovery score (highest = best to train)
- Filter: exclude groups with score < 0.3
- Return: Top 3 workouts with best muscle group coverage
📦 Implementation Order
- 06-01 — Basic swap functionality (UI + backend)
- 06-02 — Recovery tracking (database + calculations)
- 06-03 — Recommendation engine (backend algorithm)
- 06-04 — Analytics & visualization (frontend)
- 06-05 — Polish & integration
- 06-06 — Testing