docs: initialize project
This commit is contained in:
@@ -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*
|
||||
Reference in New Issue
Block a user