03

Alma Mater

A contactless attendance system that replaces a paper register with a QR scan.

RoleDesigner and developer
TypePersonal
StackNestJS, QR scanning
StatusLive

The problem

Library attendance was tracked on paper. Someone had to be physically present to tick names off a list. This was slow, easy to fake, and created a bottleneck at entry.

Constraints

Solo build. No budget for hardware. The system had to work on any phone with a camera.

What I built

A NestJS backend that generates time limited QR codes for each library session. Students scan the code with their phone camera to check in. The server validates the code, records attendance, and manages session state. No app install required.

The interesting decision

I used time limited QR codes rather than a static code or a URL. Each code expires after the session window closes, so a shared screenshot cannot be used for attendance. The trade off is that the QR code needs to be refreshed on the display, but this is a small manual step compared to ticking names on paper.

What broke, and what I changed

The first version did not account for students checking in from outside the library. I added a geolocation check on the client side and a server side validation of the IP range to confirm the student was on campus.

Result

Attendance recording is contactless and automatic. The paper register is gone. Session management runs without a staff member present at the door.

Runs without me

Students check in with a QR code. Attendance is recorded and sessions are managed without a staff member standing at the door.