Anti-fraud attendance and automated payroll for a coal mine
CoalTrack is our own product, built with and deployed for a coal-mining operator: a one-tap app for field workers and a web panel for HR, where attendance resists tampering and payroll is computed straight from the hours worked — live in production.

At a glance
The challenge
Mining operations were losing money to the same gaps every month: attendance handed to a colleague, phone clocks turned back, spoofed GPS, and manual recaps that ate days at every period close.
The site needed attendance that holds up as a record, works where signal is thin and feeds payroll directly — all computed to Indonesian regulations, without a finance team rebuilding it by hand.
Our approach
We built a one-tap Flutter app for Android and iOS: check-ins use server time, not the device clock, and queue locally to send themselves when signal returns. One approved device per employee, with genuine GPS required and mock locations flagged.
The attendance record is tamper-evident at the database level — PostgreSQL triggers reject edits and deletes, so corrections are new records, never rewrites. HR works in a Filament web panel: shift dashboard, review queue, versioned schedules and payroll.
The payroll engine (PPh 21 TER, BPJS, overtime) was written twice on purpose — once on the server, once mirrored in the app — so both produce identical numbers. Finalised runs export PPh 21 for Coretax and email password-locked payslips. Deployed on DigitalOcean with Docker, automated backups and one-command updates.

The outcome
CoalTrack is live in production: a marketing site at coaltrack.id and a public demo, with a private web panel for HR behind authentication.
Field workers check in on native iOS and Android apps in seven languages, online or offline; HR runs compliant payroll straight from attendance, with a tamper-evident audit trail.
The app calculates and documents — it never holds or moves money. Wages are paid through the company’s bank as usual.

Have a similar problem?
Tell us about it — we’ll tell you honestly whether we can help.