Taking attendance is a repeated and tedious process, and sometimes difficult for new teachers or when there are many students in the room. We aim to resolve that problem using face recognition and a friendly web interface.
What it does
Teacher first registers for a class, acquiring a unique class code. Now, for each student, the teacher adds an image of that student and their name. After the association has been created, the teacher (or any authorized individual with the class code) can take a photo of the class and get instantly a list of who's present and who's not. In case of error (which is rare), the teacher can also manually modify the presence or absence of any student.
How we built it
Face recognition is powered by Microsoft Azure's face recognition service. Backend image storage utilizes AliCloud's OSS service. For frontend we used React and an individual developent server.
Challenges we ran into
Setting up the face recognition API took some effort, as Azure requires image links on the public domain. We resolved that using AliCloud's storage service. We also could not make cross-origin requests at first, but we made a temporary workaround using chrome extension to disable CORS restrictions.
Accomplishments that we're proud of
The server and API work seamlessly together and as a result the service is quite fast. Frontend is decently polished and interacts with backend using REST API. Image recognition works great but that's Azure's credit.
What we learned
how to use Microsoft Azure's face recognition API, Java Spring (learned more), React (learned more), some css tricks.
What's next for zoom
Make optimizations to calls to Azure's APIs and improve frontend. We will also add API hooks for organizations that would like to record attendances into their systems directly using our APIs.