— PROJECT NAME
Attendance Web App
— ROLE
Programmer/Designer
— DATE
November 2024 – January 2025
During my time as an Undergraduate Learning Assistant for MI 231: Game and Interactive Media Development, I developed a custom attendance web application to replace the outdated pen-and-paper method previously used in class. The manual process required passing around a sign-in sheet, which was inefficient and prone to errors. To modernize attendance tracking in a way that aligned with the course’s focus on programming, I built a web application that allowed students to sign in using their MSU email addresses. The initial version used geolocation to verify a student’s proximity to the classroom building, meeting the requirements set by my supervisor. While this system was highly effective, I thought it raised privacy concerns, prompting a shift to a temporary code-based system. In the revised version, instructors could generate a unique code with a configurable length and expiration time. Students would then enter this code along with their email to confirm attendance within the valid timeframe. All attendance data was automatically stored in a Google Sheet, streamlining grade calculations. I built the application using Google Apps Script, with HTML for the user interface and JavaScript for functionality. This project not only improved classroom efficiency but also demonstrated my ability to identify problems, adapt to feedback, and implement technical solutions in an educational setting.
Demo video of application using a test sheet
Due to concerns over the first design, I expanded the application’s functionality to allow instructors to generate unique attendance codes. Once generated, each code was automatically stored in a connected Google Sheet, where it could later be validated against student input. To provide flexibility, I implemented options to configure the length of each code and its validity duration in seconds. Additionally, since the tool was used across all three of my supervisor’s classes, I added a dropdown to select the appropriate course, ensuring the code and attendance data were directed to the correct spreadsheet. This made the system scalable, adaptable, and easy to use across multiple class sections.
In practice, the code generation was done live at the start of class, projected on the screen for all students to see. Students would then access the same attendance link each day, enter the generated code along with their MSU email, and select the correct class—just as instructors did—ensuring the system referenced the proper Google Sheet. The application first verified the entered code by comparing it against the current valid code stored in the sheet. If the code was incorrect, the student would receive an error message prompting them to try again. Once the correct code was entered, the app would search for the matching email address in the selected sheet to identify the appropriate row. It then parsed the sheet’s header row to locate the current date, identifying the correct column. With both the row and column located, the app marked the corresponding cell as "true," effectively logging the student as present for that day. This seamless system made attendance fast, reliable, and easily scalable across multiple classes.
I learned how to critically assess an in-place process (pen-and-paper attendance) and propose a more efficient, scalable solution that better fit the technical nature of the course.