Full replacement of a field-operations system — with a mobile app and no app stores
An aging cloud system with a separate native Android app, replaced by a single modern .NET system with a field PWA — push notifications, offline mode and camera included. Core development took 12 working days.
- 12 working days of core development
- 38,000+ equipment units migrated
- Push and offline on iPhone and Android
- 1 system instead of 3
The client
An equipment rental company with offices in two countries and over 200 employees — dispatchers in the offices, drivers and mechanics in the field.
The challenge
Daily operations ran through three separate systems: a web application for dispatchers, a separate native Android app for field workers, and a cloud database with ever-growing monthly fees. The app could not evolve — every change required a mobile specialist, publishing through Google Play and days of waiting. iPhones were not supported at all.
The company wanted one system it could maintain cheaply on its own — without risking the daily operations of dozens of offices during the transition.
The approach
Prove the risky part first. The most common argument against web-based mobile apps is "push notifications don't work on iPhone". So we started with a prototype that proved the opposite — on real devices, before writing a line of the actual system.
Then describe the old system screen by screen. We produced a full specification of the existing app — every screen, every status, every behavior — and turned it into a checklist. The rule was simple: the first release must be indistinguishable for its users. No "improvements" that confuse people used to the old ways. New features were built in, but hidden — to be switched on after the transition.
Then build the new as one whole. A single .NET system serving both the dispatch office and the mobile app. The mobile side is a PWA — installed from the browser like a normal app, but with no app stores, no publishing fees and no waiting: every new version reaches all phones instantly.
The PWA has everything the native app had — and more:
- Push notifications on new tasks, verified on real iPhone and Android devices;
- Offline mode — tasks can be viewed and completed without coverage (common in field work), and actions sync automatically when the connection returns;
- Camera and GPS — photos attached to reports straight from the app, coordinates recorded on every status change;
- the full catalog of 38,000+ equipment units, searchable even without internet.
The result
- Core development took 12 working days — a full replacement of the dispatch system, the mobile app and the data migration.
- 38,000+ equipment units, 200+ users and the full archive (close to 20,000 task photos) migrated with automatic count validation against the old database.
- One system instead of three — one server, one database, one codebase. Maintenance no longer requires a mobile specialist.
- iPhone support for the first time — without writing a separate app.
- A ready foundation for what's next: an assistant that answers questions from the machines' OEM manuals is already built in.
The key decision wasn't technical but procedural: the first release replicates the old system one-to-one so the transition carries no risk — and the new capabilities are switched on only after it.
Technology
.NET 10 · ASP.NET Core · MariaDB · PWA (service worker, IndexedDB) · Firebase Cloud Messaging