All projects
Completed

Postage & Delivery Route Optimizer

A route-planning web app for postage and delivery workers that geocodes real-world addresses -- including messy, incomplete, or abbreviated Malaysian address formats -- and plans delivery routes, with clear reporting when an address cannot be located.

Duration
2 weeks

Built with

  • React
  • TypeScript
  • Vite
  • Google Maps API

The problem it solves

A delivery worker starts the day with a long list of addresses, many of them messy, abbreviated or incomplete, as Malaysian addresses often are. Planning the round by hand is slow, and map apps either can't find these addresses or quietly drop them.

Who it's for

Couriers, postal and parcel delivery workers, and small businesses that run their own deliveries.

What it does

  • Paste addresses in bulk

    Add a whole day's stops at once, one address per line, straight from a manifest or a chat.

  • Forgiving address matching

    When an address doesn't match as written, the app retries with parts trimmed from both ends, and flags anything found that way as low accuracy to double-check.

  • Nothing silently dropped

    Addresses that still can't be found are listed clearly, so no parcel is forgotten.

  • Furthest-first route

    Starting from the phone's location, stops are ordered from furthest to nearest, so if the round has to end early, the trip back keeps getting shorter.

  • Work the round

    Mark each stop delivered or failed, undo mistakes, re-sort from where you are now, and carry on after closing the app.

  • Free-tier safety panel

    Counts this month's map and address lookups so usage stays inside Google's free allowance, backed by a billing alert.

  • Install on a phone

    Works in the browser and can be installed like an app, and the same build is packaged as an Android app.

How it works

6 steps

  1. 01Plan a delivery route

    Where a round starts: add the day's stops and build the route.

  2. 02Paste addresses in bulk

    Paste the day's addresses, one per line. Each is looked up on Google Maps, including incomplete ones.

  3. 03Allow location access

    The app asks for the phone's location so the route starts from where the worker actually is.

  4. 04Route sorted furthest-first

    Every stop on the map, numbered furthest first from the worker's position.

  5. 05Mark delivered, failed or undo

    Mark stops delivered or failed as you go, with undo for a wrong tap.

  6. 06API usage safety panel

    The usage panel: this month's map and address lookups against the free-tier limit.

How it's built

  • React 19 with TypeScript and Vite, using the Google Maps JavaScript API for the map and address lookups. Installable as a web app, and packaged for Android with Capacitor.
  • No server and no accounts: the route, failed lookups and monthly usage are kept on the phone itself.
  • The Maps key is locked to the app's own addresses, including the Android app's, so it can't be reused elsewhere even though there's no back end to hide it.
  • Updates use a clear 'new version' prompt, after automatic updates left some phones stuck on old code.
  • Bugs were tracked down on a real Android phone by connecting the desktop browser's developer tools to the app running on the device.
  • Stops are ordered by straight-line distance on purpose: it's a delivery strategy, not turn-by-turn navigation.

What this shows I can build

  • Web apps and systems

    Built for how your business runs, like inventory, booking and reporting, usable from any device.

More projects

Want something like this built?

Tell me what your business needs and I'll suggest the simplest way to build it.

Get in touch