Add full SkinsPins application

- 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>
This commit is contained in:
Rolf
2026-03-20 10:16:46 +01:00
parent 4b31b98f89
commit 3a1da1482c
51 changed files with 4964 additions and 1 deletions
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#2d6a4f">
<link rel="manifest" href="/static/manifest.json">
<link rel="stylesheet" href="/static/style.css">
<title>Check your email Skins &amp; Pins</title>
</head>
<body>
<div class="login-container">
<div class="login-logo">📬</div>
<h1 class="login-title">Check your email</h1>
<p class="login-subtitle">We sent a login link to <strong>{{ email }}</strong></p>
<div class="login-card card">
<p style="color: var(--text-muted); font-size: 0.9rem; text-align: center;">
The link expires in 15 minutes.<br>You can close this tab.
</p>
</div>
<a href="/login" style="color: var(--text-muted); font-size: 0.85rem; margin-top: 1.5rem;">
← Use a different email
</a>
</div>
</body>
</html>