FTC scouting app built for team 12841. Collects match and pit data at events, with offline-first support for venues with no internet.
- Match Scouting — Track auto, teleop, endgame stats per team per match
- Pit Scouting — Record robot specs, drivetrain, capabilities
- Dashboard — Weighted team rankings with customizable scoring
- Team Compare — Side-by-side stat comparison with radar charts
- Live Stats — FTC API integration for real-time rankings and match schedules
- Scouter Assignments — Admins assign scouts to specific matches/positions
- QR Transfer — Offline data transfer between devices via QR codes with duplicate detection
- Data Export — CSV export for spreadsheet analysis
- Bug Reporting — In-app bug reports visible to admins
- Frontend: React, TypeScript, Vite, Tailwind CSS, shadcn/ui
- Backend: Lovable Cloud (Supabase) — auth, database, edge functions, storage
- Offline: IndexedDB (PWA) + QR Transfer for zero-internet events
npm install
npm run devThe app is a PWA. When offline, scouting submissions are queued in IndexedDB and auto-sync when internet returns. The offline indicator at the bottom of the screen shows pending entry count.
For events with no internet at all:
- Scouters collect data on their phones (saved locally)
- After matches, scouters go to QR Transfer → Send Data to display QR codes
- A central "hub" device scans QR codes via QR Transfer → Receive Data
- The scanner flags duplicate entries with a DUP badge and skips them on import
- The hub syncs imported data to the cloud when internet is available
src/
components/ # Reusable UI components
contexts/ # React contexts (Auth, Event, Alliance)
hooks/ # Custom hooks
pages/ # Route pages
lib/ # Utilities, offline DB
types/ # TypeScript types
supabase/
functions/ # Edge functions (FTC API, notifications)
- Admin — Full access, manages users, events, scouter assignments, views bug reports
- Scout — Submits match/pit data for their assigned team/event
Published at scoutingvcs.lovable.app