Playground overhaul 2/4: Public pages (8 pages) #86

Closed
opened 2026-03-26 15:22:10 +00:00 by forgejo_admin · 2 comments

Type

Feature

Lineage

Decomposed from westside-app#84. Parent note: westside-playground-overhaul

Repo

forgejo_admin/westside-playground

User Story

As a prospective parent, I want to see accurate program info, coaching staff, schedules, and sponsors on the public site so I can decide whether to enroll my child.
As a prospective parent, I want to contact the program easily so I can ask questions and get my child involved.

story:WS-S26, story:WS-S27

Context

Public-facing pages that don't require auth. Includes the Keycloak login/password flow mocks (static HTML representing the themed Keycloak pages). Must use the unified CSS from sub-ticket 1.

File Targets

Files to create/update (8 pages):

  • index.html — landing page. No tryout CTA when tryouts inactive. Accurate practice count (2/week).
  • staff.html — coaching staff cards. Preserve existing 5 coaches. (Coach Manny added separately via #76)
  • sponsors.html — sponsors + partners cards
  • schedule.html — travel/local team schedules (5 teams, TBD dates)
  • login.html — Keycloak-themed login page mock. "Submit" links to admin/coach/parent dashboard based on role selector.
  • forgot-password.html — Keycloak forgot password form mock. "Submit" links to email confirmation.
  • reset-password.html — Keycloak reset password form mock. "Submit" links to login.html.
  • register.html — registration flow. Updated, no stale tryout references.

Acceptance Criteria

  • All 8 pages exist and render on mobile
  • All reference shared/style.css and shared/app.js
  • Consistent public nav across all public pages
  • No stale tryout references
  • Login flow is navigable: login → dashboard, forgot → email confirmation → reset → login
  • Component doc comment at top of each page (@route, @auth, @api)

Test Expectations

  • All nav links resolve to existing pages
  • grep for "tryout" returns zero (except schedule TBD)
  • Visual: each page on 390px viewport

Constraints

  • Depends on sub-ticket 1 (CSS/JS unification) being merged and phone-approved
  • Plain HTML/CSS/JS only
  • Mobile-first
  • Auth mock pages are visual only — no real Keycloak integration

Checklist

  • 8 pages created/updated
  • Component docs on each
  • Nav consistent
  • Lucas phone review
  • westside-playground-overhaul — parent decomposition note
  • arch-auth-westside-basketball — Keycloak auth flow reference
  • westside-app#84 — parent issue
### Type Feature ### Lineage Decomposed from westside-app#84. Parent note: `westside-playground-overhaul` ### Repo `forgejo_admin/westside-playground` ### User Story As a prospective parent, I want to see accurate program info, coaching staff, schedules, and sponsors on the public site so I can decide whether to enroll my child. As a prospective parent, I want to contact the program easily so I can ask questions and get my child involved. story:WS-S26, story:WS-S27 ### Context Public-facing pages that don't require auth. Includes the Keycloak login/password flow mocks (static HTML representing the themed Keycloak pages). Must use the unified CSS from sub-ticket 1. ### File Targets Files to create/update (8 pages): - `index.html` — landing page. No tryout CTA when tryouts inactive. Accurate practice count (2/week). - `staff.html` — coaching staff cards. Preserve existing 5 coaches. (Coach Manny added separately via #76) - `sponsors.html` — sponsors + partners cards - `schedule.html` — travel/local team schedules (5 teams, TBD dates) - `login.html` — Keycloak-themed login page mock. "Submit" links to admin/coach/parent dashboard based on role selector. - `forgot-password.html` — Keycloak forgot password form mock. "Submit" links to email confirmation. - `reset-password.html` — Keycloak reset password form mock. "Submit" links to login.html. - `register.html` — registration flow. Updated, no stale tryout references. ### Acceptance Criteria - [ ] All 8 pages exist and render on mobile - [ ] All reference `shared/style.css` and `shared/app.js` - [ ] Consistent public nav across all public pages - [ ] No stale tryout references - [ ] Login flow is navigable: login → dashboard, forgot → email confirmation → reset → login - [ ] Component doc comment at top of each page (@route, @auth, @api) ### Test Expectations - [ ] All nav links resolve to existing pages - [ ] grep for "tryout" returns zero (except schedule TBD) - [ ] Visual: each page on 390px viewport ### Constraints - Depends on sub-ticket 1 (CSS/JS unification) being merged and phone-approved - Plain HTML/CSS/JS only - Mobile-first - Auth mock pages are visual only — no real Keycloak integration ### Checklist - [ ] 8 pages created/updated - [ ] Component docs on each - [ ] Nav consistent - [ ] Lucas phone review ### Related - `westside-playground-overhaul` — parent decomposition note - `arch-auth-westside-basketball` — Keycloak auth flow reference - westside-app#84 — parent issue
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-382-2026-03-25

Template is complete and file targets are verified (4 exist, 4 to create). Four issues need resolution before this ticket is agent-ready:

  • Repo placement ambiguity: Issue filed on westside-app but work targets westside-playground. Add dispatch note to prevent agent branching on wrong repo.
  • Nav spec missing: "Consistent public nav" criterion is ambiguous — current pages have 3 different nav patterns. Define the canonical link list.
  • "Stale tryout" handling undefined: index.html revolves around tryout promotion. Test expects grep tryout returns zero, but ticket doesn't say whether to remove, replace, or conditionally hide tryout content.
  • signin.html vs login.html overlap undocumented: Existing signin.html (Keycloak OIDC redirect) coexists with new login.html (Keycloak-themed static mock). Relationship not explained — agent may confuse them.
## Scope Review: NEEDS_REFINEMENT Review note: `review-382-2026-03-25` Template is complete and file targets are verified (4 exist, 4 to create). Four issues need resolution before this ticket is agent-ready: - **Repo placement ambiguity**: Issue filed on westside-app but work targets westside-playground. Add dispatch note to prevent agent branching on wrong repo. - **Nav spec missing**: "Consistent public nav" criterion is ambiguous — current pages have 3 different nav patterns. Define the canonical link list. - **"Stale tryout" handling undefined**: index.html revolves around tryout promotion. Test expects `grep tryout` returns zero, but ticket doesn't say whether to remove, replace, or conditionally hide tryout content. - **signin.html vs login.html overlap undocumented**: Existing signin.html (Keycloak OIDC redirect) coexists with new login.html (Keycloak-themed static mock). Relationship not explained — agent may confuse them.
Author
Owner

Refinements from review-382-2026-03-25:

  1. Repo convention: Documented — westside-app tracks, westside-playground is target.

  2. Public nav canonical link list:
    Home | About | Staff | Sponsors | Schedule | FAQ

All 8 public pages use this exact nav. "About" and "FAQ" are anchor links to index.html#about and index.html#faq.

  1. Tryout handling: REMOVE all tryout content. Not hide, not disable — remove. No tryout banner, no tryout section, no tryout CTA, no Stripe links. The index.html is a clean landing page for a program with no active tryouts.

  2. signin.html vs login.html: signin.html is the old Keycloak redirect page from the SvelteKit app. login.html is the new static mock of the Keycloak-themed login page. signin.html becomes stale — added to #88 removal list.

**Refinements from review-382-2026-03-25:** 1. **Repo convention:** Documented — westside-app tracks, westside-playground is target. 2. **Public nav canonical link list:** Home | About | Staff | Sponsors | Schedule | FAQ All 8 public pages use this exact nav. "About" and "FAQ" are anchor links to `index.html#about` and `index.html#faq`. 3. **Tryout handling:** REMOVE all tryout content. Not hide, not disable — remove. No tryout banner, no tryout section, no tryout CTA, no Stripe links. The `index.html` is a clean landing page for a program with no active tryouts. 4. **signin.html vs login.html:** `signin.html` is the old Keycloak redirect page from the SvelteKit app. `login.html` is the new static mock of the Keycloak-themed login page. `signin.html` becomes stale — added to #88 removal list.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-app#86
No description provided.