Modernizacja platformy rezerwacji zamówień w branży logistycznej

Pracujemy nad kompleksowym odnowieniem platformy do rezerwacji zamówień, obsługującej transport morski, lądowy i lotniczy. Wprowadzamy integrację z nowymi usługami kurierskimi, ulepszamy zarządzanie przestrzenią magazynową, automatyzujemy dopasowanie adresów oraz umożliwiamy planowanie odbioru i dostawy przesyłek.

Dięki zrealizowanym projektom przyczyniliśmy się do prawie trzykrotnego zwiększenia liczby realizowanych rezerwacji zamówień w ciągu ostatnich 4 lat. W 2020 roku średnia miesięczna liczba rezerwacji wynosiła około 600 tysięcy, natomiast w 2024 roku wzrosła do około 1,77 miliona miesięcznie.

Java, Kotlin, Spring Boot, Spring WebFlux, Spring Cloud Gateway, Spring Security, OAuth2, Hibernate, Kafka, JMS, IBM MQ, AWS, Kubernetes, Docker, Redis, Testcontainers, PostgreSQL, Angular, Angular Material, Micro-Frontend, RxJS, NgRx, Mockito, Karma, Jasmine, Jest
Logistyka
Od 2019
Modernization of Logistic Order Management Platform blank

Jesteśmy Partnerem Technologicznym klienta od 2019 roku. Zapewniamy firmie wysoce wyspecjalizowanych inżynierów, których główną domeną są prace backendowe (Java/Kotlin), frontendowe (Angular) oraz QA. Przykładowe projekty opisane wyżej realizowaliśmy w ramach jednego Tribe’u przez 4 cross funkcjonalne zespoły, składające się z następujących specjalistów j‑labs:

  • 2x Team Leader
  • 12x Backend Developer
  • 7x Frontend Developer
  • QA

Wspólnie z pracownikami naszego klienta stworzyliśmy szereg autorskich rozwiązań. Wysoka jakość dowiezionych projektów oraz ścisła współpraca zaowocowały pozytywnym feedbackiem i długotrwałą współpracą trwającą po dziś.

System Zarządzania Zamówieniami Logistycznymi

Projekt

System do rezerwacji zamówień, obsługujący transport towarów i paczek pomiędzy dowolnymi lokalizacjami. Obsługujemy trzy rodzaje transportu: morski, lądowy i lotniczy. Wspieramy dwa rodzaje rezerwacji transportu:

  • Rezerwacje kontraktowe – dla klientów kontraktowych, według cen ustalonych w kontrakcie, z wystawianiem faktur.
  • Rezerwacje indywidulane – dla klientów okazjonalnych, z cenami wyliczanymi w zależności od rodzaju towaru/paczki i wybranego transportu.

Technologie

Java 17, Kotlin, AWS, Spring Boot, WebFlux, Kubernetes, Hibernate, Mockito, Docker, PostgreSQL, Angular 16/17, Angular Material, Karma, Jasmine, Jest, RxJS, NgRx, micro-frontend

Zadanie

Modernizacja przestarzałego systemu zarządzania zamówieniami logistycznymi.

Realizacja

  • Rozbiliśmy monolitową części przestarzałego systemu na architekturę mikroserwisową oraz migracja Javy do wersji 17 i wprowadzenie Kotlina.
  • Przepisaliśmy stary, monolityczny AngularJS na architekturę microfrontendową i Angulara 16.
  • Stworzyliśmy komponenty wielokrotnego użytku wspierające istniejące funkcjonalności, przyspieszające wdrażanie nowych funkcji oraz eliminujące zbędny kod.
  • Zapewniliśmy asynchroniczne API oraz zabezpieczenie na wypadek braku responsywności bazy danych, aby zawsze można było przetworzyć wszystkie dane rezerwacji.
  • Wdrożyliśmy nowe ubezpieczenie obowiązujące na danym rynku oraz przewóz nowego rodzaju towarów np. materiały niebezpieczne.

Parcel Integrator

Projekt

„Parcel”, czyli przesyłka lub paczka zapakowana do wysyłki, lub dostawy, posiadająca oddzielną etykietę adresową. Klient do obsługi przesyłek „Parcel” korzystał wcześniej z zewnętrznego systemu kurierskiego, który generował znaczne koszty. Aby zwiększyć zyski z obsługi przesyłek kurierskich oraz uniezależnić się
od zewnętrznego dostawcy, stworzono „Parcel Integrator”.

Technologie

Java 17, JMS, Spring Boot, WebFlux, Angular 16, AWS, Kafka

Zadanie

Zbudowanie interfejsu użytkownika oraz API, które umożliwia korzystanie z różnorodnych usług kurierskich za pomocą systemu rezerwacji przesyłek firmy naszego klienta.

Realizacja

  • Dokonaliśmy integracji systemu z dostawcami usług kurierskich.
  • Opracowaliśmy API obsługujące m.in.: statusy przesyłek, informacje o położeniu przesyłki, łatwą integrację z dodatkowymi firmami kurierskimi.
  • Zaimplementowaliśmy serwis na eksperckim poziomie, z wykorzystaniem heksagonalnej architektury oraz reaktywnego mikroserwisu (WebFlux).

Inteligentny Magazyn

Projekt

Celem projektu było stworzenie kompleksowego rozwiązania do zarządzania przestrzenią magazynową oraz zaprojektowanie i wdrożenie serwisu ułatwiającego obsługę wymiany towarów, w tym m.in. palet transportowych.

Początkowo system został opracowany wyłącznie do użytku wewnętrznego przez pracowników naszego klienta, umożliwiając optymalizację procesów związanych z logistyką i magazynowaniem. W ramach rozszerzenia funkcjonalności dostosowaliśmy serwisy, aby mogły być z powodzeniem używane również przez klienta końcowego, zapewniając prosty i intuicyjny dostęp do rezerwacji przestrzeni magazynowych.

Technologie

Java 17, Kotlin, AWS, Spring Boot, Kubernetes, Hibernate, Docker, PostgreSQL, Angular 17, micro-frontend

Zadanie

  • Stworzenie narzędzia do zarządzania przestrzenią magazynową.
  • Stworzenie nowego panelu do statystyk dotyczących wolnych przestrzeni magazynowych.
  • Dostosowanie serwisu do użytku przez klientów naszego klienta.
  • Utworzenie formularza do wysyłania zapytań o wolną przestrzeń magazynową w określonym przedziale czasowym.

Realizacja

  • Przekształciliśmy serwis odpowiadający za część magazynową z monolitu na mikroserwis oraz mikrofrontend.
  • Wprowadziliśmy nowe funkcjonalności ułatwiające zarządzanie przestrzenią magazynową.
  • Dostosowaliśmy widok na zakładkach, aby narzędzie mogło być używane przez klientów naszego klienta.
  • Dodaliśmy możliwości eksportu informacji o magazynie w formacie jednostronicowego pliku PDF.
  • Dodaliśmy możliwości aktualizacji wolnych przestrzeni magazynowych w dowolnym momencie.
  • Dodaliśmy zakładki „Dashboard”, umożliwiające wyświetlanie statystyk wolnych przestrzeni z podziałem na klastry, regiony, kraje, magazyny oraz prezentację rodzajów wolnych przestrzeni magazynowych na osi czasu.

„Inteligentne zarządzanie adresami”

Projekt

Projekt związany z automatyczną poprawą i dopasowywaniem adresów. Na celu ma automatyzację procesu zarządzania bardzo dużą ilością adresów (na obecną chwilę ponad 40 milionów), znacząco minimalizując ilość manualnych akcji ze strony administratora.

Technologie

Kotlin, Spring Boot, Spring Webflux, Kafka, PostgreSQL, Testcontainers

Zadanie

  • Modernizacja oraz usprawnienie systemu zarządzającego adresami.
  • Wprowadzenie automatyzacji dopasowującej adresy.

Realizacja

  • Zaimportowaliśmy adresy z poprzedniego systemu i oczyściliśmy dane, np. poprzez usunięcie danych testowych, duplikatów itp.
  • Zapewniliśmy asynchroniczność przetwarzania adresów.
  • Stworzyliśmy algorytm do znajdowania podobnych adresów i wykorzystaliśmy go do efektywnego zarządzania adresami.

Intensywny ruch i bezpieczeństwo

Projekt

Głównym wyzwaniem projektu było zapewnienie wysokiego poziomu bezpieczeństwa oraz efektywnej komunikacji między mikroserwisami. Ze względu na dużą liczbę żądań system musi działać szybko, stabilnie oraz być bezpieczny.

Technologie

Java 17, Spring Boot, WebFlux, Spring, Cloud Gateway, Spring Security, OAuth2, AWS, Kafka, Redis, Kubernetes

Zadanie

  • Obsługa intensywnego ruchu.
  • Zapewnienie odpowiedniego zabezpieczenia systemu.

Realizacja

  • Wdrożyliśmy uwierzytelniania wieloskładnikowe (multi-factor authentication).
  • Stworzyliśmy mechanizm rotacji root-certyfikatów.
  • Dodaliśmy możliwości komunikacji między klastrami zapewniającą ograniczenia przepływu danych wybranych przez klienta.

Niedostarczona Paczka

Projekt

Projekt ma na celu umożliwienie klientom zaplanowania odbioru lub wysyłki przesyłki w wybranym przez nich terminie, gdy przesyłka nie została odebrana lub doręczona z przyczyn losowych. Ewentualnie system informuje klientów, kiedy nastąpi kolejna próba doręczenia lub odbioru przesyłki.

Technologie

Kotlin, Kafka, Spring

Zadanie

Stworzenie nowego modułu w aplikacji, która umożliwia klientom zaplanowanie odbioru przesyłki w wybranym dniu i czasie (moduł napisany w Kotlinie).

Realizacja

  • Zmieniliśmy rozproszoną na dwa mikroserwisy, obsługujące przypadki:
    • Sytuacja, w której nie ma możliwości planowania, jest obsługiwana przez mikroserwis informujący o statusie przesyłek dla transportu lądowego.
    • Sytuacja, w której jest możliwość planowania, obsługiwana jest przez drugi mikroserwis.
    • Oba mikroserwisy nasłuchują na ten sam topic na Kafce oraz pobierają każdą wiadomość. W zależności od danych w środku albo ją ignorują, albo procesują.
  • Przeprojektowaliśmy całą architekturę systemu w celu umożliwienia tworzenia więcej niż jednej deklaracji w ramach unikalnego identyfikatora przesyłki.

Śledzenie Zdarzeń Przesyłek

Projekt

Projekt miał na celu przepisanie i ulepszenie aplikacji służącej do śledzenia przesyłek, pobierania dokumentów, rejestracji nowych zdarzeń dotyczących przesyłki.

Technologie

Kotlin, Spring WebFlux, IBM MQ

Zadanie

Modernizacja poprzedniej wersji aplikacji, która została napisana ponad 20 lat temu i wymagała całkowitej przebudowy.

Realizacja

  • Stworzyliśmy całkowicie nowy backend, który został napisany w Kotlinie w stacku reaktywnym (Spring WebFlux) z wykorzystaniem korutyn (wzorca współbieżności) do tworzenia asynchronicznych i nieblokujących operacji.
  • Stworzyliśmy połączenia oraz sesje asynchronicznie, wykorzystywane przy żądaniach w celu minimalizacji czasu odpowiedzi.
  • Zrobiliśmy tak, aby jedno wyszukanie przesyłki skutkowało połączeniem się z 17 kolejkami IBM MQ jednocześnie.
  • Dostosowaliśmy aplikację, aby nie duplikowała rekordów jednej przesyłki.

Rzuć nam wyzwanie i opowiedz o projekcie, który chcesz rozwinąć

Napisz nam, czego potrzebujesz, a w ciągu 48 godzin wrócimy do Ciebie, aby
porozmawiać o współpracy. Wypełnij formularz lub wyślij wiadomość na j-labs@j-labs.pl.

Pracuj ze specjalistami, którzy dostarczą najlepszy możliwy produkt

Skontaktuj się z nami