← Crafts
Vigil preview

Vigil

Campus pilot Full-stack engineer

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
QR Face Student arrives Check-in mode Scan code Camera capture FastAPI verify Attendance log Guard dashboard
Attendance capture
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;
};
Vigil guard dashboard placeholder
Screenshot placeholder — guard register and attendance overview.