DispoTransPro
- Solo delivery
- Production
- Operations
- Laravel & Vue
Transportation operations, planning and dispatch
From a legacy single-user Windows application to a shared production operations platform.

From a queue around one machine to individual access across a shared web application.
- Responsibility
- Discovery, design, architecture, engineering and support
- Engagement
- Independent client work · Solo delivery
- Scale
- 42 buses · 71 drivers · 37 lanes
- Status
- In production since February 2024
At a glance
I independently designed, architected, built and supported the complete product — from daily dispatch to longer-trip administration — solo, in seven months of part-time work.
Confidential client work. The product is represented with original editorial imagery; no production interface, customer data or client-specific rules are shown.
Problem
A shared operation was trapped inside a single-user tool
The previous Windows application ran on one office computer. Staff reached it through Remote Desktop and had to take turns because only one person could work in it at a time.
Old practices had become operational dependencies. Driver identity lived in remembered colour codes, and dispatch information did not carry cleanly into the plans and documents people needed next.
Constraints
One company, two connected kinds of work
The replacement had to support recurring lane and dispatch work as well as longer trips with bookings, participants, seats, rooms and printable travel documents.
Those areas could not become disconnected mini-tools. The same people needed a coherent system that preserved historical records, controlled access by role and remained practical in daily use.
Responsibility
I carried the product from discovery into production
I was responsible for the whole product: learning the operation, defining the model, designing the experience, building the full stack, deploying it and supporting it after launch.
That ownership made the seams part of the job. Roles had to match real responsibilities, operational records had to stay intelligible over time, and exports had to follow from the work already entered instead of creating another manual process.
- Product discovery and workflow modelling.
- UX and interface design.
- Application architecture and full-stack implementation.
- Deployment, production support and continued improvement.

The system, drawn
One operating day, from empty grid to printed plan.
Five lanes, twenty-four hours, invented names — but the shape of the day is the real one: assignments land, track work closes a window, and the documents still follow.
An operating day opens: twenty-four hours by five lanes, nothing scheduled yet.
Assignments land — drivers and buses fill their runs in the order the morning demands.
Track work closes a window on one lane.
The run inside the window dissolves. The plan stays legal by construction.
From the schedule that remains, the working documents follow.
Runs inside a closed window are dissolved before they can be scheduled — an impossible choice is never offered. Documents are produced from data the office already entered, not from a second process.
Engineering work
One operational model, carried through to the documents people use
The product connects the decision made in the office with the schedule, booking record or printable plan needed afterward.
- 01Access
Give each person the right view
Individual accounts allow concurrent work while roles limit what each user can see and change.
Out of sight
- Authentication
- Roles and permissions
- 02Dispatch
Structure recurring operations
Lanes, dated drives, vehicles and drivers form one planning record.
Out of sight
- Operational relationships
- Schedule history
- 03Travel
Connect bookings to the journey
Participants, seats and room assignments stay tied to the trip they belong to.
Out of sight
- Booking records
- Seat and room allocation
- 04Produce
Generate the working documents
Confirmations, manifests and driver schedules follow from the same maintained data.
Out of sight
- Printable documents
- Spreadsheet exports
- 05Support
Own the product in use
Production support turns real operational feedback into focused improvements.
Out of sight
- Deployment
- Continued maintenance
Result
The operation moved from turn-taking to shared control
Around thirty people work with the system daily — five in the back office and twenty-five drivers. Individual accounts with role-matched access replaced turn-taking on one office computer. Named, connected records replaced remembered colour codes and preserve the history behind current planning.
The numbers since launch show the operation it carries: 37 scheduled lanes holding 125 drives, more than 3,000 rail-replacement drives over two years, and 12,000 schedule rows in 2026 alone. Sixty-five multi-day trips ran in the first half of 2026, each producing its seat plans, room lists, confirmations and driver schedules from the operational data already maintained in the system.
Highlights
- Concurrent work replaced the queue
- Around thirty people — five back-office staff, twenty-five drivers — work daily through individual accounts with role-matched access.
- Operational memory became explicit
- Named records, permissions and preserved relationships replaced knowledge held in colour codes and people’s heads.
- Dispatch and travel stay connected
- Planning, bookings, allocations and the documents used on the road live in one production product.
Technology
What it is built with
- LaravelThe operational domain, permissions, documents and application services.
- VueFast, focused interfaces for dense back-office work.
- InertiaA direct path between backend rules and the Vue experience.
- MySQLConnected operational and historical records.
- MeilisearchQuick retrieval across the records staff work with.
- Tailwind CSSA consistent interface designed around the operation.
Next step
Have a workflow that does not fit off-the-shelf software?
Tell me what needs to change. I’ll tell you honestly whether I’m the right fit, then we can agree on scope, timing and the right working model.
Discuss your project →
