Admins
Super admin & office admin- Create, edit and assign parcels
- Review failure notes and decide retry or return
- Correct status or rider with a recorded reason
- Build settlements and rider payouts
Parcel delivery management · Yangon
A full-stack app for a small courier: log parcels as they arrive, assign riders, track every kyat of COD and delivery fees, and turn delivered parcels into merchant settlements and rider payouts.
Portfolio project · Demo data resets daily
Background
Parcel Flow was designed for a delivery business my sister was planning to start in Yangon. I modeled it on how small local couriers work: pickup arranged on Telegram, cash on delivery, township-based fees, and weekly settlements with merchants. The business plans changed, so it’s now a source-available portfolio project.
How it works
Pickup happens on Telegram, outside the app. Parcel Flow takes over the moment a parcel reaches the office, and records every change after that.
Pick the merchant, enter the receiver and township. The delivery fee fills in from township pricing, and a PF code is issued.
Office adminSee each rider’s expected collection for the day before handing over more parcels.
Office adminRiders start delivery from their parcel cards and record the COD and fee they actually collect.
RiderDelivered parcels become financial items, eligible for the next merchant settlement and rider payout.
Rider or adminDelivery failed? The rider leaves a note, an admin reviews it and schedules a retry — the parcel goes back to At Office.
Won’t be retried? It’s routed for return handling until it is Returned to Merchant.
Live demo
Pick a role — each one sees a different app. One click signs you in to a pre-seeded demo account.
COD & payouts
Every delivered parcel produces financial items. Settlements and payouts are built from them — nothing typed in twice.
Collected, not collected, deducted from merchant or waived — each parcel carries its own fee and COD state.
Bundle eligible financial items into a settlement. A super admin marks it paid with the bank transfer receipt.
Pay riders per payable delivery attempt and merchant-return way, drafted and confirmed in one place.
How it’s built
Every parcel moves through defined statuses with allowed transitions per role. Manual corrections require a recorded reason.
Status changes appear on admin, merchant and rider screens without a refresh, scoped by row-level security.
Delivered parcels generate financial items; settlements and rider payouts are built from them, so nothing is entered twice.
Three roles with scoped views and permissions, enforced on the server, not just hidden in the UI.
PF-XXXXXX-XXXXXX codes, unique in the database, easy to read out over the phone.
Delivery fees come from township settings, so no one quotes from memory.
Unit, integration and Playwright end-to-end tests, plus query performance baselines.
Try the live demo — no sign-up needed. Sample data resets every day.