a live task leaderboard for the mvths robotics shop. completed tasks are tracked in a google sheet, scored by complexity, speed, and grade level, and displayed in everyone's browser in real time. it's a fully static site with no server — the browser fetches the published sheet csv, computes all scores client-side, and re-polls every few seconds.
how scoring works
- complexity — task name matched against keyword tiers for 1, 3, or 5 base points
- speed — finished within a short window gets a bonus; over the lead time gets a per-day penalty
- grade bonus — gr 10 +0.2, gr 11 +0.1, gr 12 +0.0 (additive)
- floor — a task can never score below 0.5 points
business days skip weekends and the school calendar stored in EXCLUDED_DAYS. scoring rules are plain objects at the top of scoring.js, so they can be tuned without touching the ui.
features
- live updates — polls the published sheet every 5 seconds
- rankings sorted by total points or completed tasks
- filters for timeframe (24h / 5d / 30d / all time), grade, and name search
- per-student breakdown — expand any row to see every task with dates and score details
- justify sir L's exclusion — assigned work is scored only for students
- mobile friendly with tap-to-expand
tech stack
vanilla js + css, no build step, no dependencies. google sheets published csv export for data, and 5-second client-side polling instead of a backend.