A modern face recognition-based attendance system built with React, Convex, and Clerk.
- 🔐 Secure authentication with Clerk
- 👤 Face registration and recognition using face-api.js
- 📊 Admin dashboard for viewing all attendance records
- ⚡ Real-time updates with Convex
- 📱 Responsive design with Tailwind CSS
-
Install dependencies:
npm install
-
Download face-api.js models: Download the required models from face-api.js models and place them in the
public/modelsdirectory:- tiny_face_detector_model-weights_manifest.json
- tiny_face_detector_model-shard1
- face_landmark_68_model-weights_manifest.json
- face_landmark_68_model-shard1
- face_recognition_model-weights_manifest.json
- face_recognition_model-shard1
-
Configure Clerk:
- Create a Clerk account at clerk.com
- Create a new application
- Copy your publishable key to
.env
-
Configure Convex:
- Install Convex CLI:
npm install -g convex - Run:
npx convex dev - Copy your Convex URL to
.env
- Install Convex CLI:
-
Environment variables: Create a
.envfile with:VITE_CLERK_PUBLISHABLE_KEY=your_clerk_key VITE_CONVEX_URL=your_convex_url -
Run the development server:
npm run dev
- Sign up and create an account
- Register your face using the registration page
- Mark attendance by scanning your face
- Admin users can view all attendance records in the admin dashboard
- Frontend: React, TypeScript, Tailwind CSS
- Backend: Convex
- Authentication: Clerk
- Face Recognition: face-api.js
- UI Components: shadcn/ui