Od 2019 jesteśmy Partnerem Technologicznym globalnego dostawcy usług logistycznych, dostarczając wysoko wyspecjalizowane zespoły inżynierskie. Główne obszary naszej działalności obejmują rozwój backendu (Java/Kotlin) oraz frontend (Angular).
Opisane poniżej projekty zrealizowaliśmy w multidyscyplinarnym zespole składającym się z:
- 1x Team Leader
- 4x Backend Developer
- 1x Frontend Developer
Zespół inżynierski we współpracy z klientem dostarczył innowacyjne rozwiązania. Wysoka jakość realizacji projektów oraz efektywna współpraca przyczyniły się do pozytywnej opinii i kontynuowania partnerstwa.
Rozwiązania Geodanych
Projekt
Głównym celem projektu jest zapewnienie dostępnych, precyzyjnych i aktualnych danych geograficznych oraz nowoczesnych narzędzi wspierających logistykę. Nasze działania wspierają wszystkie jednostki biznesowe i regiony w firmie, dostarczając rozwiązania dopasowane do ich indywidualnych potrzeb. Wykorzystujemy zaawansowane technologie map cyfrowych oraz różnorodne źródła danych – zarówno wewnętrzne, jak i zewnętrzne – aby tworzyć i zarządzać dedykowanymi rozwiązaniami geograficznymi, które odpowiadają na najbardziej wymagające potrzeby biznesowe.
Technologie
Kotlin, Spring Boot, Hibernate, PostgreSQL, Docker, Kubernetes, Kafka, AWS, Angular, Angular Material, Karma, RxJS, ELF (alternatywa dla NgRx)
Zadania
- Stworzenie interfejsu użytkownika oraz API umożliwiającego wizualizację danych geograficznych na mapie.
- System ma wspierać prezentację kodów pocztowych dla wybranych regionów oraz oferować zaawansowane funkcje wizualizacyjne.
- Przykładowe zastosowania obejmują:
- kolorowanie regionów na podstawie przypisania do terminali logistycznych,
- wizualizację tras transportu przesyłek, uwzględniając terminale pośrednie
(np. trasa z terminalu w miasta A do kodów pocztowych w innym kraju), - oznaczanie regionów w zależności od przewidywanego czasu dostawy (np. 1, 2, 3 dni).
Realizacja
- Zaprojektowaliśmy intuicyjny interfejs użytkownika umożliwiający wizualizację map z dynamicznymi warstwami danych, dostosowany do potrzeb biznesowych.
- Zaimplementowaliśmy API wspierające zapytania dotyczące tras, przewidywanego czasu dostawy oraz przypisanie terminali logistycznych.
- Wdrożyliśmy wizualizacje tras transportowych jako linii i punktów na mapie oraz kolorowanie regionów zgodnie z przewidywanym czasem dostawy.
- Przeprowadziliśmy integrację z wewnętrznymi i zewnętrznymi źródłami danych geograficznych przy użyciu zaawansowanych technologii map cyfrowych.
- Zoptymalizowaliśmy wydajność aplikacji, aby zapewnić płynną obsługę nawet przy dużej ilości danych i złożonych zapytaniach.
Optymalizacja Trasy
Projekt
W ramach tego projektu dążyliśmy do integracji z chmurowym systemem planowania transportu, aby usprawnić zarządzanie trasami oraz organizację przewozów. Rozwiązanie to miało zautomatyzować różne procesy związane z logistyką i analizą danych geograficznych, takie jak optymalizacja tras z uwzględnieniem ograniczeń drogowych czy szacowanie opłat za przejazdy płatnymi odcinkami dróg, z uwzględnieniem specyfikacji pojazdów, takich jak liczba osi czy masa całkowita.
Technologie
Kotlin, AWS, Spring Boot, Kubernetes, Hibernate, Docker
Zadania
- Umożliwienie korzystania z zewnętrznego systemu optymalizacji transportu.
- Stworzenie proxy pozwalającego użytkownikom na interakcję z systemem zewnętrznym.
- Zbudowanie i wdrożenie systemu.
Realizacja
Dokonaliśmy integracji z systemem optymalizacji transportu i wykorzystaliśmy
jego API, co umożliwia:
- Wyznaczanie trasy: planowanie tras z uwzględnieniem czasu, odległości i ograniczeń drogowych.
- Geokodowanie i odwrotne geokodowanie: konwersja adresów na współrzędne i odwrotnie.
- Informacje o ruchu drogowym: dostarczanie danych o ruchu w czasie rzeczywistym.
- Obliczanie opłat drogowych: szacowanie opłat na podstawie specyfikacji pojazdu.
Samodzielnie hostowane rozwiązanie mapowe
Projekt
Powierzony nam projekt miał na celu przygotowanie oraz utworzenie własnego serwera map w celu wyeliminowania konieczności subskrybowania usług dostawcy zewnętrznego. Oferuje możliwość dostosowywania interfejsu użytkownika (UI) do indywidualnych potrzeb, dodawania nowych warstw oraz wprowadzania zmian w istniejącej strukturze.
Technologie
JavaScript, CSS, biblioteka do map, Docker
Zadania
- Stworzenie własnego serwera map, hostowanego lokalnie.
- Dostosowanie wyglądu oraz funkcjonalności map w celu wyeliminowania zależności od dostawcy zewnętrznego.
Realizacja
- Utworzyliśmy środowisko dla własnego serwera map.
- Postawiliśmy instancję map na podstawie biblioteki open-source do map.
- Zasililiśmy serwer warstwami map w postaci plików .mbtiles.
- Dostosowaliśmy wygląd oraz funkcjonalności do potrzeb aplikacji wykorzystujących nową instancję map.
- Rozwiązaliśmy problemy związane z migracją.
Projekt
Tym razem mieliśmy za zadanie opracowanie systemu wspomagającego pracę dyspozytora. W sytuacji, gdy przetransportowanie towarów wymaga skorzystania z usług przewoźników promowych, dyspozytor musi wykonać następujące zadania:
- Uzyskać informacje na temat rozkładu rejsów promów od przewoźników.
- Mając wybrany konkretny rejs, sprawdzić, ile wolnego miejsca jest na promie (wysokość, szerokość, długość).
- Jeśli okaże się, że na dany rejs można załadować wymaganą liczbę ciężarówek lub samych naczep, złożyć zamówienie.
- Śledzić transport, czyli monitorować, kiedy ładunek:
- przybył do portu,
- został załadowany na prom,
- został wyładowany w docelowym porcie,
- opuścił port.
Dotychczas wszystkie te czynności były wykonywane ręcznie, poprzez kontakt telefoniczny lub korzystanie z witryn internetowych każdego przewoźnika.
Technologie
Kotlin, Spring Boot, JUnit, Kotest, Wiremock, Testcontainers, PSQL, Flyway, MuleSof
Zadania
- Zbudowanie systemu, który uprości cały proces związany z obsługą transportu promowego.
- System ma być łatwy do zintegrowania z przewoźnikami promowymi.
- Stworzenie API, które będzie łatwe w użyciu dla dyspozytorów.
- Integracja z wewnętrznym systemem klienta, która umożliwi centralne zarządzanie procesami.
Realizacja
- Zebraliśmy informacje od każdego przewoźnika na temat rozkładu rejsów oraz tego, ile może zabrać na dany rejs, aby później móc złożyć zamówienie i śledzić transport.
- Stworzyliśmy system, który integruje się z API przewoźników promowych i posiada ujednolicone API.
- Przeprowadziliśmy integracje z wieloma przewoźnikami promowymi.
- Baza, WireMock i Spring Context są uruchamiane tylko raz ze względu na wydajność.
- WireMock pozwala na mockowanie API operatorów.