Your work.
Your safety.
Sign in to your municipality to see assigned work. Every dispatch is approved by a human.
Crew sign-in
Sign in with municipal SSOSSO is disabled until your municipality configures its identity provider.
Pair this device with a supervisor
A supervisor supplies a one-use code, pairing ID and municipality ID. The code expires in 10 minutes. Paired access remains in this browser tab until its expiry. It is verified online before sync; closing the tab requires sign-in again. No credential enters IndexedDB or the service worker.
Synthetic crew walkthrough
This is an unverified identity and synthetic work. It never notifies a live provider.
My jobs
Know the hazards. Check your PPE. Keep the control room informed.
Location sharing is optional.
Offline outbox 0
Job updates retry in order with the same operation ID. Changed jobs require your review. Location is never queued or collected offline.
Shift & consent
Your location is shared only while on shift and with your explicit consent.
Your shift
No active shift.
Starting a shift does not start location sharing. A server-confirmed shift is required; offline shift starts are unavailable.
Sharing in this page
The web app requests location only after you choose Start sharing. It stops when you hide or close the page, go offline, end your shift, withdraw consent, or reach the shift limit. Returning to the page requires another explicit start. Browser location permission is separate from municipal consent.
No location requested.
Settings & privacy
Language
English is complete. Afrikaans and isiZulu use partial, machine-drafted labels with English fallback; native-speaker and municipal notice review are pending.
Use your browser's Install app or Add to Home Screen menu when available. HTTPS or localhost is required.
My location history
Only your own retained on-shift pings are available here. Access and export are audited. Supervisors cannot use this screen to inspect another worker.
Offline data on this device
Assigned jobs are cached for at most 24 hours. Unsent job notes, status changes and metadata-stripped photos expire after 7 days. Private data is scoped to your municipality and worker and cleared at sign-out or loss of authorisation. No token or worker location ping enters IndexedDB or the service worker. Paired access uses tab-scoped sessionStorage, clears on sign-out/auth loss/expiry, and is verified online before sync. Use a device lock and your municipality's MDM policy.
Work evidence is for completing approved jobs. Avoid names, identity numbers, people and sensitive personal details in notes and photos. Photos are re-encoded on this device and always omit EXIF/GPS metadata; this web fallback does not preserve per-photo GPS metadata.
SOS
CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.CivicOps SOS alerts your municipality's control room. In a life-threatening emergency always call 10111 (police), 10177 (ambulance/fire) or 112 from a cell phone.
A named authorised human decides every safety and dispatch action. This app never calls emergency services for you.
Alert the control room
Hold the button for 3 seconds to prevent an accidental trigger. You can cancel for 10 seconds after sending. Location is requested only after SOS and expires after 30 minutes or when the alert is resolved.
No SOS alert active.