The Access Point used to passively collect web traffic and track attendance! One for each lecture hall.
Automatic role-call and duration of stay per student. Real data from CalHacks in Memorial Stadium
Graph of aggregate data usage statistics over a 15 hour perio
More wifi data usage, with only the most popular websites published through the API for privacy's sake
One of our Node-Red flows streaming data from the network of 20 Meraki APs set up around the building
Through going to big lectures at Berkeley, we've always found that it was difficult for courses to keep track of our attendance. Professors have gone through countless methods to track student attendance, such as requiring students to buy pricy hardware.
What it does
Tracks student attendance and attentiveness based on the web traffic they create from their devices during class. Professors can keep track of attendance without calling role, thereby saving precious class time especially in large lecture halls. Our algorithm can detect when a student leaves a class early or arrives late, giving the teacher deeper insight into class attendance. There's an easy one-time MAC address to student name registration, and subsequently attendance is automatically taken so long as the student has wifi turned on (no connection required!) on one his/her phone, tablet, or laptop.
How it works
We are using Cisco Meraki's Location and Dashboard APIs along with the wifi access points (Meraki MR33) already set up inside Memorial Stadium. These quad-radio access points intercept wifi and bluetooth signals from smartphones and laptops, and we sample the data every few seconds to capture data such as unique MAC addresses, websites visited, timestamps, and duration of stay. The reason why we use MAC addresses as a primary key to identify devices and students is because each device broadcasts a unique, immutable MAC address, allowing us to track them over hours, months, and years. Additionally, by polling data every few seconds for the duration of lecture, our web app can make sure students don't leave right after signing in, which is a huge problem for many attendance methods such as using iClicker or Google Forms. Meraki keeps a constant eye on all devices in the lecture hall and allows our web app to take note as soon as a student leaves lecture.
We use Node-Red to interface with the access points, and stream out JSON files to a MondoDB database in the cloud. We then input this data into Pandas Dataframes and use Plotly to visualize it. After some filtering and stats, we end up with a simple, clean interface for the teacher to use. We package all of this into a web app hosted on Google Cloud for you to see update in real time!
Challenges we ran into
Meraki access points did not stay on consistently, and we stayed up till 8am trying to get our application to work more consistently. We also didn't have time to fully polish the application, so it currently contains just core functionality.
Accomplishments that we're proud of
We learned how to use the Meraki API and Node-Red application in the fly, which was incredibly rewarding because most of us didn't have any experience working with networking. We also enjoyed working with the Meraki representatives and bouncing our ideas off them!
What we learned
How to integrate various libraries and platforms into a single project! We also learned how to efficiently split up work and play to our strengths.
What's next for Stay Present
We'd love to test this in a UC Berkeley lecture hall and work closely with professors to implement this attendance tracker. We're planning to refine our data with our new Meraki MR33 APs and see what other data we can extract from unsecured campus web traffic. We believe that this project is just one way that classroom learning can be changed for the better, and hope to see it in use in the future!