Skip to content

[Phase 2] Core Recognition & AttendanceΒ #2

Description

@CodinginID

🧠 Phase 2 β€” Core Recognition & Attendance

Membuat netra benar-benar menjalankan fungsi intinya: absensi berbasis face recognition (di atas fondasi Phase 1, #1).

βœ… Sudah selesai (MVP core loop β€” diverifikasi, 21 test hijau)

  • Abstraksi FaceEngine (app/services/face/) β€” FakeFaceEngine deterministik (dev/test, tanpa ML) + adapter InsightFace buffalo_s / ONNX Runtime di balik interface yang sama (extra opsional recognition). Dipilih via FACE_ENGINE.
  • Enrollment POST /enrollment β€” consent-gated (UU PDP), hitung & simpan embedding ArcFace 512-d, set user.enrolled.
  • Identifikasi 1:N β€” pgvector cosine NN, match di atas threshold; terisolasi per-tenant via RLS (kiosk tenant B tak pernah match wajah tenant A β€” ada test-nya).
  • Absensi POST /attendance/checkin|checkout (kiosk via X-Device-Token) β€” recognize β†’ catat dengan status on_time/late/early_leave dari jadwal default tenant (jam kerja + grace); liveness_score ditangkap.
  • Schedules POST|GET /schedules β€” aturan absensi per-tenant (data-driven).
  • Reporting skeleton GET /attendance + audit trail penuh.

⏭️ Sisa Phase 2 (belum)

  • Liveness pasif (Silent-Face) + aktif (MediaPipe FaceMesh)
  • Mesin aturan absensi lanjutan (shift, libur, geofence enforcement)
  • Pelaporan & ekspor (rekap harian/bulanan, CSV/Excel)
  • Webhook event absensi
  • Jalankan engine InsightFace nyata end-to-end (model download, gambar uji) + tuning threshold per-tenant
  • UI: halaman enrollment & layar kiosk check-in

Catatan teknis

Loop inti diuji penuh dengan FakeFaceEngine (tanpa model berat). Engine produksi tinggal FACE_ENGINE=insightface + uv sync --extra recognition. Semua perubahan ada di commit lokal 7ac6caa (branch feat/phase-1-foundation, belum di-push).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions