Skip to content
Pixrweb — home
GEO Electrical logo
Web app · Node

A GPS time-clock app for field crews

A GPS time-clock web app for GEO Electrical — field crews clock in and out from any phone with their location captured, and the office pulls payroll-ready hours in one click. It even keeps working when there's no signal.

GEO Electrical website

The problem

Paper timesheets and group-chat "I started at 7" messages don't scale across a field team spread over farmyards, factories and rooftops. GEO Electrical needed a dead-simple way for crews to record their hours — with proof of where they were — and a way for the office to turn that into payroll without re-typing anything.

What we built

A focused web app with two sides: a phone app for the crew and a dashboard for the office. No app-store install — it's a PWA, so workers just "Add to Home Screen" and it behaves like a native app.

On the phone

Each worker picks their name, taps in a 4-digit PIN, and hits Clock In or Clock Out. Every punch captures GPS location, and a running total shows their hours today and this week.

GEO Electrical TimeClock — the crew's phone view

For the office

The boss dashboard shows a weekly hours grid per employee, drill-down into each shift with clickable GPS map links for every punch, and a one-tap "Download CSV for payroll." The office can add/remove staff, set PINs, and fix a missed punch in seconds.

Built for the real world

Rural jobs lose signal, so the app is offline-first: it loads with no connection, queues punches on the phone with a clear "will send when you have signal" banner, then syncs automatically — and every punch carries a unique id so nothing can ever double-count.

It's also honest about time:

  • A forgotten clock-out counts zero hours and is flagged "FIX BEFORE PAYING" rather than silently racking up time; shifts over 16 hours are flagged too.
  • Live punches use the server's clock, so changing a phone's time does nothing.
  • Offline punches that sync with a wrong device clock are auto-corrected and flagged for review.
  • Brute-force lockout protects the 4-digit PINs.

The build

Built on Node.js and Express with a clean vanilla-JS PWA front end and a simple file-backed datastore — deliberately lightweight so it runs on a cheap Node host with a persistent disk. Branded end-to-end in GEO Electrical's identity.

The outcome

The crew clocks in from their pocket in seconds, every punch is stamped with a place and a trustworthy time, and payroll goes from a chase-up to a single CSV download.

A different shape of project entirely — not a marketing site but a working tool — held to the same Pixrweb bar for speed, clarity and craft.

Got something to build?

Tell us about the project. We'll come back within one working day with honest thoughts on scope, timeline and budget — no hard sell.