clawd d81e403f01 Phase 06 Tier 1: Complete Backend Implementation - Recovery Tracking & Swap System
COMPLETED TASKS:
 06-01: Workout Swap System
   - Added swapped_from_id to workout_logs
   - Created workout_swaps table for history
   - POST /api/workouts/:id/swap endpoint
   - GET /api/workouts/available endpoint
   - Reversible swaps with audit trail

 06-02: Muscle Group Recovery Tracking
   - Created muscle_group_recovery table
   - Implemented calculateRecoveryScore() function
   - GET /api/recovery/muscle-groups endpoint
   - GET /api/recovery/most-recovered endpoint
   - Auto-tracking on workout log completion

 06-03: Smart Workout Recommendations
   - GET /api/recommendations/smart-workout endpoint
   - 7-day workout analysis algorithm
   - Recovery-based filtering (>30% threshold)
   - Top 3 recommendations with context
   - Context-aware reasoning messages

DATABASE CHANGES:
- Added 4 new tables: muscle_group_recovery, workout_swaps, custom_workouts, custom_workout_exercises
- Extended workout_logs with: swapped_from_id, source_type, custom_workout_id, custom_workout_exercise_id
- Created 7 new indexes for performance

IMPLEMENTATION:
- Recovery service with 4 core functions
- 2 new route handlers (recovery, smartRecommendations)
- Updated workouts router with swap endpoints
- Integrated recovery tracking into POST /api/logs
- Full error handling and logging

TESTING:
- Test file created: /backend/test/phase-06-tests.js
- Ready for E2E and staging validation

STATUS: Ready for frontend integration and production review
Branch: feature/06-phase-06
2026-03-06 20:54:03 +01:00
2026-02-01 00:23:49 +01:00

Gravl - Träningsapp

En enkel träningsapp för att följa PPL-program (Push/Pull/Legs) med progressionsspårning.

Features

  • 📋 PPL Program - 6-dagars Push/Pull/Legs split
  • 📊 Träningslogg - Logga vikt/reps för varje set
  • 📈 Progression - Automatiska viktrekommendationer
  • 📱 Mobilanpassad - Fungerar perfekt på telefon
  • 🌙 Mörkt tema - Bekvämt för gymmet

Tech Stack

  • Frontend: React (Vite) + CSS
  • Backend: Node.js/Express
  • Database: PostgreSQL
  • Container: Docker med nginx

Quick Start

# Initiera databasen
psql -h localhost -U postgres -d gravl -f db/init.sql

# Starta med Docker Compose
cd /workspace/gravl
docker compose up -d --build

Åtkomst

API Endpoints

Endpoint Method Beskrivning
/api/health GET Hälsokontroll
/api/programs GET Lista alla program
/api/programs/:id GET Hämta program med dagar
/api/days/:id/exercises GET Hämta övningar för en dag
/api/logs GET Hämta träningsloggar
/api/logs POST Logga ett set
/api/progression/:id GET Få viktrekommendation

Databasschema

  • programs - Träningsprogram
  • program_days - Dagar i programmet (Push A, Pull A, etc.)
  • exercises - Övningar (Bench Press, Squat, etc.)
  • program_exercises - Kopplar övningar till dagar med sets/reps
  • workout_logs - Loggade träningsset

Progression

Appen rekommenderar att öka vikten med 2.5kg när du når max reps på alla sets.

S
Description
Träningsapp - Gravl klon
Readme 19 MiB
Languages
JavaScript 62%
CSS 28.7%
Shell 8.8%
TypeScript 0.2%
HTML 0.2%
Other 0.1%