No description
Beim Test aufgefallen: Wer im Funkloch stoppte, sah die Zeit weiter als laufend — der Ausgang hatte den Stopp, der Datensatz nicht. Ein zweiter Druck legte einen zweiten Stopp daneben, und beim Uebertragen gewann der letzte. Welche Zeit am Ende zaehlte, war nicht mehr zu sagen. Drei Dinge dagegen. Ein Stopp im Ausgang traegt sich sofort auch am Datensatz ein, die Zeit ist damit sichtbar beendet. Ein zweiter Stopp fuer dieselbe Zeit wird abgewiesen, mit Ansage statt still. Und ist der Ausgang leer, laedt der Store einmal neu und tauscht die vorlaeufigen Zeiten gegen die echten samt ihren IDs. Dabei fiel die groessere Luecke auf: Ein offline gestarteter Lauf stand nirgends und liess sich deshalb gar nicht stoppen — die Oberflaeche kennt nur, was im Store steht. Er bekommt jetzt einen vorlaeufigen Datensatz mit einer local:-ID, laeuft sichtbar mit und laesst sich stoppen, bevor der Server ueberhaupt von ihm weiss. Dazu der Verbindungswaechter: /api/health im Takt, Symbol in der Kopfleiste und eine Meldung, die stehen bleibt, bis der Server wieder antwortet. navigator.onLine allein taugt dafuer nicht — im WLAN ohne Uplink und hinter einem Portal steht es unbeirrt auf true. Kehrt die Verbindung zurueck, geht der Ausgang von selbst raus. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P32KoesVtABd6xWsqMKzhr |
||
|---|---|---|
| backend | ||
| docs/superpowers | ||
| frontend | ||
| .gitignore | ||
| CLAUDE.md | ||
| NAMING.md | ||
| README.md | ||
| TODO.md | ||
| UML_basic.png | ||
stammtisch-hersbruck.de
Zeitmessung und Verwaltung für Läufe des Stammtisch Hersbruck.
Das Repository enthält beide Teile der Anwendung:
| Verzeichnis | Inhalt |
|---|---|
frontend/ |
SvelteKit-5-Anwendung (Svelte 5 Runes, Tailwind 4) |
backend/ |
PocketBase-Instanz — Dockerfile, Schema-Migrationen |
Schnellstart
Frontend gegen die produktive Instanz:
cd frontend
cp .env.example .env # Werte eintragen
npm ci
npm run dev
Die App läuft dann auf http://stammtisch-hersbruck.de.localhost:31337
Backend lokal (optional — der Default zeigt auf die produktive Instanz):
cd backend
cp .env.example .env # Werte eintragen
docker compose up -d --build
Danach in frontend/.env PUBLIC_PB_URL=http://127.0.0.1:8090 setzen.
Details stehen in backend/README.md.
PocketBase
Produktiv: https://api.stammtisch-hersbruck.de
Welche Instanz das Frontend anspricht, entscheidet PUBLIC_PB_URL in
frontend/.env. Das Schema ist als Migration in backend/pb_migrations/
versioniert.