Absensi Face Recognition + GPS — Android application + Laravel admin dashboard
This attendance app processes two sensitive categories of data — face biometrics and location — for one purpose only: proving that the right employee checked in from the right place. Face matching runs entirely on the device, and location is read only at the moment you clock in or out.
Absensi Face Recognition + GPS is software that an organization installs and runs on its own infrastructure. The employer operating a given installation decides what data is entered into it and is the data controller for that installation. This page documents what the application itself collects and processes by design; it is the reference policy for the software, and an operator may publish additional terms on top of it. As the developer, I have no access to any production database unless an operator explicitly grants it for maintenance.
| Data | Why |
|---|---|
| Face template (biometric) | A mathematical representation (embedding) produced during one-time enrolment. Used to confirm that the person clocking in is the enrolled employee. |
| Live camera frames | Liveness detection (blink and head-movement checks) to block photo spoofing. Frames are processed in memory on the device and are not saved or transmitted. |
| Location (GPS) | Verifying that the check-in happens inside the geofence defined by the employer. Recorded as a coordinate on the attendance record. |
| Mock-location signals | Detecting fake-GPS applications, so an attendance record cannot be falsified. |
| Attendance records | Check-in/out timestamps, late status, and notes — used for recaps, payroll input, and reports. |
| Employee account data | Employee ID, name, and work unit — supplied by the employer, not by the app. |
| Device & technical data | Device model, OS version, and app version, for troubleshooting and push delivery. |
Enrolment converts your face into a numeric embedding — a vector of numbers. It is not a browsable photo, and a face cannot be reconstructed from it in any usable form. Matching compares the live embedding to the enrolled one on the device itself; the comparison result (match / no match) is what reaches the server, together with the attendance record.
Biometric data is only processed for attendance verification. It is never used for surveillance, emotion analysis, identification of non-employees, or any secondary purpose, and it is never shared with third parties.
If you withdraw consent for biometric processing, ask your employer to remove your enrolment. Face check-in then stops working for your account and attendance falls back to whatever alternative method your employer allows.
Location is requested only while the app is open and you are performing a check-in or check-out. The app does not run a background location service and does not build a movement history.
Each attendance record stores one coordinate pair and the geofence decision (inside / outside the allowed radius) for that moment.
| Service | What it does |
|---|---|
| Google ML Kit / TensorFlow Lite Privacy policy ↗ | Face detection and face embedding. Both run entirely on-device — no image or video frame is uploaded to Google or to any server. |
| Google Firebase Privacy policy ↗ | Authentication, cloud database, and file storage. Data is stored on Google servers in the project owned by the operator. |
| Google Maps Platform Privacy policy ↗ | Displays maps, geocodes addresses, and draws delivery routes. Google receives the coordinates being displayed or geocoded. |
Attendance data itself is sent only to the employer’s own Laravel backend.
Attendance data is visible to HR and administrator roles inside your organization, and can be exported to Excel by those roles. It is not sold, rented, or shared with advertisers.
Records are kept for as long as your employer needs them for payroll and labour-administration purposes. Face templates should be deleted when an employee account is deactivated — that deletion is performed by the employer’s administrator.
The application applies standard protections: passwords are stored as one-way hashes (never in plain text), access is limited by role, and all traffic between client and server is expected to run over HTTPS/TLS.
Face templates are stored as embeddings rather than images, and are transmitted over encrypted connections only.
No system is perfectly secure. Server hardening, backups, and access management for a live installation are the responsibility of the organization operating it.
This application is a workplace tool intended for employees. It is not directed at, and should not be used by, children under 13.
You have the right to ask for access to, correction of, or deletion of your personal data, and to object to certain processing.
Because your data lives in the installation run by the organization you deal with, address those requests to that organization first — they hold the data and can act on it. If you cannot reach them, or you believe the application itself is at fault, contact the developer at mhdlutfidev@gmail.com and I will assist technically.
If this policy changes, the “Last updated” date at the top of this page will be revised. Material changes will be reflected in the application release notes.
Questions, complaints, or privacy requests about this application:
I aim to respond within 7 business days.