2024-2026

TMS dla europejskiego przewoźnika

Dedykowany system TMS dla przewoźnika z flotą chłodniczą: zlecenia, trasy, control tower, ETA, telematyka, rozliczenia. Zbudowany w appwise, pod NDA.

Rola
Główny programista full-stack (start jako backend developer)
Czas trwania
ponad 2 lata
Wielkość zespołu
od 6 do 3 (na końcu: 1 programista, QA, PM)
Rok
2024-2026
TMS dla europejskiego przewoźnika, screenshot 1

Dedykowany system TMS zbudowany w appwise dla rodzinnego przewoźnika drogowego działającego na rynku europejskim, z flotą chłodniczą obsługującą branżę farmaceutyczną i spożywczą. Jedna platforma zastąpiła arkusze i kilka rozproszonych narzędzi: zlecenia, trasy, flota, kierowcy, umowy, dokumenty, rozliczenia i raportowanie. Nazwy klienta nie podaję ze względu na NDA. Projekt jest jedną z opublikowanych realizacji appwise w sektorze TSL.

Dołączyłem na starcie jako backend developer i w ciągu dwóch lat doszedłem do roli głównego programisty full-stack. Zespół zmniejszył się z sześciu osób do trzech (jeden programista, tester i project manager), a w ostatniej fazie byłem jedynym programistą: odpowiadałem za backend, frontend w Nuxt i bieżący kontakt techniczny z klientem.

Backend to modułowa aplikacja Laravel 12 z 31 modułami domenowymi (zlecenia, trasy, planowanie, dyspozytor, control tower, ETA, telematyka, kontrahenci, umowy, księgowość, wydruki i inne) na PostgreSQL z PostGIS, kolejkami Redis z Horizonem, Octane na FrankenPHP, Reverb do aktualizacji w czasie rzeczywistym i Meilisearch do wyszukiwania. Frontend to aplikacja Nuxt 3 z PrimeVue, Pinia, osiami czasu FullCalendar i mapami Trimble. Integracje obejmują czterech dostawców telematyki, routing PC*Miler z zapasowym, własnym GraphHopperem, system księgowy i BI klienta, kursy NBP, VIES, bramkę SMS i pocztę Microsoft 365.

Najważniejsze funkcje

  • Control tower: jedna priorytetyzowana lista zadań budowana ze zdarzeń operacyjnych
  • Planowanie tras z przepinkami naczep, czasem pracy kierowców i oknami załadunku
  • ETA dla każdego zlecenia z automatycznymi alertami o odchyleniach
  • Automatyczne przyjmowanie zleceń z kanałów klienta i masowy import załączników do umów
  • Pozycje telematyczne od czterech dostawców, geofencing w PostGIS
  • Oś czasu dyspozytora dla pojazdów i kierowców
  • Rozliczenia i fakturowanie z kursami NBP i walidacją VIES
  • Wydruki PDF i generowanie dokumentów, dziennik aktywności dla każdej zmiany
  • Aktualizacje w czasie rzeczywistym przez WebSocket, logowanie dwuskładnikowe SMS lub e-mail
  • Interfejs wielojęzyczny, wielowalutowy i świadomy stref czasowych

Wyzwania i rozwiązania

  • Ujednolicenie czterech dostawców telematyki (SOAP, REST, push i pull) w jeden model pozycji i alarmów
  • Utrzymanie dokładnego ETA w ramach dziennego limitu API routingu, z własnym fallbackiem
  • Procedury geofencingu uruchamiane bezpośrednio w PostgreSQL, żeby obsłużyć pozycje floty w skali
  • Stabilne dowożenie przy zespole malejącym z sześciu do trzech osób: 194 pliki testów Pest, CI/CD na trzy środowiska, automatyczne backupy
  • Przejście od zadań backendowych do odpowiedzialności za cały produkt i rozmowę z klientem

Wyniki

  • Codzienne użycie produkcyjne przez dyspozytorów, planistów i księgowość od 2024 roku
  • 31 modułów Laravel, 194 pliki testów, wdrożenia na dev, stage i produkcję z GitLab CI
  • Dowiezione trzyosobowym zespołem w ostatniej fazie
  • Na liście realizacji appwise w sektorze TSL