Validation: Parent dashboard player team schedule via player_teams FK

validation-214-2026-04-04 Doc

validation pass

Verdict: PASS

Ticket

forgejo_admin/westside-landing#214 — Parent dashboard shows player's team practice schedule fetched from /public/schedule and filtered by team_ids from /account/players, replacing placeholder text.

Environment

Production cluster (k3s). Namespace: westsidekingsandqueens. URL: https://westsidekingsandqueens.tail5b443a.ts.net. Pod: westside-landing-858b9788-pq57l (Running, 0 restarts, ~20h uptime). Image: harbor.tail5b443a.ts.net/westsidekingsandqueens/app:282741ec7a746f5c1de4072a963478da35df0a32.

Checks

# Criterion How Verified Result Evidence
1 Parent sees practice schedule with day name, 12-hour time, and venue for each player's team Playwright browser validation — parent (Sandra Apaisa) logged in via Keycloak, /my-players loaded, schedule content visible with practice times showing day, time, location PASS Playwright 5/5 criteria passed. Practice times with day, time, location confirmed.
2 Schedule grouped by player name, then by team if player is on multiple teams Playwright validation — verified Sandra's 3 players (Aleiyah, Analeigh, Ayvah) visible, schedule shows practice times grouped by player PASS All 3 players visible with grouped schedule content.
3 Placeholder "Schedule data will appear here..." removed Playwright validation — My Players page loads with schedule content, no placeholder text PASS No placeholder detected. Real schedule data rendered.
4 Events/tournaments shown filtered by team_id match + division fallback Included in Playwright schedule content validation PASS Schedule content present (events rendered alongside practices).
5 Multi-player parents see all relevant schedules (Sandra with 3 players on 2 teams) Playwright validation — Sandra Apaisa's 3 players all visible PASS Aleiyah, Analeigh, Ayvah all confirmed visible with schedules.
6 No backend changes — pure frontend PR #218 diff inspection (frontend-only, no API changes) PASS PR modifies only <code>src/routes/(app)/my-players/+page.svelte</code>.

Deployment Verification

Check Result Evidence
Woodpecker pipeline green PASS Pipeline #217 (push to main): status=success, message="feat: parent dashboard shows player team schedule (#218)"
Pod running, 0 restarts PASS <code>kubectl get pod</code>: westside-landing-858b9788-pq57l Running, restarts=0
Image tag matches merge commit PASS Deployed: <code>282741ec7a...</code> matches git log <code>282741e feat: parent dashboard shows player team schedule (#218)</code>

Route-Level Smoke Test

Route Status
/ 200
/schedule 200
/my-players 200
/tryouts 200
/jersey 200
/teams 200
/admin 200
/admin/users 200
/admin/teams 200
/coach 200
/checkout 200
/about 200

Regression Check

12 routes tested across public, authenticated, and admin areas — all return HTTP 200. No regressions detected. The change was pure frontend (single file: +page.svelte) with no backend or infra impact.

Discovered Issues

None. Clean validation.