Repair workshop management: from the field to the invoice
Field intake, workshop tracking, scheduling and invoices synced with the ERP.
Key figures
- applications
- 2
- lines of code
- ~19,500
Context
A distribution and services SME runs a repair workshop for motorised equipment. Every repair involves an intake, labour time, parts, technician scheduling and an invoice, to be tracked end to end.
My role
From design to deployment of both applications, fully autonomously.
Solution
The field app handles equipment intake, with a form driven by configuration served by the backend. Photos are taken with the rear camera and compressed to ~50 KB, and a customer signature is mandatory.
The workshop back office centralises tracking: a repairs grid, a labour time tracker, parts and pricing, a printable calendar and a per-technician workload view. Service invoices are synced with the ERP, and the schedule with Google Calendar.
Key features
Server-driven intake
The field form is described by server-side configuration rather than hard-coded in the app.
Compressed photos, mandatory signature
Photos are taken with the rear camera and compressed to ~50 KB, and no intake is complete without the customer's signature.
Time, parts and pricing
A labour time tracker restored from the server, alongside the parts and pricing of each repair.
Scheduling and technician workload
A calendar printable as PDF, a per-technician workload view and Google Calendar sync.
Engineering challenges
- 1
~110 centralised API functions
Every API call goes through a single layer instead of being scattered across screens.
- 2
Dual authentication mode
Legacy or SSO, switchable through an environment variable, with role-based access control.
- 3
OAuth re-consent handled
The Google Calendar integration handles the case where OAuth authorisation must be granted again.
- 4
Robot scope split out
Robot-related features were extracted into a dedicated application, removing 6,000 lines from the workshop app.
Tech stack
- Frontend
- React 18TypeScript strictMUI 6AG Grid 33Redux ToolkitReact Router 7
- Integrations
- @react-pdfGoogle APIs
A project of this scale?
Let's talk about your context: I'll tell you frankly what is feasible, and how long it takes.