Westside Basketball

westside-basketball github

Notes

User Story

  • AI Business Assistant story-westside-basketball-ai-assistant
  • Westside Operational Hygiene story-westside-basketball-ops-hygiene

Doc

  • Architecture: Contracts — Westside Basketball arch-contracts-westside-basketball
  • Architecture: Email System arch-email
  • Architecture: Jersey Intake Systems (A, B, C) arch-jersey-intake
  • Architecture: Westside Landing Site (Public Routes) arch-landing-site
  • Coach West & Spencer — Product Vision westside-coach-west-spencer
  • Draft Email — Marcus Banking Setup westside-finances-marcus-email-draft
  • LLC Formation — Westside Kings & Queens westside-llc-formation
  • Lesson: Nested anchor tags break flex layout lesson-nested-anchor-tags
  • Milestone: Tryout Day 1 (March 13, 2026) milestone-2026-03-13-tryout-day-1
  • Non-Profit Setup & Stripe Connect: Decision Guide nonprofit-stripe-research
  • PASS: basketball-api#280 — Flatten PlayerProfileResponse validation-280-2026-04-03-v2
  • PASS: basketball-api#281 — Admin CRM parent fields validation-281-2026-04-03-v2
  • PASS: basketball-api#282 — Parent dashboard enrichment validation-282-2026-04-03-v2
  • PASS: basketball-api#283 — Coach dashboard parent contact validation-283-2026-04-03-v2
  • PASS: basketball-api#284 — Team detail page contract validation-284-2026-04-03-v2
  • PASS: basketball-api#286 — Subscription parent_phone validation-286-2026-04-03-v2
  • Product Design: Basketball Program SaaS basketball-product-design
  • Review (pass 3): Create 16U Local Queens team review-927-2026-04-10-pass3
  • Review v2: Coach profile page contract (Mismatch 8) review-745-2026-04-03-v2
  • Review v2: Team detail page contract (Mismatch 9) review-744-2026-04-03-v2
  • Review: Add DM and file attachment tools to GroupMe MCP review-586-2026-03-28
  • Review: Add GET /admin/players/{id} detail endpoint review-676-2026-03-29b
  • Review: Add POST /admin/contract/offer endpoint review-931-2026-04-10
  • Review: Add POST /admin/contract/offer endpoint (v2) review-931-2026-04-10-v2
  • Review: Add age-based team reassignment clause to Queens contracts review-wc29-2026-03-28
  • Review: Add apology opening to first-payment email review-1005-2026-04-13
  • Review: Add dual-auth dependency for jersey and checkout routes review-basketball-api-255-dual-auth
  • Review: Add dual-auth dependency for jersey and checkout routes review-693-dual-auth
  • Review: Add jersey fields to AdminPlayerItem response review-675-2026-03-29
  • Review: Add jersey fields to PlayerProfileResponse (#700) review-700-jersey-profile-fields
  • Review: Add jersey order card to player profile page review-westside-landing-197
  • Review: Add player_id param to jersey and checkout endpoints for multi-player parents review-basketball-api-256
  • Review: Add read-only SQL tool with Postgres access to basketball + contracts DBs review-729-2026-03-30
  • Review: Admin CRM missing parent fields (Mismatches 2,5,7) review-741-2026-04-03
  • Review: Admin blast endpoint /email/blast review-752-2026-04-03
  • Review: Audit and formalize email infrastructure for westside programs review-661-2026-03-29
  • Review: Backfill jersey_option for players who paid via legacy checkout review-867-2026-04-06
  • Review: Bug: CI test failures blocking 6 API contract deployments review-760-2026-04-03
  • Review: Bug: GET /teams/{id} returns 422 -- tenant_id not auto-resolved like admin routes review-877-2026-04-07
  • Review: Bug: Keycloak execute-actions-email returns 500 for new registrations review-878-2026-04-07
  • Review: Bug: Migration 037 fails on fresh deploy -- enum ADD VALUE in same transaction as INSERT review-889-2026-04-07
  • Review: Bug: Missing player photo returns 404 — uploads/photos storage gap review-879-2026-04-07
  • Review: Bug: parent phone missing from /admin/players list endpoint review-736-2026-04-03
  • Review: Bug: player profile page doesn't display parent phone number review-737-2026-04-03
  • Review: Bug: update-kustomize-tag skipped when CI tests fail review-901-2026-04-08
  • Review: CRM: full player detail view on profile click review-668-2026-03-29
  • Review: CRM: show jersey payment status per player review-667-2026-03-29
  • Review: CRM: show jersey payment status per player (re-review) review-667-2026-03-29-v2
  • Review: Checkout endpoint: GET /checkout/first-payment with Stripe redirect review-874-2026-04-06
  • Review: Coach dashboard parent contact (Mismatch 4) review-743-2026-04-03
  • Review: Coach dashboard: team schedule via team_id FK review-808-2026-04-04
  • Review: Coach profile page contract (Mismatch 8) review-745-2026-04-03
  • Review: Commerce admin page — Svelte implementation (promoted from playground) review-863-2026-04-06-v2
  • Review: Commerce admin page — Svelte implementation (promoted from playground) review-863-2026-04-06
  • Review: Commerce page: full @-comment spec + shared CSS/JS + complete DB schema mapping review-865-2026-04-06
  • Review: Commerce page: full @-comment spec + shared CSS/JS + complete DB schema mapping review-865-2026-04-06-v2
  • Review: Email function + blast endpoint: send_first_payment_email + POST /admin/email/first-payment review-875-2026-04-06
  • Review: Email: Local teams — no Monday, first practice Tuesday review-764-2026-04-03
  • Review: Email: Queens practice — Friday → Wednesday Granger review-762-2026-04-03
  • Review: Email: Welcome to first practice — all teams review-763-2026-04-03
  • Review: Email: Welcome to first practice — all teams (re-review) review-763-2026-04-03-v2
  • Review: First monthly payment email + Stripe checkout for signed contracts review-872-2026-04-06
  • Review: Fix Alembic multiple heads — migration branch conflict review-819-2026-04-04
  • Review: Fix Commerce page mobile layout: subtitle wraps awkwardly next to heading review-868-2026-04-06
  • Review: Fix Stripe SDK v15 webhook crash + add webhook Prometheus metrics review-856-2026-04-04
  • Review: Fix Stripe SDK v15 webhook crash + add webhook Prometheus metrics review-856-2026-04-04-r2
  • Review: Fix confirmation email skipped for existing Keycloak accounts + token=None in profile URL review-891-2026-04-08
  • Review: Fix confirmation email skipped for existing Keycloak accounts + token=None in profile URL review-891-2026-04-08-v2
  • Review: Fix local teams schedule — group by team name review-804-2026-04-03
  • Review: Fix public schedule page to use actual API response schema review-757-2026-04-03
  • Review: Fix ruff format on email.py — CI deploy blocker review-791-2026-04-03
  • Review: Fix stale jersey deadline text (March 28 → April 10) review-659-2026-03-29
  • Review: Fix westside-app pod CreateContainerConfigError (missing secrets) review-612-2026-03-28
  • Review: Flatten PlayerProfileResponse (Mismatch 1) review-740-2026-04-03
  • Review: Generic send_templated_email() + EmailType migration review-751-2026-04-03
  • Review: Generic send_templated_email() + EmailType migration (re-review) review-751-2026-04-03-r2
  • Review: Jersey checkout "load failed" error on payment click review-823-2026-04-04
  • Review: Jersey email: add division filter + persist template review-660-2026-03-29
  • Review: Jersey reminder email shows wrong jersey images — needs division-aware templates review-893-2026-04-04
  • Review: Jersey reminder template needs division-aware image placeholders (re-review) review-893-2026-04-04-r2
  • Review: MJML email system — brand base + three layouts + docker build review-750-2026-04-03
  • Review: MJML email system — brand base + three layouts + docker build (R3) review-750-2026-04-03-r3
  • Review: Migration: add monthly ProductCategory, first_payment EmailType, seed prorated product review-873-2026-04-06
  • Review: Parent dashboard enrichment (Mismatch 3) review-742-2026-04-03
  • Review: Payment recovery for abandoned Stripe registrations review-890-2026-04-08-v2
  • Review: Populate team_name in PracticeScheduleResponse from Team join review-827-2026-04-04
  • Review: Promote jersey page design from playground to production review-907-2026-04-08
  • Review: Remove ConfigMap, use baked-in email templates review-753-2026-04-03
  • Review: Remove ConfigMap, use baked-in email templates (re-review) review-753-2026-04-03-b
  • Review: Remove cash from registration payment method validation review-860-2026-04-06
  • Review: Remove cash payment option from registration form review-859-2026-04-06
  • Review: Remove opt-out from jersey ordering options (#263) review-718-remove-opt-out
  • Review: Rename westside-app repo to westside-landing on Forgejo review-587-2026-03-28
  • Review: Replace 7 read tools with generic read-only api_get tool review-721-2026-03-30
  • Review: Schedule API endpoints (CRUD) review-233-2026-03-28
  • Review: Schedule data model + migration + seed review-232-2026-03-28
  • Review: Seed events table with tournament schedule review-790-2026-04-03
  • Review: Seed practice_schedules table with Spring/Summer 2026 schedule review-739-2026-04-03
  • Review: Seed practice_schedules table with Spring/Summer 2026 schedule (re-review) review-739-2026-04-03-r2
  • Review: Spike: Player self-service jersey ordering from profile review-690-2026-03-29
  • Review: Spike: audit API response contract mismatches with westside-landing review-738-2026-04-03
  • Review: Stripe webhook not syncing checkout.session.completed to order status review-719-stripe-webhook-sync
  • Review: Stripe webhooks unreachable — basketball-api Tailscale Funnel not routing public traffic review-836-2026-04-04-r2
  • Review: Stripe webhooks unreachable — basketball-api needs Tailscale Funnel review-836-2026-04-04
  • Review: Subscription list parent_phone (Mismatch 6) review-746-2026-04-03
  • Review: Switch basketball-api to RollingUpdate to prevent webhook delivery failures during deploys review-840-2026-04-04
  • Review: T1 — westside-landing SvelteKit /jersey-public route review-946-2026-04-10
  • Review: T1: contract_config JSONB on teams review-772-2026-04-03
  • Review: T2 basketball-api migration 031 jersey_public_orders review-947-2026-04-10
  • Review: T2: contract_overrides JSONB on players review-773-2026-04-03
  • Review: T3: seed team configs + audit player overrides review-774-2026-04-03
  • Review: T4: extract Svelte components from monolith review-775-2026-04-03
  • Review: T5 basketball-api GET /api/jersey-public-orders (admin) review-950-2026-04-10
  • Review: T5: data-driven page.server.ts + merge logic review-776-2026-04-03
  • Review: T6 westside-landing /admin/jersey-orders page review-951-2026-04-10
  • Review: T6: wire components to render from data review-777-2026-04-03
  • Review: T7 westside-landing Gear/landing link to /jersey-public review-952-2026-04-10
  • Review: T8: update contract_version in sign endpoint review-778-2026-04-03
  • Review: T9: fix Queens practice schedule (Fri→Wed) review-811-2026-04-03
  • Review: Team detail page contract (Mismatch 9) review-744-2026-04-03
  • Review: Track venue court costs in DB review-765-2026-04-03
  • Review: Track venue court costs in DB review-765-2026-04-03-r2
  • Review: Update ArgoCD overlays westside-app to westside-landing review-589-2026-03-28
  • Review: Update blackbox probe westside-app to westside-landing review-590-2026-03-28
  • Review: Update jersey and checkout pages to support session auth without token review-696-2026-03-29
  • Review: Update landing page gear section with new jersey images review-662-2026-03-29
  • Review: Update terraform refs westside-app to westside-landing review-588-2026-03-28
  • Review: Upgrade Nemo model from Haiku 4.5 to Sonnet 4.6 review-730-2026-03-30
  • Review: Upgrade Nemo model from Sonnet 4 to Sonnet 4.6 (re-review) review-730-2026-03-30-r2
  • Review: Validate: basketball-api (2 PRs, test failure) review-514-2026-03-28
  • Review: hostPath mount for basketball-api email templates review-929-2026-04-10
  • Review: incomplete_profiles query for email blast review-758-2026-04-03
  • Staff & Coaches — Westside Basketball westside-staff
  • TODO: Purge inline styles from playground HTML todo-purge-inline-styles-playground
  • TODO: QA pass — every playground page on phone todo-qa-playground-pages
  • TODO: Standardize logo refs to MinIO CDN todo-standardize-logo-refs
  • Tamsen Fundraising Partnership — Vertical Raise westside-tamsen-fundraising
  • Ticket: Rename westside-landing → westside-app (full rename) ticket-westside-basketball-rename-landing-to-app
  • Tournament: Power 32 Circuit — Seal Beach, CA (May 2026) tourney-power32-seal-beach-may-2026
  • Tournament: Utah State Invitational tourney-utah-state-invitational
  • Tryout Logistics: Spring 2026 tryout-logistics-spring-2026
  • Validation #925 — basketball-api#420 — Dedupe Alice Uwamahoro validation-925
  • Validation #927 — basketball-api#422 — 16U Local Queens team validation-927
  • Validation #931 — basketball-api#425 — POST /admin/contract/offer validation-931
  • Validation: #179 Gear page images validation-179-2026-03-29
  • Validation: #180 Fix jersey deadline text validation-180-2026-03-29
  • Validation: #182 Jersey email E2E + production send validation-182-2026-03-29
  • Validation: #183 + #185 CRM jersey badges + player detail validation-183-185-2026-03-29
  • Validation: #185 CRM player detail page validation-185-2026-03-29
  • Validation: #196 Spike - Player self-service jersey ordering validation-196-2026-03-30
  • Validation: #243 Jersey email division filter validation-243-2026-03-29
  • Validation: #248 + #249 Admin jersey fields + detail endpoint validation-248-249-2026-03-29
  • Validation: #249 Admin player detail endpoint validation-249-2026-03-29
  • Validation: #251 Populate WS-S26 Prospect user story validation-251-2026-04-14
  • Validation: #252 Create arch-landing-site architecture note validation-252-2026-04-14
  • Validation: #255 dual-auth dependency for jersey/checkout validation-255-2026-03-30
  • Validation: #257 jersey fields in PlayerProfileResponse validation-257-2026-03-30
  • Validation: API contract audit spike validation-278-2026-04-03
  • Validation: Add declined status to ContractStatus enum validation-379-2026-04-07
  • Validation: Add team_ids to AccountPlayerResponse validation-333-2026-04-04
  • Validation: Admin schedule data verification (#215) validation-215-2026-04-06
  • Validation: Basketball API #308 validation-308-2026-04-05
  • Validation: Basketball API #323 validation-323-2026-04-05
  • Validation: Basketball API #333 validation-333-2026-04-05
  • Validation: Basketball API #337 validation-337-2026-04-05
  • Validation: Bug #405 - update-kustomize-tag skipped when CI tests fail validation-405-2026-04-08
  • Validation: Coach dashboard team schedule via team_id FK validation-213-2026-04-04
  • Validation: Create 16U Local Queens team (#422) validation-422-2026-04-11
  • Validation: Data-Driven Contract Rendering System (Parent) validation-34-2026-04-06
  • Validation: Dedupe Alice Uwamahoro (#420) validation-420-2026-04-11
  • Validation: Email endpoints + events seeding + ruff fix (batch) validation-batch-2026-04-04
  • Validation: Events seeding (#331) validation-331-2026-04-04
  • Validation: Feature #389 - Payment recovery for abandoned Stripe registrations validation-389-2026-04-08
  • Validation: Fix Alembic multiple heads -- migration branch conflict validation-337-2026-04-05b
  • Validation: Fix confirmation email skipped for existing Keycloak accounts + token=None in profile URL validation-390-2026-04-08
  • Validation: Fix local teams schedule — group by team name validation-209-2026-04-05
  • Validation: Fix public schedule page API schema (#206) validation-206-2026-04-03
  • Validation: Generic api_get tool (#23) validation-23-2026-03-31
  • Validation: Issue #293 MJML Email System (2026-04-04) validation-293-2026-04-04
  • Validation: Issue #294 Generic send_templated_email (2026-04-04) validation-294-2026-04-04
  • Validation: Issue #295 Admin Blast Endpoint (2026-04-04) validation-295-2026-04-04
  • Validation: Issue #302 Contract Data Fix (2026-04-04) validation-302-2026-04-04
  • Validation: Issue #303 Visual Refinement (2026-04-04) validation-303-2026-04-04
  • Validation: Issue #308 -- incomplete_profiles query validation-308-2026-04-06
  • Validation: Issue #367 — Migration 037 monthly category + first_payment EmailType validation-367-2026-04-11
  • Validation: Issue #368 — GET /checkout/first-payment endpoint validation-368-2026-04-11
  • Validation: Issue #369 — send_first_payment_email + POST /admin/email/first-payment blast validation-369-2026-04-11
  • Validation: Issue #413 — Queens pink palette for girls program emails validation-413-2026-04-11
  • Validation: Issue #83 Remove ConfigMap (2026-04-04) validation-83-2026-04-04
  • Validation: Keycloak token fix (#26) validation-26-2026-03-31
  • Validation: Landing site rename (decomposed) validation-109-2026-04-06
  • Validation: Local teams email (#313) validation-313-2026-04-04
  • Validation: MJML email system — brand base + three layouts + docker build validation-293-2026-04-03
  • Validation: POST /admin/contract/offer endpoint (#425) validation-425-2026-04-11
  • Validation: Parent dashboard player team schedule via player_teams FK validation-214-2026-04-04
  • Validation: Populate team_name in PracticeScheduleResponse from Team join validation-341-2026-04-04
  • Validation: Promote jersey page design from playground to production validation-236-2026-04-08
  • Validation: Queens email (#311) validation-311-2026-04-04
  • Validation: Queens email branding — brand_color placeholder validation-344-2026-04-06
  • Validation: Remove cash payment option from registration form validation-223-2026-04-06
  • Validation: Ruff format fix (#332) validation-332-2026-04-04
  • Validation: Schedule data model + API (decomposed) validation-230-2026-04-06
  • Validation: Seed practice_schedules table (#279) validation-279-2026-04-03
  • Validation: Send Kiana + Kelsie + Jahzmyn contract emails validation-39-2026-04-06
  • Validation: Sponsor blast endpoint + pitch engine (#325) validation-325-2026-04-06
  • Validation: Sponsor model, migration, CRUD endpoints (#324) validation-324-2026-04-06
  • Validation: Sponsor seed data fixture (#323) validation-323-2026-04-06
  • Validation: Welcome email (#312) validation-312-2026-04-04
  • Validation: Westside AI Assistant #28 validation-28-2026-04-05
  • Validation: Westside Landing #213 validation-213-2026-04-05
  • Validation: Westside Landing #214 validation-214-2026-04-05
  • Validation: Westside Landing #215 validation-215-2026-04-05
  • Validation: basketball-api #473 first-payment 409 fix validation-basketball-api-473-2026-04-13
  • Validation: basketball-api #475 ruff format fix validation-475-2026-04-13
  • Validation: basketball-api#270 — Superseded by #752 (blast endpoint) validation-270-2026-04-03
  • Validation: basketball-api#275 — Superseded by #752 (blast endpoint) validation-275-2026-04-03
  • Validation: basketball-api#280 — Flatten PlayerProfileResponse validation-280-2026-04-03
  • Validation: basketball-api#281 — Admin CRM parent fields validation-281-2026-04-03
  • Validation: basketball-api#282 — Parent dashboard enrichment validation-282-2026-04-03
  • Validation: basketball-api#283 — Coach dashboard parent contact validation-283-2026-04-03
  • Validation: basketball-api#284 — Team detail page contract validation-284-2026-04-03
  • Validation: basketball-api#285 — Coach profile page fix validation-285-2026-04-03
  • Validation: basketball-api#286 — Subscription parent_phone validation-286-2026-04-03
  • Validation: basketball-api#319 — Add contract_config to teams validation-319-2026-04-05
  • Validation: basketball-api#321 — Add contract_overrides to players validation-321-2026-04-05
  • Validation: basketball-api#322 — Seed contract_config and player overrides validation-322-2026-04-05
  • Validation: basketball-api#429 — Migration jersey_public_orders applied to prod validation-429-2026-04-11
  • Validation: basketball-api#430 — POST /api/jersey-public-orders endpoint validation-430-2026-04-11
  • Validation: basketball-api#432 — GET /api/jersey-public-orders admin endpoint validation-432-2026-04-11
  • Validation: basketball-api#449 — WESTSIDE_STREAMLIT_RO_PASSWORD env var injection validation-449-2026-04-11
  • Validation: parent phone in admin players list endpoint validation-276-2026-04-03
  • Validation: player profile page parent phone display validation-203-2026-04-03
  • Validation: westside-contracts#35 (Component Extraction) validation-35-2026-04-05
  • Validation: westside-contracts#36 (Contract Config Schema) validation-36-2026-04-05
  • Validation: westside-contracts#37 (Data-Driven Contract Rendering) validation-37-2026-04-05
  • Validation: westside-contracts#38 (Sign Endpoint Config-Aware) validation-38-2026-04-05
  • Validation: westside-contracts#40 (Practice Schedule Component) validation-40-2026-04-05
  • Validation: westside-emails#3 — Superseded by #750 (MJML system) validation-3-2026-04-03
  • Validation: westside-landing#245 — Gear page CTA to /jersey-public validation-245-2026-04-11
  • Westside App — User Stories & Acceptance Criteria westside-app-user-stories
  • Westside Finances — Banking & Payouts westside-finances
  • Westside Fundraising — Vertical Raise westside-vertical-raise-fundraising
  • Westside Kings & Queens — Court Rental Accounting westside-accounting-court-rentals
  • Westside Kings & Queens — Practice Schedule (Spring/Summer 2026) westside-practice-schedule
  • Westside Monthly Billing Status (2026-05-06) westside-billing-status-2026-05
  • Westside Playground Overhaul — Work Decomposition westside-playground-overhaul
  • Westside Sponsors & Partners westside-sponsors
  • Westside Tournament Schedule westside-tournament-schedule

Architecture

  • Auth Architecture: Westside Basketball arch-auth-westside-basketball
  • Data Flow: Westside Basketball arch-dataflow-westside-basketball
  • Deployment: Westside Basketball arch-deployment-westside-basketball
  • Domain Model: Sponsorship System arch-domain-sponsorship
  • Domain Model: Westside Basketball arch-domain-westside-basketball
  • Sitemap: Westside Basketball — Public Site arch-sitemap-westside-basketball

Board

  • Board: #109 — Split westside-app into westside-landing + westside-app board-109-westside-landing-split
  • Board: Data-Driven Contracts (#34) board-34-data-driven-contracts
  • Board: Rename westside-app to westside-landing (#109) board-109-rename-westside-landing
  • Westside Basketball Board board-westside-basketball

Todo

  • Bug: Admin user management password reset hangs bug-westside-app-password-reset-hang
  • TODO: Add Donation Link to Website todo-donation-link-website
  • TODO: Admin user mgmt page — QA nits from PR #11 todo-westside-app-pr11-qa-nits
  • TODO: Auto-deploy westside-playground on merge todo-playground-auto-deploy
  • TODO: Coach West Recruiting Partnership todo-coach-west-partnership
  • TODO: Create $30 Tryout Payment Link for In-Person Walk-ups todo-tryout-payment-link-in-person
  • TODO: Expense Tracking Dashboard for Marcus todo-expense-tracking-dashboard
  • TODO: Fix account creation script — include firstName/lastName todo-fix-account-creation-names
  • TODO: Fox News Story todo-fox-news-story
  • TODO: Outreach Strategy & Funnel todo-outreach-strategy
  • TODO: Pal-E Branding on Stripe Portal todo-pale-branding-stripe
  • TODO: Parent Profile Page After Checkout todo-parent-profile-page

Phase

  • Phase 10: Playground — Complete App Prototype phase-wkq-10-playground
  • Phase 11: Girls Tryout — March 24 phase-wkq-11-girls-tryout
  • Phase 12: Unified Registration Flow phase-wkq-12-unified-registration
  • Phase 13: Practice Schedule phase-wkq-13-practice-schedule
  • Phase 14: Billing Tiers & Contracts phase-wkq-14-billing-tiers
  • Phase 15: Production Port — SPA Rebuild + Capacitor Ready phase-wkq-15-production-port
  • Phase 16: Expense Tracking phase-wkq-16-expense-tracking
  • Phase 17: Coach Payouts phase-wkq-17-coach-payouts
  • Phase 18: Integration Validation phase-wkq-18-integration-validation
  • Phase 19: Coach Playbooks phase-wkq-19-coach-playbooks
  • Phase 1: Foundation phase-wkq-1-foundation
  • Phase 20: Public SEO Pages phase-wkq-20-public-seo
  • Phase 21: Enterprise Auth — Self-Service Password Management phase-wkq-21-enterprise-auth
  • Phase 22: Capacitor Init — iOS Project Setup phase-wkq-22-capacitor-init
  • Phase 23: TestFlight Iteration — iOS Validation phase-wkq-23-testflight
  • Phase 24: App Store Submission phase-wkq-24-app-store
  • Phase 2: Keycloak Auth phase-wkq-2-keycloak-auth
  • Phase 3: Service Deployment phase-wkq-3-service-deployment
  • Phase 4: Tryout Day 1 phase-wkq-4-tryout-day-1
  • Phase 4: Tryout Day Operations Guide phase-4-tryout-day-ops
  • Phase 5: Team Placement phase-wkq-5-team-placement
  • Phase 6: Stripe Subscriptions phase-wkq-6-stripe-subscriptions
  • Phase 7: Player Profiles phase-wkq-7-player-profiles
  • Phase 8: Design System phase-wkq-8-design-system
  • Phase 9: Frontend Redesign phase-wkq-9-frontend-redesign

Plan

  • Plan: Stripe Connect Payouts plan-2026-02-25-stripe-connect-payouts
  • Plan: Westside App plan-2026-03-07-westside-app
  • Plan: Westside Kings & Queens plan-wkq

Project Page

  • Project: GroupMe — Westside project-groupme-westside
  • Project: Westside Kings & Queens project-westside-basketball

Review

  • Re-Review: New page: Gear (jersey photos from MinIO) review-409-2026-03-25-r2
  • Re-Review: Public site: travel schedule page (v1) + nav updates review-356-2026-03-25-r2
  • Re-review: New page: About review-406-2026-03-25-r2
  • Review Pass 2: #497 Recover stranded monthly-fee parents (analog of #486) review-1033-2026-04-17-pass-2
  • Review Pass 2: #498 Migrate monthly-fee flow to Payment Links (analog of #494) review-1032-2026-04-17-pass-2
  • Review: #486 Recover 18 stranded Utah Invitational orders (regen + apology blast) review-1022-2026-04-17
  • Review: #487 Emit pending_orders_with_expired_session gauge metric review-1024-2026-04-17
  • Review: #488 Set expires_at=30d on all 6 Stripe Session create calls review-1023-2026-04-17
  • Review: #497 Recover stranded monthly-fee parents (analog of #486) review-1033-2026-04-17
  • Review: #498 Migrate monthly-fee flow to Payment Links (analog of #494) review-1032-2026-04-17
  • Review: Add age-based team reassignment clause to Queens contracts review-592-2026-03-29
  • Review: Add direct message and file upload methods to GroupMe SDK review-600-2026-03-29
  • Review: Add downstream consumer check to migration workflow review-468-2026-03-27
  • Review: Add hello-world MCP endpoint with get_schedule tool review-992-2026-04-12b
  • Review: Add hello-world MCP endpoint with get_schedule tool review-992-2026-04-12
  • Review: Add list_messages method — read group message history review-378-2026-03-25
  • Review: Add list_messages tool — read group message history via MCP review-379-2026-03-25
  • Review: Admin UI to mark players as public for /teams page review-455-2026-03-27
  • Review: Admin blast endpoint /email/blast (re-review) review-752-2026-04-03-r2
  • Review: Admin nav: add Schedule link review-648-2026-03-28
  • Review: Admin schedule view (read-only) review-639-2026-03-28
  • Review: Alembic migration crash (R3 — v2 refinement) review-433-2026-03-26-r3
  • Review: Alembic migration crash — app down (deploy blocker) review-433-2026-03-26
  • Review: Alembic migration crash — app down (deploy blocker) review-433-2026-03-26-r2
  • Review: Alerting rules for CrashLoopBackOff (basketball-api#57) review-70-2026-03-27
  • Review: Alice Uwamahoro dedupe review-925-2026-04-10
  • Review: Baby Betty contradictory jersey state (manual data fix) review-393-2026-03-27
  • Review: Bug: Generic checkout webhook doesn't sync jersey status to players review-392-2026-03-26b
  • Review: Bug: Generic checkout webhook doesn't sync jersey status to players review-392-2026-03-26
  • Review: Bug: Mobile sign-in not centered (390px) review-619-2026-03-28
  • Review: Bug: date doesn't work on contract page — SSR/timezone review-331-2026-03-24
  • Review: Bug: date field dead on mobile — no calendar picker review-334-2026-03-24
  • Review: Bug: signature pad init after checkbox review-312-2026-03-27
  • Review: Bug: teams/save appends instead of replacing (CI blocker) review-404-2026-03-26
  • Review: Bug: validation duplication + CI test step + JSON parse review-313-2026-03-27
  • Review: Bug: wrong logo assets — JPEG instead of transparent PNGs from playground review-446-2026-03-26
  • Review: Bug: wrong logo assets — JPEG instead of transparent PNGs from playground (re-review) review-446-2026-03-26-v2
  • Review: Cleanup: Keycloak link nits (DRY, coach role, a11y) review-269-2026-03-27
  • Review: Coach Manny photo needed for staff page review-454-2026-03-26
  • Review: Contract shows hardcoded schedule instead of querying practice_schedules review-995-2026-04-12
  • Review: CrashLoopBackOff — Alembic migration chain forked, DB in partial state review-445-2026-03-26
  • Review: Create 16U Local Queens team review-927-2026-04-10
  • Review: Doc: Auth architecture on project page review-268-2026-03-27
  • Review: Doc: Auth architecture on project page (re-review) review-268-2026-03-27-v2
  • Review: Document deployment SOP (basketball-api#58) review-69-2026-03-27
  • Review: Email: Local teams — no Monday, first practice Tuesday (re-review) review-764-2026-04-03-r2
  • Review: Fix base_url to frontend_url in email/tryout links review-206-2026-03-27
  • Review: Fix contract page — proration, local schedules, remove local conduct rules review-wc-17-2026-03-24
  • Review: Fix fresh-pending reuse shows stale Stripe amount review-1006-2026-04-13
  • Review: Fix reconciliation script requires_approval + nickname review-308-2026-03-27
  • Review: Fix remaining CORB warnings on cross-origin player photo loads review-537-2026-03-28
  • Review: Fix split payment text — wrong amounts, wrong dates, wrong framing review-wc-15-2026-03-24
  • Review: Fix: first-payment checkout 409 (stale pending orders) review-1003-2026-04-13
  • Review: Generic email blast system with pluggable audience queries review-993-2026-04-12
  • Review: Inject WESTSIDE_STREAMLIT_RO_PASSWORD via SOPS Secret review-967-2026-04-10
  • Review: Interactive girls roster draft tool (mobile-first) review-526-2026-03-28
  • Review: Jersey email: E2E validation + production send to boys review-666-2026-03-29
  • Review: Keycloak theme polish — QA nits from PR #130 review-243-2026-03-27
  • Review: Landing page: restore original energy review-405-2026-03-25
  • Review: Landing page: restore original energy (re-review) review-405-2026-03-25-r2
  • Review: Landing site rename review-450-2026-03-28
  • Review: MJML email system — brand base + three layouts + docker build (re-review) review-750-2026-04-03-r2
  • Review: New page: About review-406-2026-03-25
  • Review: New page: Gear (jersey photos from MinIO) review-409-2026-03-25
  • Review: New page: Teams (Kings/Queens toggle + profile gate) review-408-2026-03-25
  • Review: New page: Tryouts (history + Kings/Queens toggle) review-407-2026-03-25-r2
  • Review: New page: Tryouts (history + Kings/Queens toggle) review-407-2026-03-25
  • Review: Onboard westside-contracts to Woodpecker CI pipeline review-578-2026-03-29
  • Review: Parent dashboard: player's team schedule via player_teams FK review-809-2026-04-04
  • Review: Playground overhaul 1/4: CSS/JS unification review-381-2026-03-25
  • Review: Playground overhaul 1/4: CSS/JS unification (re-review) review-381-2026-03-25-v2
  • Review: Playground overhaul 2/4: Public pages (8 pages) review-382-2026-03-25
  • Review: Playground overhaul 3/4: Authenticated pages (14 pages) review-383-2026-03-25
  • Review: Playground overhaul 4/4: Cleanup + component docs review-384-2026-03-25
  • Review: Promote jersey page design from playground to production (re-review) review-907-2026-04-08-v2
  • Review: Public coaches endpoint — GET /public/coaches review-430-2026-03-27
  • Review: Public coaches endpoint — GET /public/coaches review-430-2026-03-26
  • Review: Public schedule endpoint (GET /public/schedule) review-653-2026-03-28
  • Review: Public schedule: API-driven refactor review-649-2026-03-28
  • Review: Public schedule: API-driven refactor (re-review) review-649-2026-03-29
  • Review: Public site: add Coach Manny to staff page review-355-2026-03-25
  • Review: Public site: strip stale tryout content + fix practice count review-354-2026-03-25
  • Review: Public site: travel schedule page (v1) + nav updates review-356-2026-03-25
  • Review: Public teams endpoint — GET /public/teams review-429-2026-03-26
  • Review: QA nit cleanup review-462-2026-03-27
  • Review: Queens email branding: add brand_color to templates review-837-2026-04-03
  • Review: Regenerate Utah Invitational orders + validated e2e webhook roundtrip review-1013-2026-04-15
  • Review: Remove password rendering (basketball-api#168) review-353-2026-03-27
  • Review: Rename westside-app repo to westside-landing review-450-2026-03-26
  • Review: Rename westside-landing → westside-app (full: Forgejo + k8s + monitoring) review-920-2026-04-12
  • Review: Rename westside-landing → westside-app (re-review) review-920-2026-04-12-rerev
  • Review: Replace 7 read tools with generic read-only api_get tool (re-review) review-721-2026-03-30-r2
  • Review: Seed Gmail OAuth token into oauth_tokens DB table for resilience review-657-2026-03-29
  • Review: Show contract status in admin CRM player list review-534-2026-03-28
  • Review: Single-player contract email endpoint review-997-2026-04-12
  • Review: Svelte promotion prep: @svelte-notes annotations review-416-2026-03-25
  • Review: Svelte promotion prep: @svelte-notes annotations review-416-2026-03-26
  • Review: SvelteKit public site — layout shell + 8 pages review-431-2026-03-26
  • Review: SvelteKit public site — layout shell + 8 pages review-431-2026-03-26-r3
  • Review: T3 — basketball-api POST /api/jersey-public-orders review-948-2026-04-10
  • Review: T4 — basketball-api Gmail notification on submission review-949-2026-04-10
  • Review: Tournament product creation + per-player Stripe checkout links review-994-2026-04-12
  • Review: Tournament product creation + per-player Stripe checkout links (re-review) review-994-2026-04-12-v2
  • Review: Update ArgoCD overlays: westside-app to westside-landing review-589-2026-03-29
  • Review: Update Schedule: Kings/Queens toggle review-410-2026-03-25
  • Review: Update terraform refs: westside-app to westside-landing review-588-2026-03-29
  • Review: Validate basketball-api (2 PRs, test failure) review-514-2026-03-27
  • Review: Validate coach login and read-only roster E2E review-580-2026-03-28
  • Review: Westside playground complete overhaul -- unified HTML/CSS mock review-380-2026-03-25
  • Review: Wire tournament checkout URLs into blast query review-998-2026-04-12
  • Review: admin UI to mark players as public for /teams page review-455-2026-03-26
  • Review: basketball-api DB migration stuck -- app DOWN review-449-2026-03-26
  • Review: bug: wrong email address across all westside repos review-909-2026-04-09
  • Review: custom_notes field on player — renders additional terms on contract page review-wc19-2026-03-24
  • Review: groupme-mcp: MCP server for group management + messaging review-305-2026-03-24
  • Review: groupme-sdk: Python SDK wrapping GroupMe REST API review-303-2026-03-24
  • Review: jersey-public.html — public intake prototype (System B) review-942-2026-04-10
  • Review: settings.base_url still used in 7 locations after frontend_url migration review-601-2026-03-28

Sop

  • SOP: Email Send Workflow sop-email-send
  • SOP: Sending Contract Offers sop-contract-offer

Validation

  • Validation: Fix GroupMe reconciliation (requires_approval + nickname) validation-159-2026-03-27

Repos

  • basketball-api
    active
  • westside-app
    active