01Stat and schedule inputsCSV uploads, commissioner actions, captain availability
→
02Validation layerDuplicate checks, team/player mapping, schedule and data constraints
→
03D1 / SQL data modelPlayers, teams, series, stats, access, availability, scheduled series
→
04Public + private interfacesAnalytics pages, APIs, commissioner tools, captain portal
Cloudflare deployment
Public pages and server-side functions are deployed on Cloudflare, keeping the application close to its data and operational APIs.
Structured database
League records are stored as relational data rather than hard-coded page content, allowing current-season views and historical features to share the same source of truth.
Authenticated captain tools
The captain portal uses identity-aware access and team assignments so captains can manage only the availability associated with their team.
Conflict-aware scheduling
Availability and scheduled-series records are checked against one another before writes are accepted, reducing the manual scheduling errors common in spreadsheet workflows.