Real-time judging and scoring platform for programming and robotics competitions. Built with React, TypeScript, and Firebase.
🔗 Live Demo: https://grc-live-score.web.app
- Live Scoreboard — Real-time score updates via Firestore for public viewers
- Role-Based Access — Admin and Judge roles with Firebase Authentication
- Judge Panel — Dedicated scoring workflows per competition type
- Admin Dashboard — Manage judges, teams, scores, audit logs, and mission locks
- Multiple Competition Types:
- Standard (Web, Python, Scratch, Mobile, Cyber Shield)
- Expo (GRC EXPO with rounds + poster + submission)
- Match-Based (Billiards, Tug of War, Sumo Arena)
- Track-Based (Line Racers, F1 Racing)
- Ramp Rush
- GO DIVE (ROV)
- Offline Support — Firestore IndexedDB persistence
- Audit Trail — Every score change is logged with judge name, timestamps, and old/new values
- Bulk Import — Import teams from Excel files
- Responsive — Works on desktop, tablet, and mobile
| Layer | Technology |
|---|---|
| Frontend | React 19 + TypeScript |
| Build | Vite |
| Backend | Firebase (Auth + Firestore) |
| Hosting | Firebase Hosting |
| Styling | Pure CSS with CSS Variables |
| Role | Access |
|---|---|
| Admin | Full access — manage judges, teams, scores, unlock missions, view audit log |
| Judge | Score their assigned competition/category only |
| Public | View live scoreboard (no login required) |
- Node.js 18+
- Firebase CLI (
npm install -g firebase-tools)
git clone https://github.com/yourusername/grc-live-score.git
cd grc-live-score
npm install