
Case study · Portale internetowe · 2026 · projekt demo
Transpot: prywatna giełda ładunków SaaS - spedycja udostępnia zlecenia zaufanym przewoźnikom, a ci proponują ceny. Abonamenty PayU, karencja, PWA, Laravel.

Transpot to prywatna giełda transportowa w modelu SaaS, którą zaprojektowaliśmy i zbudowaliśmy w 2026 roku. W odróżnieniu od otwartych giełd firma spedycyjna udostępnia ładunki wyłącznie swoim zaufanym podwykonawcom, a przewoźnicy odpowiadają na nie własnymi propozycjami cen.
Punktem wyjścia były wymagania jednej firmy spedycyjnej: wewnętrzna lista transportów dla stałych podwykonawców, możliwie najprostsza w obsłudze. W trakcie analizy projekt urósł do platformy multi-tenant, na której każda firma-abonent dostaje własną, odizolowaną giełdę. Świadomie zrezygnowaliśmy z czatu, powiadomień i prowizji - platforma zbiera oferty i ceny, a szczegóły strony ustalają telefonicznie.
Spedytor dodaje zlecenie z automatycznie nadawanym numerem: miejsce załadunku i rozładunku (kraj, kod pocztowy, miasto, okno czasowe), rodzaj ładunku, wagę w tonach, typ zabudowy - np. firanka, mega czy chłodnia - oraz cenę w PLN albo EUR, bez przeliczania kursów. Podwykonawca widzi na jednej giełdzie oferty wszystkich firm, do których należy, i zawęża listę filtrami kierunku, typu pojazdu, firmy, daty załadunku i maksymalnej wagi. Do propozycji ceny może dopisać komentarz. Gdy spedytor zaakceptuje jedną z nich, oferta dostaje status zajętej i znika z giełdy, a pozostałe propozycje są odrzucane. Oferty, których data załadunku minęła, same trafiają do archiwum.
Aplikacja ma pięć ról. Operator platformy zarządza firmami, cennikiem i zgłoszeniami. Super admin firmy prowadzi jej dane, użytkowników i abonament, spedytorzy obsługują oferty w zakładkach Aktywne, Zajęte i Archiwum, a osoba dodająca transporty ma mini panel tylko z własnymi ofertami. Konto podwykonawcy jest jedno na całą platformę - kolejne linki zaproszeń od innych firm tylko dopisują go do ich giełd, a żadna firma nie widzi, z kim jeszcze współpracuje jej przewoźnik.
Firma płaci jeden abonament na 1, 3, 6 lub 12 miesięcy - przez PayU albo przelewem na fakturę pro forma, który operator aktywuje ręcznie. Po wygaśnięciu abonamentu działa 14-dniowa karencja: kadra firmy ma dostęp tylko do odczytu i może opłacić abonament, a podwykonawcy tracą dostęp od razu. Potem konto jest blokowane, ale dane zostają. Operator tworzy linki zaproszeń z indywidualnymi cenami i okresem bezpłatnym, wysyła zaproszenia hurtowo z pliku JSON, a na dashboardzie widzi liczbę firm, aktywne abonamenty, firmy w karencji, przychody i ostatnie zgłoszenia. Przycisk "Zgłoś uwagę" jest dostępny na każdym ekranie i trafia do skrzynki operatora, a nie do spedytora.
Aplikację napisaliśmy w Laravelu 13 z Livewire 4, Alpine.js i Tailwind CSS 4. Powstało 35 podstron, a ich działanie sprawdzają 83 testy automatyczne w Pest. Interfejs ma tryb jasny i ciemny, dolną nawigację na telefonie i działa jako PWA ze stroną offline. Kolorystykę - granat z bursztynowym akcentem - przenieśliśmy z klikalnego prototypu interfejsu. Teksty są przygotowane pod kolejne wersje językowe, a zadania cykliczne, takie jak archiwizacja ofert i wysyłka maili z kolejki, uruchamia zwykły cron. W galerii pokazujemy ekrany wersji demonstracyjnej z przykładowymi danymi.