TMS platform for a freight company
Challenge
A freight company with 10+ dispatchers tracked loads in Excel and Telegram. New loads, status updates, invoicing — all done manually via messengers. No single source of truth: who's carrying what, who to invoice, how much was earned this week. Dispatcher payroll was calculated by hand every week, with inevitable errors.
What was built
A TMS platform built from scratch on Yii2/PHP — 13 modules covering the full operational cycle from load intake to payroll.
Dispatch Board
weekly board with date navigation, grouping by dispatcher and 23 data columns per row. Filters by load type, status and dispatcher. Inline search across the full table.
Load Detail Page
full load card with inline editing of every field, file manager (POD, BOL, invoice uploads), notes and a full change history log.
Billing Board
complete invoicing workflow: unbilled → ready → billed → paid. POD upload automatically moves a load to 'ready' and fires a dual notification (Telegram + in-app bell).
PDF Invoice Generation
automatic PDF invoice generation via dompdf using a branded template with broker details and load breakdown. One-click attach and download.
Accounts Receivable
invoice list with balance per broker, payment recording, 30/60/90-day Aging Report, Customer Statements PDF generation.
Payroll Module
weekly periods with lock/approve, individual rates per dispatcher, adjustments with notes. Payment log: who paid, when and with what comment.
Dispatcher Dashboard
personal dashboard with ApexCharts: KPI cards (week/month), Today (today's pickups and deliveries), Upcoming Pickups (next 3 days), Top Brokers by revenue, Action Items — RC Missing loads.
Finance Dashboard
admin-level analytics: weekly revenue, broker margin, dispatcher activity. Restricted to Admin and Billing roles only.
Owner Drivers
management of owner-operators: CRUD, load assignment, separate payroll calculation. Section access gated by role.
Direct Trip
separate load type (direct haul without cross-dock). Board icons, header filter, dedicated status flow.
Cross-dock Management
transshipment tracking: status history tabs, in/out monitoring, drag-reorder by priority.
Loadboard Integration
autofill carrier and cost by PRO#: the system searches the shared loadboard DB on number entry and offers one-click field population.
User Management
4 roles (Admin, Carrier, Dispatcher, Billing) with role-gated access to every section. User CRUD with dispatcher-to-load assignment.
Result
Excel fully replaced by a single platform. Dispatchers see all loads in real time without switching to Telegram. Billing automatically tracks payment status per load. New dispatcher onboarding reduced from a week to one day.
Tech stack
Have a similar challenge?
Discuss a projectNext case
System development
Fleet management system →