Dedicated 9-hole courses have 9-hole ratings and pars, so the WHS
formula is: round((HI÷2) × (slope/113) + (rating − par)).
The previous code used the full HI, giving roughly double the correct
result (e.g. 22 instead of 11 on Augwil White Male for HI 18).
The three cases are now handled correctly:
- Dedicated 9-hole course: HI÷2 with 9-hole ratings
- 9 holes on 18-hole course: full HI with 18-hole ratings, result halved
- Full 18 holes: full HI with 18-hole ratings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When only front-nine holes are entered in course_holes (common setup),
course_par_full summed to ~36 instead of ~72, inflating the 9-hole
playing handicap by roughly 2x before halving. Fix by using
course_par_played×2 as the 18-hole par estimate in both the backend
create_game and the new_game confirmation preview.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When creating a skins game, players can now choose between straight up
(gross scores) or net scoring (strokes subtracted per hole based on
playing handicap and stroke index). Net mode is stored on the game and
applied in both the live scorecard and the summary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Players can now set a monetary value per skin when starting a skins game.
For 18-hole games, an option to double the value on holes 10–18 is available.
The value is stored at game creation and displayed throughout the live game
and summary (leaderboard, scorecard, and totals).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Playing handicap: computed at game creation (WHS formula), stored on
game_players alongside per-hole strokes allocation; displayed on game
summary with HC card and / markers on scorecard (only when SI defined);
live game shows +N per player card when SI exists, HC total otherwise;
new game confirmation previews computed HC per player
- Login: 6-digit code sent alongside magic link in every auth email;
check_email page has auto-advancing digit inputs with paste support;
new POST /auth/verify-code route handles code verification
- Game view: Score/Card toggle fixed with position:fixed to always show
above nav bar on mobile; swipe on score view changes holes, swipe on
scorecard switches tabs; dirty tracking prevents saving unmodified holes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Calculate course handicap per player (WHS formula) in game_summary
- Show Playing Handicaps card with HI, HC, and tee per player
- Mark stroke-receiving holes with accent dots in strokes and skins scorecards
- Add HC footer row to strokes scorecard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removed name="players" from checkboxes and replaced with a single
x-for block generating hidden inputs from selectedPlayers state,
ensuring correct submission regardless of active step.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New step 3 shows a summary of all selections (format, carryover,
course, holes, players with HCP and tee) before submitting.
Also includes handicap in player query and tee tracking in Alpine state.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Skins game format with optional carryover, mirroring BBB scoring pattern
- Add GolfCourseAPI integration for course search and import (httpx)
- Unwrap {"course": {}} API response envelope on import
- Add searchable course combobox and player filter to new game form
- Redirect to summary page after finishing a game
- Fix auth to allow registered users without a pending invitation
- Fix hardcoded BBB format in create_game; store carryover flag in DB
- Add game summary/scorecard view for completed games
- Add live games social stream to dashboard
- Add course name + subtitle to recent game cards
- Reorder nav: Home → Games → Admin → Profile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- FastAPI + SQLite + Alpine.js + HTMX PWA for Bingo Bango Bongo golf scoring
- Passwordless magic link auth with email (aiosmtplib) and admin invite system
- Real-time score entry via WebSocket with drag-and-drop player ordering
- Course management with per-hole par and stroke index
- Scorecard with golf score markers (birdie, eagle, bogey, etc.)
- Two-step new game form with tee selection per player
- Dashboard with stats, live games social stream, and recent game history
- Game summary view (read-only scorecard with leaderboard)
- User profile pages with win stats
- PWA install support with generated PNG icons
- Admin panel for users, courses, games, and invitations
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>