A Preact + Vite + Firebase web app for collecting match data with Google sign-in, admin assignments, and offline-safe local storage.
- Install dependencies:
npm install- Create
.envfrom the template and fill with your Firebase project values:
cp .env.example .envSet the values for VITE_FIREBASE_* in .env using your Firebase console.
- Run the dev server:
npm run dev- Google authentication (Firebase Auth)
- Role-based admin dashboard (stored in Firestore
userscollection) - Admin can assign scouts to static matches
- Scouting form for 3v3 teams per match with fuel/climb/penalty fields
- Submissions stored in Firestore and cached in
localStoragefor offline resilience - Pending submissions list with manual sync and delete controls
users/{uid}:{ uid, displayName, email, role: 'admin'|'scout', assignedMatchId? }submissions/{autoId}: form payload plus metadata (creator, match, alliance, timestamps)
- Default matches are in
src/data/matches.ts(replace with event schedule or live source later). - Roles: first-time sign-in is
scout; promote a user to admin from the dashboard. - Firestore rules are not included—secure access before production.