Persönlicher Kraft-/Trainings-Tracker + 12-Wochen-Trainingsplan (FastAPI/Nix flake)
  • HTML 53.5%
  • Python 39.6%
  • Nix 3.9%
  • JavaScript 3%
Find a file
Harald Hoyer 3498159a08 PWA: Service-Worker-Cache automatisch pro Shell-Version
CACHE hiess seit jeher 'sport-v1' — der Kommentar verlangte ein Hochzaehlen
bei jedem Deploy, der die Shell aendert, was nie passiert ist. Alte Caches
wurden dadurch nie evicted (activate loescht nur Caches mit anderem Namen).

Statt einer handgepflegten Konstante substituiert der /sw.js-Handler jetzt
__SHELL_VERSION__ durch einen Hash ueber die Shell-Dateien (index.html,
manifest, icon, sw.js). Der Cache-Name aendert sich damit exakt dann, wenn
sich die Shell aendert — und bleibt sonst stabil, bustet also nicht bei
jedem Request. Vendor-Assets bleiben aussen vor: die sind per Nix schon
content-gehasht und werden vom Worker als immutable behandelt.

Verifiziert gegen eine Asset-Sandkopie: Platzhalter wird ersetzt, Version
ist ueber Requests stabil und aendert sich nach einer index.html-Aenderung.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 21:29:24 +02:00
.gitignore Initial commit: 12-Wochen-Trainingsplan + Projekt-Setup 2026-06-14 21:26:29 +02:00
.mcp.json MCP: sport + garmy projektlokal via .mcp.json 2026-06-16 08:50:05 +02:00
AGENTS.md AGENTS.md: Recomp-Gewicht aus body_composition statt activity_sessions 2026-07-27 20:45:33 +02:00
app.py PWA: Service-Worker-Cache automatisch pro Shell-Version 2026-07-27 21:29:24 +02:00
CLAUDE.md CLAUDE.md: dokumentiere die garmy-backed Read-Endpoints + Gewichtsquelle 2026-07-27 21:04:11 +02:00
exercises_guide.json Inverted Row: Anleitung auf zwei Längsholme/neutralen Griff umgestellt 2026-06-15 10:12:32 +02:00
flake.lock v0.1: FastAPI-Tracker mit SQLite, A/B-Seed und Training-UI 2026-06-14 21:44:03 +02:00
flake.nix UI-Overhaul: Hierarchie Woche→Tag→Workout, Cardio aus Garmin, Offline-PWA 2026-06-18 12:33:04 +02:00
icon.svg UI-Overhaul: Hierarchie Woche→Tag→Workout, Cardio aus Garmin, Offline-PWA 2026-06-18 12:33:04 +02:00
index.html Plan: festen Wochentags-Rhythmus durch Coach-Plan ersetzen 2026-06-22 08:46:52 +02:00
manifest.webmanifest UI-Overhaul: Hierarchie Woche→Tag→Workout, Cardio aus Garmin, Offline-PWA 2026-06-18 12:33:04 +02:00
mcp.py Protokoll: gemeinsames Tagebuch (Athlet ↔ Coach-Agent) + schreibbarer MCP 2026-06-18 11:15:38 +02:00
opencode.json opencode: MCP-Server projektlokal via opencode.json 2026-06-18 13:31:05 +02:00
PLAN.md PLAN: Recomp-Ziel statt 'schlanker Anfänger' (1,81 m/85 kg, BMI ~26) 2026-06-15 13:53:22 +02:00
README.md v0.1: FastAPI-Tracker mit SQLite, A/B-Seed und Training-UI 2026-06-14 21:44:03 +02:00
schema.sql UI-Overhaul: Hierarchie Woche→Tag→Workout, Cardio aus Garmin, Offline-PWA 2026-06-18 12:33:04 +02:00
sw.js PWA: Service-Worker-Cache automatisch pro Shell-Version 2026-07-27 21:29:24 +02:00

sport

Persönlicher Kraft-/Trainings-Tracker und 12-Wochen-Trainingsplan.

  • PLAN.md — der komplette Trainingsplan (Oberkörper-Kraft, 12 Wochen) inkl. begleitendem App-Fahrplan.

App (in Arbeit)

Eigenständiger FastAPI-Service als Nix-Flake, der Krafttraining loggt (eigene schreibbare sport.db) und später per MCP gemeinsam mit Garmin-Erholungsdaten ausgewertet werden kann. Nachbar/Vorbild: garmy-dashboard.

Geplant: nix run lokal, Deploy als NixOS-Service (Host sgx, nginx + HTTPS), referenziert aus nixcfg via git+https://git.hoyer.xyz/harald/sport.git.

Schnellstart (lokal)

nix run                 # startet den Server auf http://127.0.0.1:4199
# oder zum Entwickeln mit Auto-Reload:
nix develop -c env SPORT_ASSETS=. uvicorn app:app --reload --port 4199

Daten landen in sport.db (Env SPORT_DB, Default $PWD/sport.db). API-Doku unter /api/docs.

Status

  • Trainingsplan (PLAN.md)
  • flake.nix + FastAPI-Skelett (nix run)
  • sport.db-Schema (exercises / workouts / sets) + A/B-Seed
  • Log-Endpoints + Training-Tab (Frontend) — v0.1
  • Progression-Vorschlag aus letztem Satz + Verlaufsdetails (v0.2)
  • NixOS-Deploy (Host sgx, nginx + HTTPS) (v0.4)
  • MCP-Endpoint für Auswertung (v0.5)