Skip to main content
EN ID
// CASE STUDY // FIELD OPERATIONS

Fleet & Field Canvassing Tracker

Our internal product for tracking field canvassing trips: offline-first GPS capture on mobile, a durable ingestion pipeline, a live supervisor map, route anomaly detection and Odoo integration.

Industry Field Operations
Engagement Internal product
Tech Stack Go, NATS JetStream, PostgreSQL + PostGIS, Flutter, Vue + Leaflet, Python (FastAPI), Odoo 19

// Outcomes

  • GPS points survive app crashes and dead zones: the phone only discards them after the server confirms storage
  • Supervisors follow active trips live on a map
  • Trips are scored for route anomalies by a separate analysis service

The Problem

Teams that send people into the field (sales canvassing, deliveries, visits) need to know where trips actually went. The hard part is not drawing a map; it is making sure location data from phones with patchy coverage is never silently lost, and that suspicious routes stand out.

What We Built

  1. Flutter driver app that records GPS into a local database, filters out negligible movement on the device to save battery and bandwidth, uploads in batches, and deletes buffered points only after the server confirms they are stored. Points carry the OS mock-location flag.
  2. Go ingestion API that validates each batch and publishes it to NATS JetStream, acknowledging the phone only once the message is durably stored. A separate writer consumes the stream and writes to PostgreSQL + PostGIS; writes are idempotent, so retries never create duplicates.
  3. Supervisor dashboard in Vue with Leaflet maps, receiving live updates over WebSocket.
  4. Route anomaly service in Python (FastAPI) that scores trips for unusual patterns.
  5. Odoo 19 integration over XML-RPC, including employee synchronization, plus single sign-on through an OIDC identity provider alongside email/password login.

Architecture & Stack

  • Go (chi, pgx) services: ingest API and stream writer.
  • NATS JetStream between ingestion and storage; PostgreSQL + PostGIS for spatial data.
  • Flutter (Riverpod, Drift/SQLite) mobile app; Vue + Vite + Leaflet dashboard.
  • Python + FastAPI anomaly service; Odoo 19 via XML-RPC.
  • Integration tests against real PostGIS and NATS using Testcontainers, an OpenAPI contract checked in CI, and Docker Compose for local infrastructure.

// System Screenshots

Fleet & Field Canvassing Tracker — system overview

Have a similar project in mind?

Discuss your architecture and delivery timeline directly with our engineers.

Discuss your project →