Project Year: 2026 || Keywords: Hackathon, Usability, Ubiquitous Computing, IoT, Design, 3D-Modelling
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
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.
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:
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.
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.
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.
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.
