f012392de94a798cd43a0428ed01ba43ef7a4210
- Added specific error type differentiation: * Network errors → 'Anslutning misslyckades' * Validation (400) → 'Ogiltiga ändringar' * Auth (401/403) → 'Saknar behörighet' * Server (500+) → 'Serverfel' * Generic fallback messages - Implemented retry tracking: * retryCount state for monitoring attempts * lastSavePayload storage for potential retry (future feature) * Console logging with context for debugging - Enhanced error handling: * getErrorMessage() function for error classification * Comprehensive error logging with workout/exercise context * Draft preserved on all error types (no data loss) - Improved UI/UX: * Error banner with specific, actionable messages * 'Försök igen' button with retry tracking * Sync status feedback (idle/saving/saved/error) * Success checkmark animation (2s duration) * Spinner animation during save - CSS Enhancements: * @keyframes spin for loading spinner * @keyframes slideInCheckmark for success feedback * Mobile-responsive error banner (flex column on <480px) * Smooth animations for state transitions Tests: npm run build ✓ (no syntax errors) Files modified: - frontend/src/pages/WorkoutEditPage.jsx - frontend/src/pages/WorkoutEditPage.css
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äningsprogramprogram_days- Dagar i programmet (Push A, Pull A, etc.)exercises- Övningar (Bench Press, Squat, etc.)program_exercises- Kopplar övningar till dagar med sets/repsworkout_logs- Loggade träningsset
Progression
Appen rekommenderar att öka vikten med 2.5kg när du når max reps på alla sets.
Description
Languages
JavaScript
62%
CSS
28.7%
Shell
8.8%
TypeScript
0.2%
HTML
0.2%
Other
0.1%