Matchmaking-, Liga- und Turnier-App für Büro-Tischtennis.
Go + templ + HTMX, Postgres, ein Container. Läuft in Docker Compose, Kubernetes und Azure Container Apps aus demselben Image.
Im Aufbau. Aktueller Meilenstein ist der MVP nach docs/mvp-plan.md: Ergebnisse
erfassen, vom Gegner bestätigen lassen, TTR berechnen, Rangliste anzeigen.
Liga-, Turnier- und Buchungsmodus kommen später.
Voraussetzungen: Task, Docker und die
Dagger-CLI. Beim ersten Aufruf einer
Dagger-Task einmalig task dagger:develop ausführen — das erzeugt die
generierten Teile des Pipeline-Moduls.
task up # Compose-Umgebung starten (App + Postgres)
task ci # lint, test, build, verify — identisch zur Pipeline
task office:setup # .env für einen Abend an der Platte
task office:up # starten, im Netz erreichbarAlle Befehle laufen über Task. Die eigentliche
Pipeline-Logik steckt in Dagger und läuft lokal wie in der
CI gleich — task ci ist kein Näherungswert, sondern derselbe Code.
task --list zeigt alle verfügbaren Tasks.
CLAUDE.md— Invarianten, fachliche Begriffe, Konventionen. Vor Änderungen lesen.docs/mvp-plan.md— Scope, Datenmodell, Arbeitspakete, Definition of Done.docs/adr/— Architekturentscheidungen samt verworfener Alternativen.docs/turnier-vor-ort.md— ein Abend an der Platte mit einem Laptop für alle.
Eine Änderung, die einem ADR widerspricht, braucht ein neues ADR mit
supersedes-Verweis.
Schmetterball plus Pause. Der Name entstand aus einer Abstimmung im Büro und gilt als gesetzt — er steckt im Modulpfad, im Image-Namen und im Browser-Titel.