Overview
This system predicts who will attend an event before it happens, then checks that prediction against reality. Registrants sign up through a web app, a machine learning model scores each one as Present or Absent, and on event day a webcam recognises faces to record who actually turned up. Predicted attendance and real attendance end up on the same record, so the model can be graded against what really happened.
- Web app: Next.js and Node collect registrations and run the organiser dashboard.
- Database: MongoDB stores events, registrations, and attendance.
- Prediction model: an XGBoost classifier (scikit-learn, NumPy, pandas) served through a FastAPI service.
- Facial attendance: OpenCV opens the webcam, recognises registered faces, and writes the actual attendance back to the database.
Motivation
The main motive of this project was to serve as a doorway into understanding how machine learning models and different kinds of infrastructure actually connect with web applications, and how a complete system is delivered end to end. More than the prediction itself, the goal was to learn how the model, the API, the database, and the face-recognition module all fit together into one working product.
Tech stack
OpenCV · Next.js · Node · MongoDB · FastAPI · NumPy · pandas · scikit-learn (prediction model) · XGBoost (algorithm)
Future work
A future direction is to run the facial recognition on a dedicated hardware device, such as a Raspberry Pi, and turn it into a proper standalone attendance system rather than one tied to a laptop webcam.
Screenshots
GitHub
- Source code - github.com/themilang/event-attendance-system