Automated attendance tracking

Over the past year, Team 6328 has been working to improve the way we track student and mentor attendance at meetings. This is useful both for determining attendance on a particular day and for gathering overall statistics. We thought that a computer set up in our shop with “sign in” and “sign out” buttons would be a burden on students and mentors (not to mention inaccurate when someone forgets to use it). Instead, we looked into ways we could track attendance automatically and invisibly. Our solution is to identify the devices of team members via WiFi sniffing. Team members can register their devices to the system so that the MAC address is associated with the student or mentor. A Linux computer in the shop then does continuous WiFi sniffing and signs members in and out based on the length of time since a device was last seen. We found that most devices send packets regularly for miscellaneous functions (background refreshes, looking for WiFi networks, etc.) Using this system, students and mentors are signed in within about 5 minutes and are signed out accurately +/- about 15 minutes.

This does not require installing any software on the device and we cannot track devices outside WiFi range. For those who prefer not to register a device (or if they don’t have one) we have a supplementary manual sign in that integrates data in to the automatic tracking. Records are available via a local web server and are posted to the team’s Slack workspace. The system is written in Python and our code is publicly available on GitHub at We hope this proves useful to anyone struggling to accurately track attendance!


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.