How dedsec7522/facegate works
FaceGate is a self-hosted facial attendance platform. Employees use a camera kiosk or their portal to start a live verification; the backend evaluates face identity and liveness, then records attendance. Administrators manage employees and enrolment, review attendance and reports, and configure verification and attendance rules. The graph preserves these documented capabilities, but several backend routes and frontend pages were not sampled, so their internal calls are omitted or marked unverified.
Main entry points: router.tsx Route selection · api.ts API client · models.py Domain records · useVerificationStream.ts Verification stream
Components 26
Web application
- Route selection
frontend/src/app/router.tsx - Session and roles
frontend/src/lib/auth.tsx - API client
frontend/src/lib/api.ts - Kiosk workflow
frontend/src/pages/kiosk/Kiosk.tsx - Camera capture
frontend/src/components/camera/useCamera.ts - Verification stream
frontend/src/components/camera/useVerificationStream.ts - Employee portal
frontend/src/pages/portal/Portal.tsx - Admin workspace
frontend/src/pages/admin
API and security
- Authentication API
backend/app/api/v1/auth.py - Admin and employee API
backend/app/api/v1/admin.py - Attendance API
backend/app/api/v1/attendance.py - Verification API
backend/app/api/v1/verify.py
Face verification
- Vision pipeline
backend/app/vision/pipeline.py - Face detection and embedding
backend/app/vision/embedder.py - Matching and liveness
backend/app/vision/matcher.py
Attendance domain
- Face enrolment
backend/app/services/enrolment.py - Session verification
backend/app/services/verification.py - Attendance rules
backend/app/services/attendance.py - Organization settings
backend/app/services/org_settings.py - Audit log
backend/app/services/audit.py - Template index
backend/app/services/index.py
Persistence
- Domain records
backend/app/db/models.py - PostgreSQL
backend/app/db/base.py
Other components
- Employee
- Admin / HR
- Camera access
Connections 32
- Employee → Route selection: opens portal or kiosk
README.md - Admin / HR → Route selection: opens admin console
README.md - Route selection → Kiosk workflow: routes kiosk
frontend/src/app/router.tsx - Route selection → Employee portal: routes portal
frontend/src/app/router.tsx - Route selection → Admin workspace: routes admin pages
frontend/src/app/router.tsx - Route selection → Session and roles: guards routes
frontend/src/app/router.tsx - Session and roles → API client: requests session
frontend/src/lib/auth.tsx - Kiosk workflow → Camera capture: starts capture
frontend/src/pages/kiosk/Kiosk.tsx - Camera access → Camera capture: provides video
frontend/src/components/camera/useCamera.ts - Kiosk workflow → Verification stream: starts verification
frontend/src/pages/kiosk/Kiosk.tsx - Verification stream → Camera capture: grabs frames
frontend/src/components/camera/useVerificationStream.ts - Verification stream → API client: creates session
frontend/src/components/camera/useVerificationStream.ts - Verification stream → Verification API: streams frames
frontend/src/components/camera/useVerificationStream.ts - Employee portal → API client: requests portal data
frontend/src/pages/portal/Portal.tsx - Admin workspace → API client: requests admin data
frontend/src/pages/admin/Attendance.tsx - API client → Authentication API: calls auth routes
frontend/src/lib/api.ts - Authentication API → Domain records: reads and writes accounts
backend/app/api/v1/auth.py - Authentication API → Audit log: records auth events
backend/app/api/v1/auth.py - Verification API → Session verification: manages sessions
- Session verification → Vision pipeline: analyses frames
backend/app/services/verification.py - Vision pipeline → Face detection and embedding: detects and embeds
backend/app/vision/pipeline.py - Vision pipeline → Matching and liveness: matches and checks liveness
backend/app/vision/pipeline.py - Session verification → Template index: looks up templates
- Attendance API → Attendance rules: applies attendance rules
- Attendance rules → Organization settings: loads runtime rules
backend/app/services/attendance.py - Admin and employee API → Face enrolment: manages enrolment
- Admin and employee API → Organization settings: manages settings
- Face enrolment → Vision pipeline: processes face samples
- Attendance rules → Domain records: reads and records events
backend/app/services/attendance.py - Organization settings → Domain records: loads stored settings
backend/app/services/org_settings.py - Domain records → PostgreSQL: maps persisted records
backend/app/db/models.py - Template index → Domain records: loads enrolment templates