Inspiration

Taking attendance manually in classrooms often leads to wasted time, human errors, and even proxy attendance. We wanted to build something smart, modern, and reliable - a solution that saves time and automates this repetitive task. With advancements in computer vision and machine learning, we were inspired to design Face Attendance, a system that identifies students using facial recognition in a seamless web interface.

What it does

Face Attendance is an AI-powered web application that automates student attendance using facial recognition. Teachers can log in, create classes, register students with photos, and mark attendance through a live camera feed. The app uses simulated face recognition for now but is ready for integration with real-time ML models. It also supports CSV export, class management, and a responsive design for both desktop and mobile.

The facial recognition process works by comparing the facial encoding of each student with the live camera feed.
Mathematically, we represent face similarity as:

[ \text{similarity}(A, B) = 1 - \frac{||A - B||_2}{\max(||A||_2, ||B||_2)} ]

where ( A ) and ( B ) are face embeddings, and ( ||A - B||_2 ) is the Euclidean distance between them.

If the similarity score is greater than a chosen threshold ( T ), the face is recognized as the corresponding student.

How we built it

The frontend is built using Next.js 14 (App Router), React, TypeScript, and TailwindCSS for a modern, responsive design. Smooth animations and transitions are powered by Framer Motion for a professional user experience.

Currently, the data is stored locally using LocalStorage, but it will soon be replaced with Firebase Firestore for real-time database operations. react-webcam is integrated for live video input, and react-hot-toast is used for instant feedback through notifications.

Tech Stack:

  • ⚙️ Framework: Next.js 14
  • 💻 Language: TypeScript
  • 🎨 Styling: TailwindCSS
  • 🎞️ Animations: Framer Motion
  • ☁️ Data Storage: LocalStorage → Firebase (upcoming)
  • 📸 Webcam: react-webcam
  • 🔔 Notifications: react-hot-toast

Challenges we ran into

  • Integrating real-time face recognition with camera input and ensuring accuracy.
  • Managing component states dynamically in a multi-page Next.js app.
  • Handling asynchronous data and syncing attendance records.
  • Debugging Next.js App Router issues and optimizing performance.
  • Designing a UI that balances aesthetics with usability.

Accomplishments that we're proud of

  • Built a fully functional and responsive frontend with smooth animations.
  • Implemented class and student management with simulated face recognition.
  • Created an intuitive user interface for teachers with real-time feedback.
  • Developed a clean, modular codebase that’s ready for backend integration.

What we learned

  • Efficient use of React Hooks like useState, useEffect, and custom hooks.
  • Structuring large-scale Next.js projects using the App Router.
  • Applying ML concepts (face encodings, Euclidean distance) in web systems.
  • Designing responsive UIs using TailwindCSS and Framer Motion.
  • Importance of planning scalability for future backend integrations.

What's next for Face Attendance

  • 🔐 Integrate Firebase Authentication and Firestore Database.
  • 🤖 Implement real-time face recognition API for live camera input.
  • 📊 Add advanced analytics and reporting dashboards for teachers.
  • 📱 Develop a mobile app using React Native.
  • 🌙 Include dark mode and multilingual support for better accessibility.

Built With

Share this project:

Updates