No description
Refaktorere get_leaderboard til delt fetch_leaderboard() Gjøre own_team_ids null-sikker for anonyme/uinnloggede tilskuere Refaktorere list_matches og get_scorecard til delte funksjoner Legge til offentlige leaderboard/matches/scorecard-endepunkter i registration.py Skrive ADR-026 (tilskuer-rolle) Scratch-verifisere backend Bygge frontend: offentlig live-visning (leaderboard + matcher + scorekort) på /t/[id]/live Ekte typesjekket frontend-build Deploy etter bekreftelse + oppdatere .md-filer Tilskuer-rollen er live. Kjernen: ingen ny rolle trengtes — «tilskuer» er ganske enkelt enhver som allerede kan se turneringen (per synlighetsnivå), nå utvidet til å dekke leaderboard, matchliste og fullt hull-for-hull-scorekort, ikke bare info-siden og programtider som før. Ny /t/[id]/live-side, lenket fra hovedsiden. Fant og lukket to sikkerhetshull under design (før noe ble bygget): en manglende sjekk på at økt/match i URL-en faktisk hører til turneringen i samme URL (ellers kunne noen lest en hvilken som helst økt i samme organisasjon ved å gjette id-er), og en manglende reveal-sjekk på scorekortet. Begge verifisert eksplisitt med egne tester — 16 automatiserte sjekker totalt, inkludert en presis test med to ekte turneringer i samme organisasjon. .md-filene er oppdatert. Gjenværende åpne punkter: PWA, kode-regenerering, korrigering-godkjenning, sanntid for leaderboard-siden (WebSocket-mekanismen finnes allerede, bare ikke koblet til der ennå), og de nye turneringsformatene som ble notert tidligere. |
||
|---|---|---|
| .claude | ||
| __pycache__ | ||
| app | ||
| frontend | ||
| .dockerignore | ||
| .gitignore | ||
| 001_initial_schema.sql | ||
| 002_roles_and_grants.sql | ||
| 003_scoring_and_blinddraw.sql | ||
| 004_auth.sql | ||
| 005_rls_null_guard.sql | ||
| 006_scheduling_and_locale.sql | ||
| 007_registration_and_player_fields.sql | ||
| 008_link_player_by_email.sql | ||
| 009_landing_pages_and_visibility.sql | ||
| 010_official_course_unique_ref.sql | ||
| 011_join_code_and_leading_side.sql | ||
| 012_password_2fa_and_org_invitations.sql | ||
| 013_messaging.sql | ||
| ARCHITECTURE_DECISIONS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| FEATURE_BACKLOG.md | ||
| handicap_engine.py | ||
| TeeOff-logo-Retina-1.avif | ||
| test_handicap_engine.py | ||
| test_isolation.sql | ||