How seyitanshalom/bankers-cup works
Bankers Cup is a tournament website and admin dashboard. Visitors load competition data to browse teams, fixtures, live match details, standings and knockout qualification, player statistics, and news. Admins manage tournament records and match events through the competition API; local development persists edits to JSON, while configured deployments use Supabase. Match event and timer rules maintain match outcomes and statistics. The README documents Supabase Auth and logo storage, but their wiring is not shown in the sampled source, so those integration links are marked optional.
Main entry points: data.ts Data access · local-data.ts Local mutations · tournament.ts Tournament calculations · page.tsx Standings
Components 24
Public tournament site
- Home dashboard
src/app/page.tsx - Fixtures
src/app/fixtures/page.tsx - Match detail
src/app/matches/[matchId]/page.tsx - Team profiles
src/app/teams/page.tsx - Team detail
src/app/teams/[teamId]/page.tsx - Standings
src/app/standings/page.tsx - Qualification bracket
src/components/qualification-bracket.tsx - Player statistics
src/app/stats/page.tsx - Tournament news
src/app/news/page.tsx - Live match views
src/components
Competition management
- Admin console
src/app/admin/admin-console.tsx
Tournament rules
- Tournament calculations
src/lib/tournament.ts - Match outcomes
src/lib/match-outcome.ts - Match timer
src/lib/match-timer.ts
Data and services
- Competition API
src/app/api/competition/route.ts - Data access
src/lib/data.ts - Local mutations
src/lib/local-data.ts - Local competition data
data/competition.json - Supabase client
src/lib/supabase.ts - Supabase database
supabase/schema.sql - Supabase Auth
- Supabase Storage
Other components
- Visitor
- Administrator
Connections 35
- Visitor → Home dashboard: opens
- Visitor → Fixtures: browses
- Visitor → Match detail: opens
- Visitor → Team profiles: browses
- Visitor → Team detail: opens
- Visitor → Standings: browses
- Visitor → Player statistics: browses
- Visitor → Tournament news: reads
- Home dashboard → Competition API: fetches
- Fixtures → Data access: loads
- Match detail → Data access: loads
- Match detail → Live match views: renders
- Team profiles → Data access: loads
- Team detail → Data access: loads
- Standings → Data access: loads
- Standings → Tournament calculations: calculates
- Standings → Qualification bracket: renders
- Qualification bracket → Tournament calculations: seeds
- Team detail → Tournament calculations: calculates
- Player statistics → Data access: loads
- Player statistics → Tournament calculations: calculates
- Tournament news → Data access: loads
- Administrator → Admin console: manages
- Admin console → Competition API: submits changes
- Admin console → Supabase Auth: authenticates
- Admin console → Supabase Storage: uploads logos
- Competition API → Data access: loads
- Competition API → Local mutations: applies mutations
- Data access → Local mutations: reads local data
- Data access → Supabase client: uses configured backend
- Supabase client → Supabase database: reads and writes
- Local mutations → Local competition data: reads and writes
- Local mutations → Tournament calculations: validates events
- Local mutations → Match outcomes: recomputes results
- Local mutations → Match timer: gets timer patch