Admin schedule view: read-only dashboard for practices and events #166
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/westside-app#166
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Child of
forgejo_admin/basketball-api#230(decomposed parent). Backend complete: basketball-api#232 (models) and #233 (API) are merged. This is the frontend consumer.Repo
forgejo_admin/westside-landingUser Story
story:WS-S13As an admin, I want to see all scheduled program activities (practices, tournaments, games) in one view so that I know what's coming up for the program.Context
The schedule backend is live on basketball-api:
GET /admin/schedulereturns{ practices: [...], events: [...] }This ticket adds a read-only admin schedule view. CRUD forms (create/edit/delete) are a follow-up ticket — Marcus needs to SEE the data first.
Frontend patterns to follow (from existing admin pages):
onMount()+apiFetch()(no +page.js load functions)$state,$derived,$effectboys→"Kings",girls→"Queens" (use existingprogramStoreor inline filter)File Targets
Files to create:
src/routes/(app)/admin/schedule/+page.svelte— NEW. Admin schedule view page.Pattern reference (do NOT modify):
src/routes/(app)/admin/+page.svelte— dashboard page pattern (onMount, apiFetch, card layout)src/routes/(app)/admin/teams/+page.svelte— team management pattern (division filtering, grid layout)src/routes/(public)/schedule/+page.svelte— existing public schedule page (card layout reference for how schedule data is displayed, Kings/Queens toggle)src/lib/api.js— apiFetch patternsrc/lib/program.svelte.js— programStore for Kings/Queens toggleFiles NOT to touch:
src/routes/(app)/+layout.svelte— layout already protects /admin/* routes, no nav change needed for MVPsrc/lib/api.js— no new API functions needed, apiFetch handles itAcceptance Criteria
/admin/scheduleroute loads and displays data fromGET /admin/scheduleTest Expectations
Constraints
onMount()loading,$state/$derivedfor reactivityapiFetch('/admin/schedule')— single API call, display both sections from the responseChecklist
Related
forgejo_admin/basketball-api#230forgejo_admin/basketball-api#232(models, merged),forgejo_admin/basketball-api#233(API, merged)project-westside-basketballarch-domain-westside-basketball— updated with schedule entitiesScope Review: READY
Review note:
review-639-2026-03-28Ticket is fully scoped, all file targets verified, traceability complete, fits in a single agent pass (~3-4 min). No action needed before dispatch.