System zarządzający usługami podróżniczymi

Szczegóły

Czas trwania:
2 lata
Technologie:
React, Node.js, JavaScript, Kotlin, Java, Spring
Rodzaj współpracy:
End-to-End Product Development

Problem

Klient ma pomysł na stworzenie systemu zrzeszającego podróżników z całego świata. Posiada listę wymagań, które mają znaleźć się w produkcie końcowym. Najważniejsze punkty planu to:

  • Działanie na środowisku webowym oraz mobilnym
  • Wyodrębniony panel administracyjny
  • Wyodrębniona część aplikacji, odpowiedzialna za obsługę sprzedawców usług turystycznych
  • Funkcjonalności usprawniające kontakt między użytkownikami:
    – Rozbudowany moduł chatu, pozwalający na między innymi: konwersację w trybie grupowym oraz indywidualnym, blokowanie/odblokowywanie użytkowników, wysyłanie multimediów
    – Forum, podzielone na dynamiczne drzewo kategorii
    – Blog osobisty, który jest odpowiednikiem osi czasu na facebooku
    – System oceniania usług prowadzonych przez sprzedawców
  • Funkcjonalności wspomagające podróżowanie:
    – Rozbudowana wyszukiwarka lotów
    – Moduł hoteli, pozwalający na wyszukiwanie hoteli zarówno spoza systemu jak i te utworzone wewnątrz
  • Funkcjonalności związane z płatnościami:
    – System subskrypcji z konfigurowalnymi ustawieniami
    – Integracja z systemem płatności
  • Funkcjonalności wspomagające sprzedaż usług:
    – Zaawansowany kreator usług turystycznych. Umożliwia interaktywny wybór terminów oraz pozostałych szczegółów tworzonej oferty hotelu bądź usługi turystycznej (np. zorganizowana wycieczka)
    – System ról umożliwiający podział obowiązków między pracownikami

Produkt końcowy ma być zaimplementowany w taki sposób by móc z łatwością sprzedawać go w wielu kopiach dalszym potencjalnym klientom (white-label).

Klient nie ma pomysłu w jaki sposób stworzyć spójny, wieloplatformowy oraz estetyczny system, spełniający wszystkie powyższe wymagania.

Wyzwanie

Najtrudniejszym elementem procesu było zaprojektowanie systemu w taki sposób aby spełniał wszystkie wymagania funkcjonalne, będąc przy tym bezpiecznym, szybkim oraz niezawodnym.
Produkt ze względu na swój rozmiar musiał być zoptymalizowany pod kątem efektywnego utrzymania oraz prostego dalszego rozwoju.
Podczas implementacji, należało zwracać szczególną uwagę na to by każdy komponent był spójny z wymaganiami white-label.
Każdy system zewnętrzny musiał być zintegrowany w taki sposób by jego przyszła ewentualna podmiana, nie wymagała żadnych zmian w innych częściach systemu. Aby osiągnąć zamierzony efekt, koniecznym było wykonanie głębokiej analizy dziedziny oraz wszystkich potencjalnych dostawców danych.

Przed przystąpieniem do prac, należało stworzyć makiety graficzne, obrazujące planowane rozwiązanie.

Rozwiązanie

Wykonano ok. 1500 makiet graficznych, pogrupowanych po modułach systemu. Po akceptacji klienta, przystąpiono do implementacji.

W celu rozwiązania problemu, skorzystano z usług Amazon Web Services (AWS). Funkcjonalności zostały podzielone między serwisy. Komunikacja w aplikacji odbywa się wykorzystując kolejki SQS/SNS oraz protokoły HTTP/WS.

Dane zewnętrzne dotyczące lotów oraz hoteli zostały pobrane dzięki integracji z systemem Amadeus: Integracja z systemem lotniczym Amadeus

Do monitorowania produktu końcowego zastosowano rozwiązanie ELK Stack (Elasticsearch, Logstash, Kibana).

Wraz z projektem powstawała dokumentacja, dzięki której utrzymanie oraz dalszy rozwój aplikacji będzie znacznie prostszy.

Rezultat

Dzięki nowemu systemowi, klient otrzymał gotowe rozwiązanie white-label, które jest w stanie rozprowadzać dalej. Korzysta również ze swojej instancji, która zarabia dzięki modelu subskrypcji.

Powstało narzędzie, które ułatwia i urozmaica podróżowanie oraz handel turystyczny ludziom z całego globu.