2.9 KiB
2.9 KiB
Gravl — Workout UX Improvements
What This Is
En träningsapp (PPL-baserad) som behöver förbättrat workout-flöde. Appen finns redan med grundläggande funktionalitet — inloggning, onboarding, passloggning och progressionsförslag. Fokus nu är att göra workout-upplevelsen smidigare och mer flexibel.
Core Value
Att logga ett träningspass ska vara snabbt, tydligt och flexibelt — användaren ska aldrig behöva kämpa mot appen under ett pass.
Requirements
Validated
- ✓ Användare kan registrera konto och logga in — existing
- ✓ Onboarding-wizard samlar in grunddata — existing
- ✓ Dashboard visar veckokalender och dagens pass — existing
- ✓ Användare kan välja programpass och logga set — existing
- ✓ Progressionsförslag baserat på tidigare pass — existing
- ✓ Profilsida med mått och styrka — existing
- ✓ Framstegssida med grafer — existing
- ✓ Uppvärmningssektion i workout — existing
Active
- Viktfält visar enhet (kg) tydligt
- Reps-input förhindrar negativa värden
- Inputfält för vikt/reps får mer utrymme och bättre layout
- Användare kan lägga till extra set på alla övningar
- Användare kan ta bort set på alla övningar
- Användare kan bygga ett eget pass genom att välja övningar fritt
- Användare kan modifiera ett programpass (byta ut/lägga till övningar)
Out of Scope
- Byta ut hela programstrukturen (PPL) — behåller befintlig programmodell
- Backend-refaktorering (enfilsarkitekturen) — fokus är frontend-UX
- Nya övningsbibliotek eller träningsprogram — använder befintliga övningar i databasen
- Sociala funktioner eller delning — inte relevant för detta milestone
Context
- Brownfield: Appen är redan byggd med React 18 + Vite (frontend) och Express + PostgreSQL (backend)
- All frontend-kod är JSX utan TypeScript, ren CSS med custom properties
- Backend är en enda fil (
backend/src/index.js) — alla routes inline - Navigation i appen sker via
useStatei App.jsx, inte URL-routes - Workout-loggning gör upsert (update if exists, insert if new) per set
- Nuvarande set-antal är hårdkodat per övning i databasen (
program_exercises.sets) - Det finns 18 övningar i databasen fördelade på 6 passdagar
Constraints
- Tech stack: React + Vite frontend, Express + PostgreSQL backend — behåll befintlig stack
- Språk: Svenskt UI genomgående
- Styling: Ren CSS med CSS custom properties, mörkt tema med orange accent (#ff6b35)
- Mobil-först: Max-width 600px, designat för telefonanvändning under pass
Key Decisions
| Decision | Rationale | Outcome |
|---|---|---|
| Behåll befintlig programmodell | Egna pass byggs ovanpå, inte som ersättning | — Pending |
| Frontend-fokus detta milestone | Backend-ändringar minimeras till vad som krävs för nya features | — Pending |
Last updated: 2026-02-15 after initialization