TimeKeeper¶
Time-tracking and attendance for FIRST Robotics Competition teams.
TimeKeeper runs a team's daily sessions: team members tap in on a kiosk (RFID or PIN), sessions start and end, and everyone's hours flow into live leaderboards, statistics and achievements — with a Discord bot to remind people when sessions begin and end.
What it does¶
- Sessions & attendance — sign in and out at a location, with a 4-hour check-in window around each session and automatic check-out for stragglers.
- A self-serve kiosk — RFID tap (PCSC smart-card readers or keyboard-wedge scanners) or a quick PIN signs members in and out. No admin needed.
- Leaderboards & statistics — who has the most hours, this week / month / all time, overtime tracking, and per-member breakdowns you can export to CSV.
- Achievements & badges — earn titles for hours, attendance streaks and rituals; rarity is measured against your active members.
- Discord integration — the bot posts start/end reminders, pings members in
overtime, links Discord accounts to cards, checks members out, and runs
!leaderboard,!mystats,!awardsand more. - Real-time everywhere — every device updates the instant anything changes, thanks to Postgres change notifications pushed over GraphQL subscriptions.
Where to next¶
I want to run it myself
Follow the Quickstart — one binary, no database to install. Then branch out to Installation, the server reference and deployment for a production setup with TLS.
I'm setting it up for our team
Start with the Admin Quickstart, then read the Settings Reference and Import & Export to get members in and a schedule uploaded.
I want to understand how it works
See the Architecture page, the Kiosk & RFID area, and the full Discord Bot page.
I have a problem or an idea
Check Bug Reports, Change Requests or the Q&A discussions.
Inspired by the greats — Team 254's "Cheesy Hours" and Team 3132's Attendance system — TimeKeeper brings a whole-team attendance kit to your shop.