Vigil
Facial recognition and QR-based campus attendance logging — FastAPI backend with a React guard dashboard deployed on Railway and Vercel.
Problem
Manual attendance sheets are slow, error-prone, and hard to audit. Vigil pairs a uniguard API stack with uniguard-frontend so guards can register faces, scan QR codes, and review session health from a single dashboard.
Stack
The backend ships with Docker and shell orchestration for local runs. The frontend uses Supabase auth, TanStack Router, and a service layer that keeps login and logout flows explicit — errors surface as typed responses instead of silent failures.
What it covers
- Guard registration and login flows with Supabase auth
- Health checks against the attendance API
- Dashboard layout for course and session oversight
- Split deploy: API on Railway, UI on Vercel
export interface LoginParams {
email: string;
password: string;
}
export const loginFn = async (email: string, password: string) => {
const { error } = await supabase.auth.signInWithPassword({ email, password });
if (error) return { error: true, message: error.message };
return null;
};