An attendance platform that verifies the person, not just their phone. It reads a fingerprint from an ordinary phone camera, with no scanner hardware, and checks the face in the same flow. It started as my final-year project, and I still build and run it alone.
Roll calls waste class time, and most digital attendance is easy to fake: a friend scans the QR code, or someone taps “present” from outside the room. Fingerprint scanners fix that, but they cost money, need maintenance and put a queue at the door.
02 — Build
What I built
Contactless fingerprint capture from a normal phone camera, plus face verification in the same flow.
Face matching with ArcFace / InsightFace embeddings, stored and searched in PostgreSQL with pgvector.
Liveness checks that combine MediaPipe challenges with passive texture checks, so a photo or a screen can’t stand in for a face.
Anti-proxy layers: a rotating QR code as a presence gate, a GPS geofence, and device and IP fingerprinting.
Multi-tenant from the start, with a 50+ endpoint TypeScript API, a FastAPI ML service and a 30+ page React app.
03 — Architecture
How it works
A React app and a TypeScript API handle institutions, classes and attendance. Biometric work (fingerprint, face and liveness) runs in a separate Python ML service, and face embeddings are matched with pgvector in PostgreSQL. The stack runs as seven Docker containers.
04 — Outcome
Results
Live at attendify.pro.
No scanner hardware: an ordinary phone camera captures the fingerprint and the face.
A 50+ endpoint API, a 30+ page app and a 7-container Docker stack, built and run by one developer.
05 — Stack
Built with
React
TypeScript
Node.js / Express
Python / FastAPI
OpenCV
InsightFace
MediaPipe
PostgreSQL + pgvector
Redis
Docker
Cloudflare
Next step
Let’s talk.
Want something like this built, or hiring for a role? I’m open to both.