A modern, AI-powered biometric attendance and identity verification platform built for educational institutions.
ATTENDIX is a full-stack identity verification platform that leverages computer vision and biometric authentication to streamline attendance tracking in educational environments. The system combines facial recognition with fingerprint verification to provide a secure, contactless, and efficient way to verify student and faculty presence.
The platform features dedicated dashboards for students, teachers, and administrators—each with role-specific functionality for attendance tracking, session management, analytics, and grievance handling.
| Feature | Description |
|---|---|
| Facial Recognition | Real-time face detection using InsightFace (buffalo_l model) with ArcFace 512-dim embeddings |
| Fingerprint Verification | Hardware-integrated biometric authentication via Arduino serial communication |
| Video Attendance | Batch processing of uploaded video feeds to detect and log multiple attendees with annotated output |
| Live Camera Attendance | Real-time webcam-based face recognition with verification buffering |
| Role-Based Dashboards | Dedicated portals for Students, Teachers, and Administrators |
| Session Management | Create, schedule, and manage class sessions with attendance tracking |
| Embedding Cache | Local embedding cache for fast similarity search before Pinecone fallback |
| Ambiguous Detection Handling | System to flag and resolve low-confidence or duplicate detections |
- Framework: Next.js 16 (App Router) with React 19
- Styling: Tailwind CSS 4, shadcn/ui, Radix UI primitives
- Authentication: Clerk (OAuth)
- Database ORM: Drizzle ORM
- Charts: Recharts
- Language: TypeScript
- Framework: FastAPI (Python 3.10)
- Face Detection: InsightFace (buffalo_l model with RetinaFace detector)
- Face Embeddings: ArcFace (512-dimensional vectors)
- Computer Vision: OpenCV
- Vector Database: Pinecone (cosine similarity search)
- Hardware: Arduino with fingerprint sensor (serial communication)
- GPU Support: ONNX Runtime with CUDA
- Database: PostgreSQL (Neon serverless)
- Vector Store: Pinecone
- Analytics: Vercel Analytics
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Next.js App │────▶│ FastAPI API │────▶│ Pinecone │
│ (Frontend) │ │ (Backend) │ │ (Vector DB) │
└────────┬────────┘ └────────┬────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Clerk │ │ PostgreSQL │ │ Arduino │
│ (Authentication)│ │ (Neon) │ │ (Fingerprint) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Node.js v18+ and npm
- Python 3.10 (Conda recommended)
- PostgreSQL database (Neon)
- Clerk account
- Pinecone account
- Arduino with fingerprint sensor (optional)
-
Navigate to the frontend directory and install dependencies:
cd frontend && npm install
-
Configure environment variables in
.env:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY/CLERK_SECRET_KEYDATABASE_URL(Neon PostgreSQL connection string)
-
Run database migrations:
npm db:push
-
Run the development server:
npm dev
-
Access at
http://localhost:3000
-
Create and activate the Conda environment:
conda create -n uiv python=3.10 -y && conda activate uiv -
Install dependencies:
cd backend && pip install -r requirements.txt
-
Configure
.envwith Pinecone credentials:PINECONE_API_KEYPINECONE_INDEX_NAMEPINECONE_HOST
-
Start the API server:
python -m uvicorn app.main:app --reload
-
API available at
http://127.0.0.1:8000
HackCrypt/
├── frontend/ # Next.js 16 application
│ ├── app/ # App Router pages & API routes
│ │ ├── admin/ # Admin dashboard (create students, classes, timetable)
│ │ ├── student/ # Student portal (attendance, analytics, grievances)
│ │ ├── teacher/ # Teacher portal (attendance, sessions, analytics)
│ │ ├── login/ # Authentication flow (Clerk)
│ │ └── api/ # API routes (attendance, sessions, students)
│ ├── components/ # UI components (webcam, dialogs, navigation)
│ ├── db/ # Drizzle schema & database connection
│ └── contexts/ # React context (auth)
│
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/ # Endpoints (enroll, identify, fingerprint, video-attendance)
│ │ ├── services/ # Face embedding & caching services
│ │ ├── core/ # Pinecone client & startup hooks
│ │ └── auth/ # Clerk auth & RBAC
│ ├── output/ # Annotated video outputs
│ └── TEST_SCRIPTS/ # Development & testing scripts
│
└── public/ # Static assets
- Landing → User selects role (Student/Faculty/Admin)
- Sign Up/In → Clerk handles OAuth authentication
- Role Sync → User profile synced to PostgreSQL via Drizzle
- Dashboard → Redirected to role-specific portal
This project is developed for educational and demonstration purposes.
Built with ❤️ by Inception.js
