# 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 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. ## 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.