Dashboard
9- Period revenue with change vs last period
- Period invoices and invoices today
- Outstanding amount and unpaid count
- Petty cash global balance
- Average invoice, total clients, year total
Back office for a courier and logistics company: clients, invoicing, petty cash, pricing, email and monthly automation.
Overview: period revenue, outstanding invoices, critical alerts and collection rate
1 / 16What it does
All-in-one back office for a courier and logistics company: client directory, invoicing with SST and PDF export, petty cash ledgers, per-client pricing, bulk email and automated monthly billing. It replaced spreadsheets and manual chasing.
Period revenue vs last period, unpaid invoices with days overdue, collection rate, petty cash balance and recent activity, all on one screen.
Line items, automatic SST, printable views and PDF generation. Filterable invoice list and per-client statements.
Per-client top-up and usage ledger with billing-period statements on a 26th → 25th cycle, exportable to PDF and emailed on demand.
Every client has their own rate tables: dispatch, weekday/weekend services, government locations, plus bulk price groups by location.
Send invoices and petty cash statements directly, broadcast announcements with attachments, and see a full history of everything sent.
A scheduled job sends every client their invoice and petty cash statement automatically each month, and database backups go out by email.
SuperUser, Admin and Staff roles. Session timeout with warning modal, login logging, suspicious-login alerts and prepared statements throughout.
Full feature list
Grouped by module, so you can see how much a project like this actually covers.
Try the features
Each demo is a small, self-contained copy of one real feature from this project. Nothing is saved and nothing leaves your browser.
Period revenue vs last period, invoice counts, unpaid alerts and the revenue trend.
Try it: overview dashboard
Revenue
RM 48,920
+18.5% vs prevInvoices
37
Unpaid
6
Revenue trend
Mark invoices paid; the collection-rate donut and overdue alerts update live.
Try it: payment status
Line items, quantities, SST and totals: the core of the invoicing screen.
Try it: build an invoice
| Item | Qty | Amount | |
|---|---|---|---|
| Same-day dispatch: KL@ RM 18.00 | RM 216.00 | ||
| Next-day: Selangor@ RM 9.50 | RM 285.00 |
Invoices and petty cash for the period, as PDF, print view or email.
Try it: client statement
Maju Trading
26 Aug – 25 Sep 2026
| Invoices | |
| INV-0000231 | RM 1240.00 |
| INV-0000234 | RM 980.00 |
| Petty cash | |
| Top-up | RM 500.00 |
| Usage | −RM 222.50 |
| Invoices due | RM 2220.00 |
| Petty cash balance | RM 277.50 |
Top-ups and usage per client with a running balance for the billing period.
Try it: petty cash ledger (period 26 Aug → 25 Sep)
Balance
RM 277.50
Used this period
RM 222.50
Each client has their own negotiated price tables, with weekend surcharges.
Try it: per-client rate lookup
| Zone | Base | Maju Trading |
|---|---|---|
| KL city | RM 15.00 | RM 15.00 |
| Petaling Jaya | RM 20.00 | RM 20.00 |
| Shah Alam | RM 26.00 | RM 26.00 |
| Klang | RM 32.00 | RM 32.00 |
Maju Trading: 100% of base
Change a location price group once and it flows to every client on that group.
Try it: bulk rates by location
clients on a custom rate are left untouched
Subject, message and drag-and-drop attachments, sent to every client with an email address.
Try it: broadcast email
every send is written to the email history log
Scheduled run that emails every client their invoice and petty cash statement, lock-protected.
Try it: monthly auto-billing
Queued for the 26th
Everything sent: invoices, statements, broadcasts and backups. Filterable, with details.
Try it: email history
INV-0000231 · RM 1,240.00 · auto-send · 1 PDF attached
Interval and retention → next runs, copies kept, and an email per backup.
Try it: automated database backups
Next runs (Task Scheduler)
On disk + by email
30 copies kept
≈ 144 MB at 4.8 MB each
each run also emails the .zip via SMTP
Idle sessions get a warning modal, then a logged sign-out.
Try it: session timeout (sped up)
Your turn
Tell me what you run and what slows you down. I'll reply on WhatsApp within a day with what I'd build and what it would cost.