How nathanamoo-crypto/sportshub works
SportsHub lets organizers manage local competitions from setup through teams, fixtures, scores and match events; players and visitors can browse competitions, matches, teams and statistics. The frontend routes these workflows through domain-specific services to Supabase for authentication, data and logo storage. The README documents standings and player/team statistics derived from Postgres views. Only routing, auth-provider behavior, and the fixture-result page’s service calls were sampled; other domain links reflect the documented service-layer structure, not inspected call sites.
Main entry points: App.tsx Route application · supabase.ts Supabase client · organizer Team and squad setup · FixtureResultPage.tsx Results and events
Components 22
Application and identity
- Route application
src/App.tsx - Auth provider
src/context/AuthProvider.tsx
Organizer management
- Competition setup
src/pages/organizer - Team and squad setup
src/pages/organizer - Fixture scheduling
src/pages/organizer - Results and events
src/pages/organizer/FixtureResultPage.tsx
Public competition experience
- Competition browsing
src/pages/CompetitionsPage.tsx - Competition details
src/pages/CompetitionDetailPage.tsx - Public match pages
src/pages/MatchDetailPage.tsx - Teams and players
src/pages/TeamsPage.tsx - Standings and stats
src/services/statistics.ts
Supabase data layer
- Competition service
src/services/competitions.ts - Teams and squads
src/services/teams.ts - Squad service
src/services/squads.ts - Fixture service
src/services/fixtures.ts - Match events
src/services/matchEvents.ts - Logo storage
src/services/storage.ts - Supabase client
src/services/supabase.ts
Other components
- Visitor or user
- Supabase Auth
- Postgres database
- Supabase Storage
Connections 35
- Visitor or user → Route application: opens
- Route application → Auth provider: provides identity
- Route application → Competition setup: routes
- Route application → Team and squad setup: routes
- Route application → Fixture scheduling: routes
- Route application → Results and events: routes
- Route application → Competition browsing: routes
- Route application → Competition details: routes
- Route application → Public match pages: routes
- Route application → Teams and players: routes
- Auth provider → Supabase client: uses
- Supabase client → Supabase Auth: auth requests
- Auth provider → Postgres database: reads profiles and roles
- Competition setup → Competition service: manages competitions
- Team and squad setup → Teams and squads: manages teams
- Team and squad setup → Squad service: manages squads
- Team and squad setup → Logo storage: uploads logos
- Fixture scheduling → Fixture service: manages fixtures
- Results and events → Fixture service: loads and saves results
- Results and events → Match events: manages events
- Results and events → Squad service: loads squads
- Competition browsing → Competition service: browses competitions
- Competition details → Competition service: loads details
- Public match pages → Fixture service: loads matches
- Teams and players → Teams and squads: loads teams
- Teams and players → Squad service: loads players
- Standings and stats → Postgres database: reads derived views
- Competition service → Supabase client: queries data
- Teams and squads → Supabase client: queries data
- Squad service → Supabase client: queries data
- Fixture service → Supabase client: queries data
- Match events → Supabase client: queries data
- Logo storage → Supabase client: uses client
- Supabase client → Postgres database: data requests
- Logo storage → Supabase Storage: uploads and deletes