HILab Attendance Board

Project Year: 2026 || Keywords: Hackathon, Usability, Ubiquitous Computing, IoT, Design, 3D-Modelling

HILab Research Logo

Outline

YEAR: 2026

ROLE: Project Management, Developer

TECH: Python, Javascript, Vite.js, Express.js, Raspberry Pi, GIT, TinkerCAD, 3D-Printing

PERS: Michael Luu

KEYW: Hackathon, Usability, Ubiquitous Computing, IoT, Design, 3D-Modelling

LINK: github.com

Retiring the Magnets: An Automated Lab Attendance System

The Problem

Have you ever walked into the lab hoping to catch a teammate, only to find an empty room? For the longest time, we relied on a low-tech paper board with magnets to track who was present. The fatal flaw? Humans. People constantly forgot to move their magnets when arriving or leaving, rendering the board useless. During an internal lab hackathon, our team decided it was time to banish the magnets and build a system that updates itself using the one thing people never leave behind: their smartphones.

The Solution

We engineered a fully automated, synchronized physical and digital attendance system running entirely on a single Raspberry Pi. Now, when a lab member walks through the door, the system simply knows.

How the Magic Happens: Instead of manual check-ins, a Node.js backend silently scans the local Wi-Fi network for registered MAC addresses. Once a user’s smartphone connects to the lab’s network, the system triggers a three-part harmony:

  1. The Physical Spark: A Python script communicates with the Raspberry Pi’s GPIO pins, instantly lighting up the user’s dedicated LED on our custom-built physical attendance board.

  2. The Virtual Ping: A custom Discord Bot syncs our physical space to the virtual one, automatically granting the user an at HILab role on the lab’s server.

  3. The Global View: A sleek Vue.js web dashboard updates in real-time, allowing anyone to check the lab’s status straight from their browser.

Engineering Under the Hood: One of the biggest challenges we faced was “flapping.” Modern smartphones constantly put their Wi-Fi chips to sleep to save battery, which would normally cause our physical LEDs to flicker on and off and spam the Discord server. To solve this, we designed a custom sliding-window algorithm. The backend stores a history of network scans and applies a presence threshold—meaning a user is only marked “absent” if they’ve genuinely dropped off the network for a sustained period.

The Result

A seamless blend of networking, full-stack web development, and hardware engineering. We solved a real, daily annoyance, bridged the gap between our physical lab and our digital workspace, and built a hackathon project that our team actually relies on every single day.