Offline fire inspection is a synchronization problem with evidence requirements
A field inspection app cannot assume stable connectivity, correct device time or immediate access to every backend dependency. At the same time, measurements, GPS evidence, photos and technician decisions may later become part of a protocol or audit trail. The architecture must therefore preserve local work safely and make synchronization deterministic.
1. Create a local inspection session with server identity
Before field work starts, download the assigned work order, asset snapshot, checklist definition and a server-issued inspection/session ID. The mobile app can then append observations against that identity while offline. Avoid inventing a second independent inspection record locally and attempting to merge it later.
2. Store device time and server time separately
For each measurement or observation keep the device timestamp, timezone/offset and synchronization metadata. When the server receives the event, add server-received time. Never "fix" history by overwriting the original timestamp. If the device clock is wrong, the evidence trail should still explain both values and allow policy to decide which one is displayed or used for validation.
3. GPS is evidence, not the asset identity
Location can support the claim that work occurred near a site, but GPS may be unavailable or inaccurate indoors. Store latitude/longitude, accuracy, capture time and permission/source state as an evidence record. Link it to the inspection session or observation; do not use coordinates as the canonical location of the hydrant or extinguisher.
4. Measurement-device data needs provenance
When a measurement comes from connected hardware, preserve device identifier, firmware/protocol context if available, raw value, normalized unit, capture time and transport/source. A manual correction should not replace the original device event. Create an amendment with actor and reason.
5. Use an append queue with idempotency
Offline writes should enter a local durable queue. Each mutation gets a stable client event ID or idempotency key. When connectivity returns, the server can acknowledge events without creating duplicates if the app retries after a timeout. The queue state should distinguish pending, sent, acknowledged, rejected and needs repair.
6. Resolve conflicts by domain rule, not last-write-wins
| Conflict | Safer rule |
|---|---|
| Two technicians edit the same note | Preserve versions or create an explicit merge task |
| Asset moved while offline | Keep inspection against captured asset snapshot and flag location change |
| Measurement repeated | Keep both events and mark which is accepted |
| Protocol already finalized | Require amendment/reopen workflow |
Last-write-wins is convenient for UI preferences; it is dangerous for audit evidence.
7. Generate the PDF only from synchronized canonical state
The technician can preview a draft offline, but the final protocol should normally be produced after required mutations are acknowledged and validation passes. The server composes the protocol from the canonical inspection version, measurement set, findings, evidence attachments and template version. That prevents a PDF from containing values that never reached the database.
8. Make repair states visible
If one photo failed to upload or a measurement violates schema, do not mark the whole inspection as silently complete. Show exactly what remains unsynchronized and allow targeted retry or correction. A supervisor should be able to see "field work complete / synchronization incomplete" as a distinct operational state.
9. Secure offline data intentionally
Minimize downloaded customer data, encrypt platform storage where the operating system allows it, expire local sessions, protect tokens in secure storage and delete cached inspection packages after a retention window. Offline support expands the data boundary to the technician device and must be included in the threat model.
10. Production proof from fire-safety field operations
In Softech's TECHPRES work, field measurements, GPS/location context, service orders and generated protocols belong to one operational graph. The durable pattern is reusable: capture evidence locally, synchronize with explicit identity and provenance, then generate customer/audit outputs from finalized canonical state. For implementation, see Fire Safety & Inspection Software Development.
Offline inspection checklist
- Server-issued inspection/session identity before field work.
- Device and server timestamps preserved separately.
- GPS with accuracy/provenance, never as canonical asset identity.
- Measurement-device events kept immutable with amendments.
- Durable local queue and idempotent server writes.
- Domain-specific conflict resolution.
- Visible repair/synchronization states.
- Final PDF generated from synchronized canonical inspection state.
