Data sources and offline mode
The system can work against three different stores and switch between them on the fly, without reloading the page. The switch is in User menu → Data source.
The section hint reads: "Switches storage for the whole app, instantly."
The three sources
| Source | Description | When to use it |
|---|---|---|
| Local sample data | "Explore the app with built-in demo data. No network." | Learning the system, training, demos |
| Local database | "Reads a local mirror; edits queue and sync when online." | Unreliable connectivity, field work |
| Live API | "Talks directly to the backend. Requires connectivity." | Normal production use |
The active source carries a checkmark. Switching applies to the whole application at once: every open list, map and card refetches from the new source.
Local sample data
A built-in demonstration dataset. The network is not used at all.
It suits operator training and showing off what the system can do: you can create and delete objects freely without touching real records.
Changes in this mode are not stored anywhere and are lost on reload.
Local database
The system keeps a copy of the data in the browser and reads from it. That gives instant response and keeps you working on a poor connection.
The change queue
Any change in this mode:
- Applies immediately to the local copy — you see the result at once.
- Queues for sending.
- Goes to the server as soon as connectivity returns.
The system tells you so: "This change is queued and syncs when you're online."
Queue status
Right in the user menu, below the source switch, the queue reports itself:
| Message | Meaning |
|---|---|
| Outbox empty · all synced | Nothing is pending |
| 3 queued | Three changes waiting to be sent |
| … · syncing | Sending is in progress |
| … · 1 retrying | One send failed and will be retried |
Sync now forces a send instead of waiting for the automatic cycle.
Do not close a tab with a non-empty queue on a device you will not turn on again: changes live in the browser until they are sent successfully.
Live API
The application talks to the server directly. A live connection is required.
This mode is mandatory for features that only work against a live server:
- Live video — otherwise "Live video needs the API data source";
- Assigning public-transport routes — otherwise "Assigning a route requires the Live API data source."
Telling which source is active
Besides the checkmark in the menu, there are indirect signs:
- the Edit & media block on the camera page states where writes go: "Writes route to the “Live API” source";
- trying to play video on a local source shows a prompt to switch to the API;
- the change-queue indicator appears only in local database mode.
Typical workflows
Training a new operator. Switch to Local sample data — they can try anything, including deletion, without consequence.
Working where reception is poor. Switch to the Local database. Make changes as usual; the queue drains by itself once connectivity returns. Before the end of the shift confirm the status reads Outbox empty · all synced.
Video is not playing. Check the source: live streams require Live API.