Sări la conținut
    Back to blog
    June 13, 2026 4 min read Stefan

    Mobile app for field workers: offline weighing

    An installable PWA that works fully offline, so field workers can weigh waste materials right at the source, signal or not.

    #vanagreen
    #mobil
    #offline
    #teren

    A lot of waste collection happens in places where an internet signal is the exception rather than the rule — industrial yards on the edge of town, underground storage, rural areas. The requirement from operators was simple to state but not trivial to build: field workers need to be able to weigh and record materials even with no signal at all, and the data needs to make it into the system on its own, without them having to think about it.

    What showed up on the phone

    The result is an app installable straight from the browser, no app store involved — a link sent over WhatsApp or email, opened once, "Add to Home Screen," and from then on it behaves like any native app. There's no separate account to manage — it uses the existing login, with a dedicated role (mobile) that sees strictly what's needed in the field, nothing else from the rest of the application.

    The workflow is built for thumbs, not a mouse: the worker picks the source company (search or list), taps large, color-coded buttons for each waste type, enters the weight on a generous numpad, watches the running total update live, and taps "Submit." For WEEE (waste electrical and electronic equipment) and batteries, a stepper also appears for unit counts, since what matters there is the number of units, not just the weight.

    The operator controls exactly what shows up on the phone from Settings → Waste types — a "Mobile" toggle per material, plus a short label, color, and display order. That keeps the phone screen clean: the worker only sees materials relevant to their job, not the entire catalog.

    How the "no signal" part works

    This was the technically demanding part of the project. The app stores locally on the phone (IndexedDB) everything it needs to work offline: the list of sources, the list of waste types enabled for mobile, and every completed sheet still waiting to be submitted. If the worker taps "Submit" with no signal, the sheet isn't lost — it stays queued, visible in "History" with a "pending" status, and it's sent automatically to the server the moment the phone gets internet back, with no further action needed on their part.

    A single sheet can contain materials from different flows (for example WEEE and metal, handed over by the same source in the same visit). On sync, the system automatically splits it into a separate entry per flow — because document numbering and flow-specific rules are tied to the waste type, not to the physical visit. Actual document numbers and PDF generation stay exclusively on the server, assigned only once the operator finalizes the intake — the field only collects the raw data.

    For materials that don't fit the standard catalog, there's an "Other" row — the worker logs what was collected, and a dedicated section appears for the operator to pick the actual waste type from the catalog and assign it correctly, without holding up the handover in the field until things get sorted out.

    What this means in practice for an operator

    Before this module, weighing at the source meant either paper and manual re-entry into the system later — with all the transcription-error risk that implies — or ad hoc notes on a phone. Now, the field worker generates structured data directly, and the operator sees it on the list with a "From the field" badge, with a dedicated origin filter. The difference between an entry collected at the office and one collected in the field stays visible and auditable.

    On data protection, the app is built to keep as little as possible on the phone: at logout, all local data is wiped completely (cached sources, queued sheets), and individuals are excluded from the data available on the device — only companies can be picked as a source from the phone. Documents containing personal data continue to be generated exclusively on the server.

    A quick round of refinement

    A day after the initial launch, field feedback led to a natural addition: not every collection comes from a company that's already on file — sometimes the source is an individual, a household, a collection center, or a campaign. The app got a source-type selection step, with quick-create options for "New company" or "New individual" right from the field (flagged "To complete," so the operator can fill in the rest of the details later, from the office), plus quick tare buttons for pallets — the worker no longer has to calculate net weight by hand.

    Want to discuss how this applies to your process?

    Schedule a technical audit

    Related articles