< CASE STUDY >

Aplikacja do obsługi ruchu turystycznego

Aplikacja do obsługi ruchu turystycznego
240 tys.Użytkowników
260 tys.Rezerwacji
6 tys.Produktów
370 tys.Zleceń

Klient

Mr. Shuttle, touroperator branży turystycznej, specjalizuje się w profesjonalnych usługach transportowych dla turystów oraz podróżujących służbowo, oferując między innymi transfery lotniskowe, transfery międzymiastowe, a także wycieczki jednodniowe.

React

Biblioteka JavaScript stworzona przez Facebooka, służąca do budowania interfejsów użytkownika, zwłaszcza dla aplikacji jednostronicowych (SPA).

TypeScript

Rozszerzenie języka JavaScript, dodające statyczne typowanie. Ułatwia pisanie i utrzymanie kodu, a także zwiększa jego czytelność.

React Query

Biblioteka do zarządzania stanem aplikacji, zaprojektowana z myślą o aplikacjach korzystających z REST API.

Spring Boot

Framework do tworzenia aplikacji w języku Java. Zapewnia szereg gotowych rozwiązań, ułatwiających tworzenie aplikacji webowych.

PostgreSQL

Open-source'owa relacyjna baza danych. Jest jedną z najpopularniejszych baz danych na świecie. Zapewnia wysoką wydajność, skalowalność i niezawodność.

JPA

Standard Java, służący do mapowania obiektowo-relacyjnego. Umożliwia tworzenie obiektów, które są automatycznie mapowane na rekordy w bazie danych.

Wyzwanie

Firma obsługująca wycieczki turystyczne, zatrudniająca kilkudziesięciu pracowników i obsługująca tysiące klientów rocznie, zdecydowała się stworzyć nowy system do obsługi swoich procesów biznesowych. Zakres potrzeb rozciągał się od zarządzania rezerwacjami przychodzącymi z zewnętrznych systemów, poprzez dystrybucję zadań potrzebnych do realizacji usługi, po finalne rozliczenia z pracownikami i podwykonawcami. Pracownicy do tej pory wykonywali część pracy ręcznie, co było nie tylko czasochłonne, ale i podatne na błędy.

Dotychczasowy system pracy zespołu był połączeniem użycia kilku zewnętrznych programów oraz starego dedykowanego rozwiązania opartego na przestarzałych technologiach, które obarczone było dużym długiem technicznym, uniemożliwiającym efektywne dodawanie nowych funkcjonalności. Dotychczasowe wyzwania obejmowały:

Przestarzała technologia

Istniejący system był oparty na technologiach, które nie były aktualizowane od lat. Ta przestarzała infrastruktura wprowadzała znaczne ograniczenia funkcjonalne oraz problemy z wydajnością oraz bezpieczeństwem danych.

Duży dług techniczny

System obciążony był dużym długiem technicznym, skutkującym częstymi awariami i trudnościami w implementacji nowych funkcjonalności, co znacząco hamowało rozwój firmy. Skutkiem była powolna migracja do tymczasowych rozwiązań typu Excel.

Brak skalowalności

Stary system nie był przystosowany do efektywnej obsługi rosnącej liczby użytkowników, co stanowiło barierę dla dynamicznie rozwijającej się działalności klienta.

Ograniczona dostępność

Dostęp do systemu był możliwy tylko z określonych rodzajów urządzeń, co stanowiło poważne ograniczenie, zwłaszcza dla pracowników potrzebujących dostępu do systemu w podróży lub w domu.

Trudność w integracji

System nie posiadał możliwości łatwej integracji z innymi systemami i aplikacjami, co było kluczowe ze względu na potrzebę współpracy z zewnętrznymi partnerami oraz integracji z nowoczesnymi narzędziami wspierającymi turystykę.

Klient podjął decyzję o stworzeniu nowego dedykowanego systemu, wykorzystującego możliwości aktualnych technologii. W wymaganiach znalazły się między innymi: możliwość pracy online z dowolnego miejsca na świecie, skalowalność pod względem liczby użytkowników oraz możliwość łatwego rozwoju w przyszłości. Aplikacja powinna również umożliwiać integrację z aplikacjami firm trzecich poprzez interfejs API.

Jednym z najważniejszych wyzwań było przeprowadzenie bezpiecznej migracji danych ze starego systemu do nowego oraz zapewnienie okresu przejściowego, w którym obie aplikacje będą funkcjonować równolegle, synchronizując dane między sobą.

Dodatkowym elementem projektu był iteracyjny rozwój obszaru UX/UI aplikacji, bazując na materiałach dostarczonych przez klienta w formie dokumentacji oraz wstępnych makiet. Iteracyjne podejście pozwoliło na stopniowe adaptowanie systemu tak, aby odpowiadał nowo identyfikowanym potrzebom użytkowników i możliwościom techinicznym.

Rozwiązanie

Rozwiązanie zostało oparte o architekturę klient-serwer. Aplikacja kliencka została napisana w technologii React, a serwerowa w Kotlinie z wykorzystaniem Spring Boot. Aplikacja backendowa została zintegrowana z bazą danych PostgreSQL. Rozwiązanie zostało oparte o architekturę heksagonalną, co pozwoliło na konsekwentne oddzielenie warstwy biznesowej od szczegółów implementacyjnych.

Do komunikacji między klientem a serwerem wykorzystano REST API. Wyraźny podział na część backend i frontend umożliwia pracę zespołom niezależnie od siebie oraz pozostawia możliwość wymiany jednej z części systemu bez konieczności ingerencji w drugą lub dodanie kolejnego komponentu w przyszłości np. aplikacji mobilnej.

Aplikacja została zaprojektowana z myślą o łatwym rozwoju w przyszłości, dzięki zastosowaniu modularnej architektury obiektowej (object-oriented programming), wstrzykiwania zależności (dependency injection) oraz testów jednostkowych.

Dzięki przemyślanej budowie bazy danych, cyklicznym migratorom oraz współpracy z zespołem deweloperskim utrzymującym stare rozwiązanie firmy możliwe było przeprowadzenie bezpiecznego przejścia ze starego systemu na nowy, bez konieczności wstrzymywania żadnych procesów biznesowych klienta.

Aplikacja została wdrożona na platformie AWS, co zapewniło skalowalność i niezawodność. Dane klientów zostały zabezpieczone z wykorzystaniem protokołu HTTPS. Dzięki wdrożeniu systemu CI/CD udało się zautomatyzować proces wdrażania nowych wersji systemu, co znacząco przyspieszyło iteracje rozwojowe. Wdrożenie na AWS w połączeniu z zaletami aplikacji webowych umożliwiło łatwy dostęp do systemu z dowolnego miejsca na świecie.

W aplikacji zostały zaimplementowane integracje m. in. z:

  • GYG (Get Your Guide) - platforma oferująca wycieczki turystyczne
  • Viator - platforma oferująca wycieczki turystyczne
  • Booking - wiodąca platforma oferująca rezerwacje noclegów
  • Comarch Optima - system księgowy oraz CRM
  • NBP Web API - serwis udostępniający historię kursów walut

Różne kategorie użytkowników (pracownicy, dyspozytorzy, klienci, sprzedawcy) mają dostosowany dostęp do funkcjonalności aplikacji, co pozwala na efektywne zarządzanie dostępem do danych. Poszczególne grupy użytkowników mają dostęp do dedykowanych funkcjonalności, takich jak widok mobilny dla kierowców, czy widok dla dyspozytorów.

W Blues Brackets zajmujemy się rozwiązywaniem prawdziwych problemów za pomocą najnowszych technologii.

Porozmawiajmy

<mail>hello@bluesbrackets.com
<phone>+48 535 462 678

Spotkajmy się

Kraków, PolandWrocław, PolandWarszawa, Poland

Kontakt

Blues Brackets sp. z o. o.NIP 8842824071REGON 527681035

Usługi Agile Software Development w Polsce | Firma AgileUsługi Tworzenia Chatbotów AIAnimowane Strony Internetowe | Profesjonalne UsługiAplikacje Bluetooth i BLE na Androida | Nordic nRF i STM32Aplikacje webowe vs desktopowe | bluesBracketsAplikacje webowe czy mobilne? Fullstack & UX/UIEkspercka firma tworząca aplikacje iOS w PolsceAplikacje mobilne dla biznesu | bluesBracketsPolski Software House | UI/UX, Fullstack, Mobile, IoTAutomatyczne testy regresji i kompleksowy developmentBody leasing React Native i embeddedRozwój aplikacji cross-platform (wieloplatformowych)Nowoczesny software house: Dyrektor IT jako usługa (CTO as a Service), DevOps, UX/UIDevOps jako Usługa | Doradztwo AWS CloudPolski Software House: Agile & UI/UXFirma konsultingowa DevOps | bluesBracketsRozwiązania AI szyte na miarę dla biznesuMigracje Data Center i IT – Bezpieczne UsługiKonsulting migracji do chmury – bluesBracketsUsługi Rozwoju Aplikacji FlutterUsługi tworzenia aplikacji hybrydowychIntegracje systemów i wdrożenia ChatGPTBezpieczne testy systemowe i integracjaUsługi integracji systemów ITTworzenie oprogramowania IoT dla przemysłuIoT MQTT Dashboardy i rozwiązania embeddedIIoT i Przemysł 4.0 – oprogramowanie na miaręPolski Software House | Rozwiązania IoT i EmbeddedTworzenie produktów IoT | Embedded & Fullstack Software HouseRozwój IoT i Wearable | bluesBracketsOprogramowanie IoT dla handlu, wearables, nieruchomościUsługi backend i JavaScript | bluesBracketsEkspercka migracja oprogramowania | bluesBracketsMikroserwisy czy Monolit: Ekspercka ArchitekturaModernizacja aplikacji legacy dla firmFirma MVP na zamówienie | Dedykowane usługi tworzenia oprogramowania MVPEksperci IoT i Embedded | bluesBracketsNB-IoT, systemy wbudowane i zwinne ITIT Nearshoring i rozwój oprogramowania PolskaUsługi Next.js i WordPressDedykowane CMS i oprogramowanie na miaręTworzenie dedykowanych aplikacji webowych | bluesBracketsFirma Node.js Development w Polsce | Node.js Development CompaniesRozliczenie ryczałtowe czy T&M – co wybrać?Business Intelligence dla firm | bluesBracketsTworzenie oprogramowania dla branży turystycznejTworzenie oprogramowania dla nieruchomościProfesjonalne prototypowanie oprogramowaniaFirma Bespoke Software Development w Polsce | Oprogramowanie na miaręOutsourcing inżynierii oprogramowania PolskaOutsourcing Python – Polska firma offshoreFirma outsourcingowa IT — PolskaPolska firma outsourcingu ITEksperci embedded i bare metal | bluesBracketsZaufana firma offshore software development w PolsceEkspercka firma projektowa sprzętu | Własna elektronikaUsługi Proof of Concept i Proof of PrincipleProof of Concept a Prototyp – Agile SoftwareTworzenie aplikacji webowych ReactJSRozszerzanie zespołów IT dla startupów i firmKompleksowe rozwiązania IT | Software House PolskaTworzenie aplikacji mobilnych na Androida i iOSRozwój oprogramowania embedded i IoT | Systemy wbudowaneAgencja wdrożeń LLM | bluesBracketsTworzenie progresywnych aplikacji webowych | bluesBrackets PolskaEksperckie usługi hardware | bluesBracketsUsługi rozwoju systemów wbudowanychRozwiązania embedded z RTOSRozwój oprogramowania SaaS: chmura zgodna z RODOSkalowanie aplikacji dla startupów — rozwiązania skalowalneOprogramowanie SLA & usługi zarządzane PolskaSoftware House Polska | Tworzenie Aplikacji i Systemów WbudowanychExpert Software Migration Services | bluesBracketsSpecjalistyczne usługi inżynierii oprogramowaniaRozwój aplikacji dla sportu i ochrony zdrowiaStaff Augmentation | Rozszerzenie zespołu ITModernizacja systemów IT i dedykowane oprogramowanieUsługi testowania jakości | bluesBracketsTworzenie aplikacji PWA | iOS i AndroidTworzenie PWA na iOS – Aplikacje mobilneUczenie maszynowe w analizie predykcyjnejDedykowane usługi IT i outsourcing w PolsceRozwiązania AI Chatbot dla FirmUsługi inżynierii danych i wizualizacjiRozwój aplikacji chmurowych | Polska firma ITUsługi rozwoju IoT | Internet rzeczy IoTUsługi tworzenia oprogramowania na zamówienie — bluesBracketsZdalne wsparcie IT i utrzymanie aplikacjiProfesjonalne usługi UX/UI designStaff augmentation czy usługi zarządzane?Warsztaty Product Discovery dla startupów i firmUsługi chmury i transformacji cyfrowejEksperci white label dla aplikacji i IoTSoftware House Java w Polsce | Zatrudnij programistów JavaDedykowany zespół programistów w Polsce | Zespoły software w UE