Skip to content

Logistics

On-Demand Freight Platform: Customer, Driver & Admin

Job board dispatch, distributed locks against double-booking, an order state machine and auditable cancellation and refund rules across time zones.

LiveLogisticsLarge projectiOS / Android App · PC
Client
Star X Tech (Australia)
Industry
Logistics
Platforms
iOS / Android App · PC
Scale
Large project · 2026

01Background

Star X Tech runs on-demand delivery, moving and errand services in Australia for individuals and small businesses. Jobs used to be dispatched by phone with vehicles matched by gut feel; customers couldn’t see how prices were built or where their order stood, and cancellation and refund disputes were settled off-platform. The client needed customers, drivers and operations on one connected system, with matching, pricing, status and settlement all on record.

Client
On-demand freight and moving platform, Australia
Users
Customers, drivers, operations staff
Services
Delivery, errands and moving; scheduled and on-demand
Platforms
iOS / Android apps, web admin console

02Challenges

1Missed jobs

Phone dispatch and guesswork on vehicle type meant jobs slipped through at peak times.

2Opaque pricing

Customers couldn’t see how distance and loading fees were calculated, so disputes were common.

3No order visibility

Many steps from booking to final payment, and neither customers nor ops could see progress.

4Untracked cancellations

Cancellation fees and refunds were negotiated case by case, with no rules or records.

On-demand freight needs fast matching, clear prices and full tracking, which phone calls and spreadsheets can’t deliver.

03Solution

Shanku delivered a customer app, a driver app and a web admin console on a single Spring Boot backend that owns the full order lifecycle. Redis locks handle concurrency, a state machine governs transitions, and every cancellation and refund is calculated by rule and stored.

Open job board

Once the deposit is paid, the job is broadcast to eligible online drivers, and the server accepts the first valid claim.

Distributed locking

A per-order Redis lock plus a fresh status check guarantees each job goes to exactly one driver.

Order state machine

All valid transitions, from awaiting payment through completed, cancelled or refunded, are defined in one place; invalid ones are rejected.

Tiered cancellation rules

Scheduled jobs are charged by time to service, on-demand jobs by time since acceptance; no self-service cancel once the driver sets off.

Tiered refunds

Fee-free cancellations on paid orders refund automatically; anything with a fee or a failed payout goes to ops.

Time zones handled

Times are stored in UTC and shown in each user’s local zone, with daylight saving applied by zone rules.

04Core workflow

Order lifecycle

  1. 1

    Quote

    Pick addresses and vehicle; see price, apply coupon

  2. 2

    Deposit

    Order enters the job board on payment

  3. 3

    Claim

    Broadcast to drivers; first valid claim wins

  4. 4

    En route

    Driver navigates; customer tracks live

  5. 5

    Delivered

    Driver uploads proof of delivery

  6. 6

    Final payment

    Customer settles balance; order completes

  7. 7

    Review

    Rate the service or raise a dispute

Key stages auto-cancel on timeout and orders freeze while a dispute is open; a driver can withdraw within 5 minutes of accepting, and the job returns to the board.

05Results

No double bookings

Locks handle concurrency and the state machine enforces rules, so each order has one writer at a time.

Auditable cancellations

Each cancellation stores role, reason, amount paid, refund, fee and the formula used, ready for any complaint.

Safer refunds

Only fee-free cancellations refund automatically; everything else is confirmed by ops first.

Time zones done once

UTC in storage, user-zone conversion on output; new endpoints need no time handling of their own.

06Screens

Admin cancellations and refunds
Driver job board
Customer order tracking

Screens are prototypes or rebuilt with sample data. They contain no real client data, amounts or accounts.

07Tech stack

Backend
Spring BootSpring StateMachineMyBatis-FlexJWT
Data & cache
PostgreSQL (timestamptz)Redis / Redisson locks
Mobile
Cross-platform framework for iOS / AndroidGoogle Maps
Admin console
VueModular admin framework

Facing a similar challenge?

See how we work together: from requirements and prototypes to launch and handover, every step is spelled out in advance.