← All work

Make attendance work offline, with evidence for every review.

An attendance product in development that combines on-device face matching, server verification, offline sync, location policy, and a human review workflow.

Project
Absenku
My role
Product and full-stack developer
Scope
Flutter employee app, Go API, admin console, face-verification service, geofences, attendance review, and verification policy management
Built with
Flutter, Dart, Go, PostgreSQL, SvelteKit, Python, FastAPI, MinIO
Period
2026 · repository activity
Project status
In development

Engineering focus

  • Separate device and server models

    MobileFaceNet supports device-side matching; ArcFace supports the server. Each score retains its own model and threshold context.

  • Sync an offline capture once

    A local queue preserves check-ins until reconnection. Client-generated record IDs let the server handle repeated uploads without duplicate attendance rows.

  • Give uncertainty a review path

    When a server face check disagrees with an accepted offline capture, the pipeline can flag it for review and retain the evidence.

Absenku admin attendance explorer showing local development check-ins with accepted and needs-review states, capture source, office, and review reason.
Attendance UI with illustrative decision statesLocal development UI; demo attendance scores and decisions are illustrative

Independent product in development by Jufianto Henri. Admin screens are from local development. Attendance statuses and comparison scores in this gallery were manually seeded to illustrate the UI; they are not measured verification results.

The inspected history runs from June to September 2026. This records development activity, not a customer rollout. No production users, as confirmed by the owner in September 2026. Field calibration and production biometric performance remain unproven.

Design for the place where check-in actually happens

An employee may need to check in where connectivity is unreliable. An attendance system therefore has to manage both capture and reconciliation: what was recorded on the device, what the server can validate later, and what happens if the checks disagree.

I built Absenku across a Flutter employee app, Go API, SvelteKit admin console, and Python face-verification service. The work combines model integration with the application rules and operational screens needed to turn a capture into an attendance record.

Choose models for different operating conditions

The phone uses MobileFaceNet for local face matching and a MiniFASNet-based model for anti-spoof signals. The online server uses ArcFace through InsightFace. Device and server embeddings belong to different model spaces; they are stored and compared within their own models, with separate threshold context.

My contribution is the integration, decision pipeline, and workflow around these pretrained models. I did not train the underlying recognition models. Optional server anti-spoof scoring also depends on installed weights and deployment configuration; it is not evidence of a validated production fraud-prevention system.

Reconcile offline work without losing its history

Offline captures enter a local queue and sync when connectivity returns. Each record carries a client-generated identifier so retries do not create duplicate attendance rows. Server checks include capture age, location policy, and face evidence.

The pipeline distinguishes a failed check from a record that needs a person to review it. When the device accepted an offline capture but the server face check disagrees, the record can move to the review queue. Reviewers can see the reason and evidence instead of receiving an unexplained reversal of the employee’s original result.

Make exceptions explicit

Office geofences, employee and division permissions, remote-work exceptions, and verification thresholds are managed through the admin console. A location waiver applies to the location rule and is recorded as such; it does not silently waive every verification check.

This is relevant to clients building field-work or attendance products with intermittent connectivity and review requirements. Absenku has no production users yet, and model thresholds still need representative field calibration. The gallery demonstrates the operational UI with illustrative records and scores, not biometric accuracy.

Next projectPPDB MTSN 1

Have something in mind?

Let’s make it work.