Milan Ghimire

Machine Learning Based Event Participants Presence Prediction System with Facial Attendance

A detailed engineering project showcasing system design, data processing, and production-ready implementation.

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

Event attendance system screenshot 1 Event attendance system screenshot 2 Event attendance system screenshot 3 Event attendance system screenshot 4 Event attendance system screenshot 5 Event attendance system screenshot 6 Event attendance system screenshot 7 Event attendance system screenshot 8 Event attendance system screenshot 9 Event attendance system screenshot 10 Event attendance system screenshot 11 Event attendance system screenshot 12 Event attendance system screenshot 13 Event attendance system screenshot 14 Event attendance system screenshot 15

GitHub