Phase 11: Girls Tryout — March 24
Goal: Girls tryout operations for March 24, 2026 (Tuesday, 4-5:30 PM, Kongo gym). Registration working without bugs, auto Keycloak account creation, ops guide for day 2.
Owner: Dev agent + Lucas (ops) + Marcus (logistics)
Repo:
forgejo_admin/basketball-api, forgejo_admin/westside-playgroundDepends on: phase-wkq-10-playground, phase-wkq-4-tryout-day-1 (reuse infra)
Forgejo Issue: basketball-api #93 — auto Keycloak account creation + email-mismatch fix + account script names
Scope
- Fix registration email-mismatch bug — match by token, not email (
register.py:796) - Fix account creation script — add firstName/lastName to Keycloak payload
- Auto Keycloak account creation on registration — no manual batch scripts on game day
- Extract shared Keycloak service module (
services/keycloak.py) - Fix playground tryouts page: date → March 24, location → Kongo gym, Register Now → real URL
- Ops guide for tryout day 2 (update
phase-4-tryout-day-opsor create new) - Girls division: 15U, 16U, 17U
Decisions Made
- Build it right, not patch it. Auto-create Keycloak accounts in the registration flow (Option B). No manual scripts on game day. The backend integration survives the SSR → SPA migration (Phase 15).
- Keycloak service as shared module. Extract Keycloak Admin API operations into
services/keycloak.py— reusable by both the registration route and the batch script.
BLOCKERS (RESOLVED — PR #94 merged)
- Registration email-mismatch bug — FIXED. Token-based parent lookup when registration token is present. PR #94.
- Account creation script bug — FIXED. firstName/lastName now included in Keycloak payload via shared
services/keycloak.pymodule. PR #94. - No auto account creation — FIXED. Registration POST handler now auto-creates Keycloak account after paid registration. Credentials shown on confirmation page. Fail-safe: Keycloak errors logged but don't block registration. PR #94.
Decision Needed (from Marcus)
- Gym location — Confirmed: Kongo gym, Tuesday March 24, 4-5:30 PM
- Pricing — $30 tryout fee same as boys? Confirm with Marcus.
Deliverables
- Registration works end-to-end: form → pay → Keycloak account → can log in immediately
- Tryouts page with correct date/location/registration link — shareable on Instagram
- Girls tryout runs smoothly. No duplicate bugs, no manual scripts.
- Ops guide updated for day 2
- ✅ Photo upload wired on player profile edit page (PR #43 — merged 2026-03-18)
- ✅ Admin email endpoints: incomplete profile query, profile reminder emails, roster export (PR #102 — merged 2026-03-18)
- ✅ Jersey selection page with Stripe checkout — 3 routes, token-based auth (PR #45 — merged 2026-03-18)
- ✅ Jersey Stripe checkout + Keycloak password reset + second tryout announcement email (PR #104 — merged 2026-03-18)
- ✅ JSON registration endpoint with promo code support (PR #107 — merged 2026-03-18)
- ✅ Public photo upload for registration (PR #109 — merged 2026-03-18)
- ✅ SPA registration fix: real API submission, promo code field, error handling (PR #48 — merged 2026-03-18)
- ✅ Queens logo on girls tryout hero section (PR #50 — merged 2026-03-18)
Related
- Plan: Westside Kings & Queens
- Phase 4: Tryout Day 1 — lessons learned
- Tryout Day Ops Guide
- Phase 12: Unified Registration — the full registration redesign
- Phase 15: Production Port — SPA rebuild (inherits the Keycloak integration built here)