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
01Plan a delivery route
Where a round starts: add the day's stops and build the route.
02Paste addresses in bulk
Paste the day's addresses, one per line. Each is looked up on Google Maps, including incomplete ones.
03Allow location access
The app asks for the phone's location so the route starts from where the worker actually is.
04Route sorted furthest-first
Every stop on the map, numbered furthest first from the worker's position.
05Mark delivered, failed or undo
Mark stops delivered or failed as you go, with undo for a wrong tap.
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
- Website Landing pageA landing page for thrifted.af, a thrift clothing drop brand -- presents a "Drop Archive" catalog with tag-based pricing (RM5/RM10/RM20), polaroid-style product photography, a grid-to-detail browsing flow, and an access-gated reveal, in a warm cream, flat paper-like aesthetic with no gradients or shadows.
- Marine Procurement & Approval System (Odoo 19)A custom Odoo 19 module pitched as a working prototype to a Malaysian offshore marine operator, closing the four gaps standard Odoo left in their project-to-payment workflow: purchase requisitions that turn into orders line by line (with no vendor field, so the requester states the need and procurement picks the supplier), a limits-of-authority approval matrix that routes each requisition and purchase order to the right approvers by amount and OPEX/CAPEX, service acceptance so services like hull-cleaning dives can only be billed once confirmed as performed, and a vessel register with per-vessel and per-project cost tracking on a custom dashboard. Every step of the workflow was tested end to end, logged in as each role. Shown here with fictional demo data.
Want something like this built?
Tell me what your business needs and I'll suggest the simplest way to build it.