# REKORD Selbstgehosteter Trainings-Tracker für Gym, Laufen und Radfahren. Läuft im Browser, speichert auf deinem Server, gehört dir. Eine SQLite-Datei als Zustand, ein Python-Backend aus der Standardbibliothek, ein HTML/CSS/JS-Frontend ohne Framework. Kein Cloud-Konto, keine Telemetrie. ## Was es kann **Training erfassen** - Gym mit Push/Pull/Legs (frei konfigurierbar), dazu Laufen und Radfahren - Eingabe als eine Box: Zahl links, Einheit fest rechts (kg, reps, km, min, min/km, bpm, m) - Sätze abhaken als "Set n [ ]"; der ganze Button ist klickbar, die Kette hakt ohne Lücken ab - "Reset-Satz" und "Alles zurücksetzen" holen das letzte abgeschlossene Training; optional startet eine Session direkt mit dem letzten Workout oder mit den Plan-Gewichten - Übungen per Drag & Drop sortieren, Übungen aus anderen Tagen spontan hinzufügen - Fragezeichen pro Übung: kurze Erklärung (herstellerunabhängig) **Verlauf & Statistik** - "Session starten" / "Session abschließen", mehrere Sessions am Tag - Verlauf als Liste oder Wochenübersicht; inline bearbeitbar und löschbar - Statistik: bestes Gewicht je Trainingstag, Differenz zur ersten Messung **Ansicht & Einstellungen** - Deutsch und Englisch - Themes: Dunkel, System, Hell - plus OLED-Dark-Schalter - Akzentfarbe aus zehn Farben, Gewichtseinheit kg/lb, Start-Ansicht wählbar - Einstellungen liegen serverseitig, gelten auf allen Geräten **Mehrbenutzer** - Konten mit Kennwort (gehasht), Daten getrennt pro Benutzer - Der erste Benutzer ist Administrator und verwaltet Konten und Kennwörter **Daten** - Export/Import als JSON und CSV (Backup, Umzug, Tabellen-Auswertung) - Workouts über eine kleine API (`/api/workouts`) - Demo-Verlauf (`demo-data.json`) zum Ausprobieren ## Starten Python (nur Standardbibliothek): ```bash python3 server.py 8080 ``` Oder Docker: ```bash docker compose up -d ``` Danach im Browser: `http://:8080/`. Beim ersten Start führt ein kurzer Wizard durch Sprache, Einzel- oder Mehrbenutzermodus und Darstellung. ## Plan anpassen Übungen, Sätze, Gewichte und Erklärungen stehen in `config.json` - ohne Code-Eingriff. Schema: [TECH.md](TECH.md). ## Daten - Alles liegt in `data/state.db` (SQLite) - backupbar, überlebt Neustart und Container-Rebuild - Datenverzeichnis per `TRAINING_STATE_DIR` frei wählbar - Keine externen Dienste, keine Telemetrie ## Mehr - [TECH.md](TECH.md) - Architektur, API, Datenmodell - [DESIGN.md](DESIGN.md) - Design-Sprache (Tokens, Komponenten, Anti-Patterns) - [ROADMAP.md](ROADMAP.md) - geplante Erweiterungen ## Lizenz AGPL-3.0. Siehe `LICENSE`.