How 2001105254-netizen/racepulseph works
RacePulsePH is a race registration, operations, and timing application, with role-based experiences for runners, organizers, and administrators. Users authenticate and are routed to their role’s dashboard; organizers configure races, runners register, and race staff record checkpoint times. Timing and roster data support published live updates and results, including finisher certificates. The repository also includes an engraving-order operator dashboard and an RFID bridge. Source excerpts show the main application flows; connections for unsampled subsystems are omitted where their runtime wiring is not evidenced.
Main entry points: TimingConsole.tsx Timing console · firebase.ts Firebase client · App.tsx Role router · OrganizerDashboard.tsx Organizer dashboard
Components 25
Application and access
- Role router
src/App.tsx - Authentication
src/components/AuthGate.tsx - Admin dashboard
src/components/AdminDashboard.tsx - Organizer dashboard
src/components/OrganizerDashboard.tsx - Runner dashboard
src/components/RunnerDashboard.tsx
Race setup and registration
- Race setup
src/components/RaceSetupPanel.tsx - Image processing
src/lib/image.ts - Runner registration
src/components/CustomerForm.tsx - Runner race events
src/components/MyRaceEventsPanel.tsx
Race operations
- Timing console
src/components/TimingConsole.tsx - Result calculation
src/lib/timing.ts - Offline scan queue
src/lib/offlineScanQueue.ts - Dual synchronization
src/lib/dualSync.ts - QR scanner
src/components/QrScannerModal.tsx - Engraving orders
src/components/OperatorDashboard.tsx
Live results
- Public race landing
src/components/PublicRaceLanding.tsx - Public live hub
src/components/PublicLiveRaceHub.tsx - Live broadcast
src/components/LiveBroadcastPanel.tsx - Public results
src/components/PublicRaceResults.tsx - Finisher certificates
src/lib/finisherCertificate.ts - Runner reports
src/lib/runnerReport.ts
Data and integrations
- Firebase client
src/firebase.ts - Firebase Firestore
- RFID bridge
rfid-bridge/Program.cs
Other components
- Runner or staff
Connections 31
- Runner or staff → Role router: uses
src/App.tsx - Role router → Authentication: shows
src/App.tsx - Role router → Admin dashboard: routes admins
src/App.tsx - Role router → Organizer dashboard: routes organizers
src/App.tsx - Role router → Runner dashboard: routes runners
src/App.tsx - Authentication → Firebase client: signs in
src/components/AuthGate.tsx - Organizer dashboard → Race setup: opens setup
src/components/OrganizerDashboard.tsx - Organizer dashboard → Timing console: opens timing
src/components/OrganizerDashboard.tsx - Organizer dashboard → Runner race events: shows events
src/components/OrganizerDashboard.tsx - Race setup → Image processing: resizes images
src/components/RaceSetupPanel.tsx - Race setup → Firebase client: saves race
src/components/RaceSetupPanel.tsx - Runner dashboard → Runner registration: registers runners
src/components/RunnerDashboard.tsx - Runner dashboard → Firebase client: reads and writes
src/components/RunnerDashboard.tsx - Timing console → Result calculation: calculates results
src/components/TimingConsole.tsx - Timing console → Offline scan queue: queues scans
src/components/TimingConsole.tsx - Timing console → Dual synchronization: uses sync
src/components/TimingConsole.tsx - Timing console → QR scanner: opens scanner
src/components/TimingConsole.tsx - Timing console → Runner reports: uses reports
src/components/TimingConsole.tsx - Timing console → Firebase client: writes race data
src/components/TimingConsole.tsx - Admin dashboard → Timing console: opens timing
src/components/AdminDashboard.tsx - Admin dashboard → Race setup: opens setup
src/components/AdminDashboard.tsx - Public race landing → Public live hub: shows live race
src/components/PublicRaceLanding.tsx - Public race landing → Public results: shows results
src/components/PublicRaceLanding.tsx - Organizer dashboard → Live broadcast: manages broadcast
src/components/OrganizerDashboard.tsx - Live broadcast → Result calculation: uses timing
src/components/LiveBroadcastPanel.tsx - Live broadcast → Firebase client: publishes updates
src/components/LiveBroadcastPanel.tsx - Public live hub → Firebase client: reads live data
src/components/PublicLiveRaceHub.tsx - Public results → Finisher certificates: creates certificate
src/components/PublicRaceResults.tsx - Public results → Firebase client: reads results
src/components/PublicRaceResults.tsx - Firebase client → Firebase Firestore: connects
src/firebase.ts - RFID bridge → Timing console