How nathanblatter/survivor50draft works
Survivor Fantasy Draft is a web app for organizing season-specific leagues, drafting castaways onto teams, tracking game events and scores, and viewing standings and recaps. The user workflow runs from browsing a show and season to joining a league, drafting players, and following league results; commissioners also manage season data and scoring. The frontend API client connects those workflows to Express route modules and PostgreSQL. The README is empty, so feature coverage is based on the source index and sampled code; several unsampled routes are shown as domain subsystems without speculative internal flows.
Main entry points: index.ts Express entry · db.ts PostgreSQL · extract.ts Event extraction · api.ts API client
Components 27
Web application
- App routing
frontend/src/App.tsx - League context
frontend/src/context/AppContext.tsx - Admin session
frontend/src/context/AuthContext.tsx - Tribe context
frontend/src/context/TribeContext.tsx - Fantasy draft
frontend/src/pages/DraftPage.tsx - League views
frontend/src/pages - Player cards
frontend/src/components/PlayerCard.tsx - API client
frontend/src/api.ts
Backend API
- Express entry
backend/src/index.ts - Authentication
backend/src/routes/auth.ts - League management
backend/src/routes/leagues.ts - Draft management
backend/src/routes/draft.ts - Castaway records
backend/src/routes/players.ts - Fantasy teams
backend/src/routes/teams.ts - Standings and recaps
backend/src/routes/summary.ts - Shows and seasons
backend/src/routes - Admin authorization
backend/src/middleware/auth.ts
Season operations
- Game state
backend/src/routes/gamestate.ts - Scoring events
backend/src/routes/scoring.ts - Event extraction
backend/src/routes/extract.ts - Wikipedia parser
backend/src/lib/wikipedia.ts - Scoring rules
backend/src/lib/scoring.ts - Wikipedia proposals
backend/src/lib/wikipediaProposals.ts
Persistence and domain logic
- PostgreSQL
backend/src/db.ts - Player utilities
backend/src/lib/players.ts - Season definitions
backend/src/seasons
Other components
- League user
Connections 38
- League user → App routing: uses
frontend/src/App.tsx - App routing → Fantasy draft: routes to
frontend/src/App.tsx - App routing → League views: routes to
frontend/src/App.tsx - League context → API client: loads league context
frontend/src/context/AppContext.tsx - Admin session → API client: verifies and logs in
frontend/src/context/AuthContext.tsx - Tribe context → API client: loads tribes
frontend/src/context/TribeContext.tsx - Fantasy draft → API client: requests draft actions
frontend/src/api.ts - Fantasy draft → Player cards: renders player data
frontend/src/pages/DraftPage.tsx - League views → API client: requests league data
frontend/src/pages/admin/AdminContext.tsx - API client → Express entry: sends API requests
frontend/src/api.ts - Express entry → Authentication: mounts routes
backend/src/index.ts - Express entry → League management: mounts routes
backend/src/index.ts - Express entry → Draft management: mounts routes
backend/src/index.ts - Express entry → Castaway records: mounts routes
backend/src/index.ts - Express entry → Fantasy teams: mounts routes
backend/src/index.ts - Express entry → Standings and recaps: mounts routes
backend/src/index.ts - Express entry → Shows and seasons: mounts routes
backend/src/index.ts - Express entry → Game state: mounts routes
backend/src/index.ts - Express entry → Scoring events: mounts routes
backend/src/index.ts - Express entry → Event extraction: mounts routes
backend/src/index.ts - Authentication → PostgreSQL: persists auth data
- League management → PostgreSQL: reads and writes
backend/src/routes/leagues.ts - Draft management → PostgreSQL: reads and writes
backend/src/routes/draft.ts - Castaway records → PostgreSQL: reads and writes
- Fantasy teams → PostgreSQL: reads and writes
- Standings and recaps → PostgreSQL: queries results
backend/src/routes/summary.ts - Game state → PostgreSQL: reads and writes
backend/src/routes/gamestate.ts - Scoring events → PostgreSQL: reads and writes
backend/src/routes/scoring.ts - Scoring events → Scoring rules: uses scoring rules
backend/src/routes/scoring.ts - Event extraction → PostgreSQL: reads and writes
backend/src/routes/extract.ts - Event extraction → Wikipedia parser: parses season facts
backend/src/routes/extract.ts - Event extraction → Player utilities: uses player helpers
backend/src/routes/extract.ts - Event extraction → Wikipedia proposals: uses proposals
backend/src/routes/extract.ts - Event extraction → Admin authorization: requires authorization
backend/src/routes/extract.ts - Draft management → Admin authorization: requires authorization
backend/src/routes/draft.ts - Scoring events → Admin authorization: requires authorization
backend/src/routes/scoring.ts - Game state → Admin authorization: requires authorization
backend/src/routes/gamestate.ts - Season definitions → PostgreSQL: seeded into
backend/src/seed.ts