The context
Technicians work on sites where mobile coverage is unreliable — basements, industrial zones, building sites. Existing fleet-management tools are designed for a desk: heavy on mobile, unusable without a network, and they require a password nobody wants to type on a phone screen wearing gloves.
The app sits on top of the fleet-management software already in place rather than replacing it: it consumes its data and adds the missing field layer — interventions, time tracking, daily allowances and quality checks.
What I built
Intervention management
assignment, categories, task checklists, before/after photos, full history per piece of equipment.
Time tracking and daily baskets
time and allowances captured through the day, consolidated on the admin side.
Quality audits
rating grids completed on site, tracked over time.
Fleet and equipment
inventory, map location, linked interventions.
Configurable imports
Excel/CSV ingestion with user-definable column mapping, no technical intervention required.
Back-office
users, roles, categories, activity log, print views.
Push notifications
new assignments and reminders delivered straight to the phone.
Architecture & technical decisions
The defining choice was a PWA rather than a native app. The phone fleet is heterogeneous, and going through app stores would have imposed a review cycle on every bug fix for a small user base. A PWA installs from a link, updates instantly, and works offline through a service worker.
Authentication uses magic links: the technician receives a link, taps it, and the session opens. No password to remember or reset — which removes the single biggest source of support tickets for tools like this.
The API is versioned from day one (/api/v1): an app installed on phones does not update in lockstep, so the contract has to evolve without breaking clients still in circulation.
Authorisation is defined server-side through access policies and replayed on the client using the same rule grammar, so the interface never offers an action the server will refuse.
Technical challenges
Offline operation. Application-level caching and a dedicated fallback page keep the app usable with no network, then resynchronise on reconnection.
Bridging existing software. The app integrates with a third-party fleet-management system: its data model had to be absorbed without duplicating or contradicting it.
Three roles, three interfaces. Administrator, manager and technician have neither the same screens nor the same rights, within a single codebase.
Unpredictable imports. Supplied files are never twice the same shape: hence a configurable column-mapping system, with an import log and the ability to replay.
Field ergonomics. An interface designed for one-handed outdoor use, with large touch targets and a short data-entry path.