Sahasra: Bridging Help and Need
A web and offline-first mobile platform for communities to coordinate crisis relief and volunteers.
Face-verified, geofenced lecture attendance that makes proxy attendance nearly impossible
Manual registers and RFID cards make it trivial for a student to check in for an absent friend. This project replaces both with a two-phase verification flow: a geofenced location tick at the start of class, followed by a live face-verification check at an unpredictable point mid-lecture, so one sign-in can no longer cover a whole absence. Built as three FastAPI microservices (scheduling, attendance, and AI vision) backed by Supabase Postgres with pgvector for face-embedding similarity search, a Next.js dashboard for lecturers and admins, and a React Native mobile app for students. Designed and built by a three-person team in one academic semester, with deliberate architectural restraint services are only split where the boundary is real (different write patterns, different compute profiles) rather than defaulting to microservices everywhere.
This started as a university software engineering project (CS3203) with a fairly open brief, fix university attendance tracking. The first instinct, like a lot of student projects was to reach for a maximal microservices architecture, five-plus services, a message queue, an API gateway, a full observability stack. Working through it, that got trimmed down to three services, each justified by a real technical boundary rather than by looking impressive: scheduling-service and attendance-service split because they have genuinely different write patterns (low-volume reference data vs. high-volume transactional check-ins), and ai-vision-service split out because it has a different dependency footprint and compute profile entirely. The core design problem was the attendance flow itself: a single check-in, however verified, doesn't prove someone stayed. The solution, a second, randomly-timed verification window mid-lecture that the student's app never sees coming until it opens, closes that gap without needing dedicated hardware.
A mobile app where students check in with a location only tap at the start of a lecture, then must pass a combined face-and-location verification during a short, randomly-timed window later in the same lecture — so leaving early means failing a check that hasn't happened yet, not just skipping a check that already passed. Lecturers get a live dashboard view of who's completed each step in real time, plus attendance analytics and manual override with a required reason. Face images are converted to embeddings via DeepFace and compared with cosine similarity, location is verified against each venue's stored geofence using a Haversine distance calculation.
System consists of *A Next.js web dashboard for lecturers and administrators *A React Native (Expo) mobile app for students *A backend repo containing three FastAPI microservices scheduling-service (courses, offerings, venues, timetables, enrollments) attendance-service (lecture sessions, the two-phase check-in flow, attendance records, reporting, notifications) ai-vision-service (face embedding extraction and matching, reachable only internally).
All three of backend microservices share a common shared-core Python package for JWT verification, role-based access control, and cross-service schemas. Data lives in a single Supabase-managed Postgres database using the pgvector extension for face-embedding similarity search, with Supabase Auth as the identity provider — the backend verifies Supabase-issued JWTs rather than handling authentication itself. RabbitMQ handles asynchronous event messaging between services.
The database schema spans 23 tables covering identity, academic structure, venues and sessions, attendance and verification, and lightweight LMS-style content (materials and notices).
Currently the backend is implemented across all three services with SQLAlchemy models, Alembic migrations, and full RBAC-guarded endpoints; testing and the two client apps are the next phase of work.
A web and offline-first mobile platform for communities to coordinate crisis relief and volunteers.
Secure university attendance using face verification, geofencing and dynamic QR check-ins.
Scalable Multi-Tenant SaaS Platform for Community-Driven Environmental Monitoring and Cleanup Coordination