Files
walkup/PLAN.md
2026-04-24 07:15:29 -05:00

1.7 KiB

WalkUp Implementation Plan

Scope

  • React PWA frontend.
  • FastAPI backend.
  • TeamSnap JavaScript SDK on the client.
  • Server-side TeamSnap OAuth code exchange and refresh.
  • Backend stores only app-owned data and TeamSnap external IDs.

Initial Deliverables

  • Thin TeamSnap auth/session backend.
  • Media upload and clip registration flow.
  • Game assignment and gameday APIs.
  • Installable React PWA shell with offline-ready game prep scaffolding.
  • Docker-based local development stack.

Completed UI Cleanup

  • Home page now acts as a lightweight landing page with direct links to Library and Gameday.
  • Removed the old game-list-heavy dashboard content that was not useful as a landing surface.
  • Game titles in the UI now include a day parenthetical such as (sun 5/3) wherever the shared formatter is used.
  • TeamSnap gameday lineup reads now prefer the SDK bulkLoad path for eventLineup and eventLineupEntry, with rel-based fallback for accounts where bulk results are incomplete.

Completed Offline Cache Work

  • Client-side clip and assignment reads now persist locally and revalidate against server ETags.
  • Normalized playback media is cacheable for offline clip playback.
  • Auth and session responses remain no-store so cached data is limited to app-owned clip state.
  • TeamSnap read queries now use cached-first stale-while-revalidate behavior on the client.

Storage Status

  • Backend media persists in the backend-media named Docker volume.

Known Constraints

  • TeamSnap entities should not be durably mirrored on the backend.
  • Gameday lineup changes are local state in v1.
  • Browser clip editing is first-class; backend finalizes playback assets.