A zero-cost, web-based QR attendance system tracking 1,077 students across 18 batches during a month-long university placement training drive.
What it is, who uses it, why it exists
A web-based QR attendance system for a month-long university training drive, tracking presence across 18 batches and roughly 1,077 students via a time-limited classroom QR code.
Students scan a QR code each session and check their own attendance; trainers create sessions and see live counts for their own batches; a Super Admin manages students, batches, and reports.
The drive needed reliable attendance across 18 batches with no per-student cost or dedicated backend team — and a way to catch proxy attendance without adding friction for real attendees.
Who the platform serves, end to end
The full lifecycle, start to finish
Every module the platform is built from
Hover a module to see what it's responsible for.
Trainer Session & QR
Where a trainer runs their classroom's attendance for the day.
- New session creation per batch
- Time-limited QR generation (configurable duration)
- Live scan count via Supabase Realtime
- Limited QR redisplays per session
Student Scanning
The entire student-facing experience, no app install required.
- Browser-camera QR scan (html5-qrcode)
- Instant success/error confirmation
- Own attendance % and session history
- Forced password change on first login
Anti-Proxy Engine
Server-side checks that make proxy attendance impractical.
- Single-use, time-limited token
- Duplicate-scan rejection per session
- Wrong-batch rejection
- Automatic flagging after repeated failed attempts
Admin Reports & Management
Full operational control for the Super Admin.
- Student, batch, and trainer management
- Session / student / batch / daily / weekly reports
- Excel and CSV export via SheetJS
- Suspicious-activity flag review
How the major features actually work
Time-Limited, Single-Use QR Token
Each QR token expires in 40 seconds and is consumed on first scan — too short to screenshot, share, and have someone else scan in time.
Real-Time Live Attendance Count
The trainer's screen subscribes to Supabase Realtime, so the live counter and absent list update instantly as students scan.
Automatic Suspicious Activity Flagging
Every scan attempt is logged with a reason; a student with 3+ failed attempts in a day is automatically flagged for admin review.
From client to database, end to end
Select a node to see its purpose, technologies, and responsibilities.
Runs entirely in the student, trainer, or admin's mobile browser — no app install.
- Next.js (App Router)
- Tailwind CSS
- html5-qrcode
- qrcode.react
- QR scanning via device camera
- Trainer QR display and countdown
How information moves through the system
Problem, decision, reason
A student could screenshot the classroom QR code so someone absent gets marked present remotely.
Every QR token is single-use and expires after 40 seconds, consumed the moment anyone scans it.
Too short to photograph, share, and have someone else scan it in time.
The training drive had a hard ₹0 infrastructure budget for a one-month program.
A fully serverless stack — Next.js on Vercel and Supabase, both free tier — with no dedicated backend server.
Keeps total infrastructure cost at ₹0 without sacrificing real-time features.
Manual password resets or an OTP flow add cost for a short-lived system.
No OTP — a student contacts admin, who resets the password via the Supabase Auth admin API.
Zero additional cost, consistent with the ₹0 budget constraint.
Organized by category, with a reason for each choice
What makes this build hold up
Zero Infrastructure Cost
The entire system runs on Vercel and Supabase free tiers.
Single-Use QR Tokens
A 40-second, one-time-use token makes screenshot-sharing pointless.
Row-Level Security by Role
Trainers are restricted to their own batches at the database level.
Automatic Proxy-Attempt Flagging
Repeated failed scans surface students for admin review.
Current, next, and future vision
Live for the June–July Training Drive
- QR attendance running across all 18 batches
- Real-time live counts and anti-proxy flagging
- Admin reporting with Excel/CSV export
Open Items Before Full Rollout
- Support email and full trainer-batch assignment list to be finalized by admin
- Low attendance threshold confirmation (suggested 75%)
Explicitly Out of Scope (This Version)
- OTP / SMS verification
- Google OAuth login
- Native mobile application
- University ERP / LMS integration
Interested in Smart Attendance Platform?
Let's discuss how this can work for you.