App Development

Field Operations

A safari tourism operator in East Africa (confidential client) runs its daily operations in remote areas with no reliable signal. We built the Flutter app for its pilots and ground crews: manifests, passenger checks, load planning and sign-offs, all of which work offline and sync later.

Technologies
Flutter Local Notifications REST API
Industry Luxury Tourism / Field Operations
Location East Africa
Client Confidential
The Problem

The Challenge.

The operator's crews start work before dawn, often far from any mobile signal. Each morning they need the passenger manifest, have to verify passenger details and plan how weight is distributed, then capture sign-offs before departure.

Manifests hold sensitive data: weights, permits, dietary needs and medical notes. Sign-offs need trustworthy timestamps, because they form the operational record, and a device clock that has been changed, or reset by an offline reboot, can't be relied on.

Then there is a hard deadline: completed records must reach central operations before a fixed late-morning cutoff every day, whether or not the crew has found signal by then. It also had to use the existing backend.

Our Strategy

Our Approach.

Our scope was the Flutter app for Android and iOS phones and tablets. It connects to the operator's existing backend over REST APIs; the backend itself is not our work.

We designed every critical workflow to run offline first. Data is stored on the device, and changes queue locally until a connection returns.

For sign-off timestamps, the app combines network time with the device's native monotonic clock. This lets it detect a changed device clock and certain offline reboots that would otherwise distort when a signature was captured, even with no connection.

The Journey

The Solution.

Each morning, crews open a manifest that is already on the device, with no signal needed to start the day's work.

The manifest shows passenger counts, pickup points, permits, dietary and medical notes, and crew assignments. A visual load planner lets the pilot arrange passengers and check the weight balance on screen before departure.

Pilots capture hand-drawn digital signatures, stored offline with validated timestamps. Authorised users can correct passenger names offline, and every change waits in a local queue until the device can sync.

Local reminders prompt crews to connect before the daily cutoff. Screens with passenger data block screenshots, and over-the-air updates deliver fixes without a full app store release. Layouts adapt to phones and tablets.

The Outcome

The Results.

✓
Works Offline

Manifests, passenger checks, load planning, sign-offs and passenger corrections all work without signal in remote field locations, then sync when the device reconnects.

✓
Trustworthy Sign-Off Times

Network time plus the native monotonic clock lets the app spot a changed device clock and certain offline reboots that would distort a timestamp.

✓
Passenger Data Protected

Screenshot blocking on manifest screens reduces the risk of sensitive passenger weights, permits and medical notes leaving the device.

✓
Built-In Cutoff Reminders

Scheduled local notifications remind crews to connect and sync outstanding records with central operations before the daily late-morning cutoff.

Roadmap

Future Growth.

The core app is built. The project is currently paused, and the next phase is planned for when work resumes with the operator.

That phase is offline maps: GPS tracking and waypoint visualisation that work without signal, partly built already. A waiver and check-in module is designed and waiting on the backend API it needs.

Both follow the same rule as the rest of the app: nothing a crew needs in the field may depend on a live connection, and nothing captured offline may be lost before it reaches central operations.