Geo-location verified attendance with facial recognition, built with Next.js and Firebase.
- Lecturer dashboard — create lecture sessions, close attendance windows, view organized attendance tables
- Student flow — browse live sessions, verify location within class radius, facial identity verification
- Two-factor check — geolocation proximity check + in-browser facial recognition before marking attendance
- Anti-spoofing — no QR codes or shareable links; each student can only mark once per session
- Google sign-in or email/password authentication
- Next.js (App Router)
- Firebase (Auth, Firestore, Storage)
- face-api.js (browser-based facial recognition)
npm install
npm run devVisit http://localhost:3000.
Copy .env.local and fill in your Firebase project credentials:
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
- Enable Authentication → Email/Password + Google providers
- Create a Firestore Database and apply the rules in
firestore.rules
src/
├── app/ Next.js App Router pages
│ ├── dashboard/ Lecturer and student dashboards
│ ├── login/ Role-based login pages
│ └── register/ Role-based registration
├── components/ Navbar, AttendanceTable
├── context/ AuthContext (Firebase auth state)
└── lib/ Firebase config, auth helpers, Firestore API, geo utils, face verification