2024-2026

TMS for a European carrier

Dedicated transport management system for a refrigerated-fleet carrier: orders, trips, control tower, ETA, telematics, settlements. Built at appwise, under NDA.

Role
Lead full-stack developer (started as backend developer)
Duration
2+ years
Team Size
6 to 3 (final: 1 developer, QA, PM)
Year
2024-2026
TMS for a European carrier, screenshot 1

A dedicated transport management system built at appwise for a family-run road carrier operating across Europe, with a temperature-controlled fleet serving the pharmaceutical and food industries. One platform replaced spreadsheets and several disconnected tools: orders, trips, fleet, drivers, contracts, documents, settlements and reporting. The client is not named here because of an NDA. The project is one of the published appwise case studies in the TSL sector.

I joined at the start as a backend developer and over two years grew into the role of lead full-stack developer. The team shrank from six people to three (one developer, a tester and a project manager), and in the final phase I was the only developer: I owned the backend, the Nuxt frontend and the day-to-day technical contact with the client.

The backend is a modular Laravel 12 application with 31 domain modules (orders, trips, planning, dispatcher, control tower, ETA, telematics, contractors, contracts, accounting, printouts and more) on PostgreSQL with PostGIS, Redis queues with Horizon, Octane on FrankenPHP, Reverb for real-time updates and Meilisearch for search. The frontend is a Nuxt 3 application with PrimeVue, Pinia, FullCalendar resource timelines and Trimble Maps. Integrations include four telematics providers, PC*Miler routing with a self-hosted GraphHopper fallback, the accounting system and the client’s BI, NBP exchange rates, VIES, an SMS gateway and Microsoft 365 mail.

Key Features

  • Control tower: one prioritised task list built from operational events
  • Trip planning with trailer swaps, driver working hours and loading slots
  • ETA per order with automatic alerts on deviations
  • Automatic order intake from client channels and bulk import of contract attachments
  • Telematics positions from four providers, geofencing in PostGIS
  • Dispatcher resource timeline for vehicles and drivers
  • Settlements and invoicing with NBP exchange rates and VIES validation
  • PDF printouts and document generation, activity log for every change
  • Real-time updates over WebSocket, two-factor login by SMS or email
  • Multi-language, multi-currency and timezone-aware interface

Challenges and solutions

  • Unifying four telematics providers (SOAP, REST, push and pull) into one position and alarm model
  • Keeping ETA accurate within a daily routing API budget, with a self-hosted fallback
  • Geofence procedures running directly in PostgreSQL to handle fleet positions at scale
  • Keeping delivery steady while the team went from six to three: 194 Pest test files, CI/CD to three environments, automated backups
  • Growing from backend tasks to owning the whole product and the conversation with the client

Results

  • In daily production use by dispatch, planning and accounting since 2024
  • 31 Laravel modules, 194 test files, deployments to dev, stage and production from GitLab CI
  • Delivered with a three-person team in the final phase
  • Listed among the appwise case studies for the TSL sector