Playground overhaul 3/4: Authenticated pages (14 pages) #87

Closed
opened 2026-03-26 15:22:27 +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 an admin, I want to view registration stats on a dashboard so I know signup progress at a glance (WS-S5).
As an admin, I want to manage user accounts so I can support parents directly (WS-S12).
As a coach, I want to view my team roster with player photos so I know my players on sight (WS-S13).
As a parent, I want to see my child's team assignment and coach so I know the season plan (WS-S19).

story:WS-S5, story:WS-S12, story:WS-S13, story:WS-S19

Context

Authenticated pages behind Keycloak login. Three role-based dashboards (admin, coach, parent) plus shared pages (player profile, billing, team, checkout/jersey flows). Must use unified CSS from sub-ticket 1.

Existing pages from Phase 10: admin.html, admin-players.html, admin-teams.html, coach.html, coach-profile.html, parent.html, player-profile.html, billing.html, team.html. 13 of these already have @route/@auth/@api doc comments — preserve and update, don't overwrite.

File Targets

Files to update (9 existing):

  • admin.html — admin dashboard
  • admin-players.html — player management
  • admin-teams.html — team management
  • coach.html — coach dashboard
  • coach-profile.html — individual coach view
  • parent.html — parent dashboard / my-players
  • player-profile.html — player detail
  • billing.html — billing / payment status
  • team.html — team detail

Files to create (5 new):

  • checkout.html — Stripe checkout page mock
  • checkout-success.html — payment confirmation
  • checkout-cancel.html — payment cancelled
  • jersey.html — jersey selection page
  • jersey-success.html — jersey payment confirmation

Acceptance Criteria

  • All 14 pages exist and render on mobile
  • All reference shared/style.css and shared/app.js
  • Authenticated nav (different from public nav — includes dashboard links, logout)
  • Role-based nav: admin sees admin links, coach sees coach links, parent sees parent links
  • Checkout/jersey flow navigable: checkout → success/cancel, jersey → success
  • Component doc comment on every page (@route, @auth, @api)
  • Existing doc comments preserved and updated, not overwritten

Test Expectations

  • All nav links resolve to existing pages
  • Visual: each page on 390px viewport
  • Every authenticated page has @auth doc comment specifying required role

Constraints

  • Depends on sub-ticket 1 (CSS/JS unification) being merged and phone-approved
  • Plain HTML/CSS/JS only
  • Mobile-first
  • Red/black westside brand (unified CSS, not pal-e-app light theme)

Checklist

  • 9 existing pages updated to unified CSS
  • 5 new pages created
  • Component docs on each
  • Nav consistent per role
  • Lucas phone review
  • westside-playground-overhaul — parent decomposition note
  • 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 an admin, I want to view registration stats on a dashboard so I know signup progress at a glance (WS-S5). As an admin, I want to manage user accounts so I can support parents directly (WS-S12). As a coach, I want to view my team roster with player photos so I know my players on sight (WS-S13). As a parent, I want to see my child's team assignment and coach so I know the season plan (WS-S19). story:WS-S5, story:WS-S12, story:WS-S13, story:WS-S19 ### Context Authenticated pages behind Keycloak login. Three role-based dashboards (admin, coach, parent) plus shared pages (player profile, billing, team, checkout/jersey flows). Must use unified CSS from sub-ticket 1. Existing pages from Phase 10: admin.html, admin-players.html, admin-teams.html, coach.html, coach-profile.html, parent.html, player-profile.html, billing.html, team.html. 13 of these already have @route/@auth/@api doc comments — preserve and update, don't overwrite. ### File Targets Files to update (9 existing): - `admin.html` — admin dashboard - `admin-players.html` — player management - `admin-teams.html` — team management - `coach.html` — coach dashboard - `coach-profile.html` — individual coach view - `parent.html` — parent dashboard / my-players - `player-profile.html` — player detail - `billing.html` — billing / payment status - `team.html` — team detail Files to create (5 new): - `checkout.html` — Stripe checkout page mock - `checkout-success.html` — payment confirmation - `checkout-cancel.html` — payment cancelled - `jersey.html` — jersey selection page - `jersey-success.html` — jersey payment confirmation ### Acceptance Criteria - [ ] All 14 pages exist and render on mobile - [ ] All reference `shared/style.css` and `shared/app.js` - [ ] Authenticated nav (different from public nav — includes dashboard links, logout) - [ ] Role-based nav: admin sees admin links, coach sees coach links, parent sees parent links - [ ] Checkout/jersey flow navigable: checkout → success/cancel, jersey → success - [ ] Component doc comment on every page (@route, @auth, @api) - [ ] Existing doc comments preserved and updated, not overwritten ### Test Expectations - [ ] All nav links resolve to existing pages - [ ] Visual: each page on 390px viewport - [ ] Every authenticated page has @auth doc comment specifying required role ### Constraints - Depends on sub-ticket 1 (CSS/JS unification) being merged and phone-approved - Plain HTML/CSS/JS only - Mobile-first - Red/black westside brand (unified CSS, not pal-e-app light theme) ### Checklist - [ ] 9 existing pages updated to unified CSS - [ ] 5 new pages created - [ ] Component docs on each - [ ] Nav consistent per role - [ ] Lucas phone review ### Related - `westside-playground-overhaul` — parent decomposition note - westside-app#84 — parent issue
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-383-2026-03-25
Two refinements needed before this ticket is agent-ready:

  • Repo placement mismatch — Issue filed on westside-app but work targets westside-playground. Board label arch:westside-app reinforces the wrong repo. Agent could clone the wrong repo.
  • Role-based nav spec missing — Acceptance criteria say "admin sees admin links, coach sees coach links, parent sees parent links" but don't enumerate which links per role. Agent will guess, Lucas will reject on phone review.
## Scope Review: NEEDS_REFINEMENT Review note: `review-383-2026-03-25` Two refinements needed before this ticket is agent-ready: - **Repo placement mismatch** — Issue filed on `westside-app` but work targets `westside-playground`. Board label `arch:westside-app` reinforces the wrong repo. Agent could clone the wrong repo. - **Role-based nav spec missing** — Acceptance criteria say "admin sees admin links, coach sees coach links, parent sees parent links" but don't enumerate which links per role. Agent will guess, Lucas will reject on phone review.
Author
Owner

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

  1. Repo convention: Same as all overhaul tickets — westside-app is the tracking repo, westside-playground is the target. Convention established in #75.

  2. Role-based nav specification:

Role Nav Links
Admin Dashboard, Players, Teams, Coaches, Billing, Logout
Coach Dashboard, My Team, Players, Schedule, Logout
Parent My Players, Team, Billing, Schedule, Logout

All authenticated navs also include: Home (public landing), Profile (own account).

The public nav (Home, About, Staff, Sponsors, Schedule, FAQ) is separate and only appears on public pages. Authenticated pages get the role-specific nav above.

**Refinements from review-383-2026-03-25:** 1. **Repo convention:** Same as all overhaul tickets — westside-app is the tracking repo, westside-playground is the target. Convention established in #75. 2. **Role-based nav specification:** | Role | Nav Links | |------|-----------| | **Admin** | Dashboard, Players, Teams, Coaches, Billing, Logout | | **Coach** | Dashboard, My Team, Players, Schedule, Logout | | **Parent** | My Players, Team, Billing, Schedule, Logout | All authenticated navs also include: Home (public landing), Profile (own account). The public nav (Home, About, Staff, Sponsors, Schedule, FAQ) is separate and only appears on public pages. Authenticated pages get the role-specific nav above.
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#87
No description provided.