From 84d7f41c4e6228f5ea1942d457a22531820f86b1 Mon Sep 17 00:00:00 2001 From: Clawd Date: Sun, 15 Feb 2026 22:25:04 +0100 Subject: [PATCH] docs: initialize project --- .planning/PROJECT.md | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .planning/PROJECT.md diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..7ddb845 --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,66 @@ +# 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 `useState` i 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*