Portfolio

Górołazi

Klient: Drake Factory Kamil HajdukZobacz projekt
aplikacja mobilnastrona internetowa
Górołazi

Górołazi to rozbudowana aplikacja mobilna dla osób, które kochają góry, planują wycieczki i chcą dzielić się swoimi doświadczeniami z innymi. Projekt obejmuje aplikację mobilną, backend, portal webowy, mapy, routing, funkcje społecznościowe, planowanie tras oraz integracje z zewnętrznymi usługami.

Pomysł powstał z potrzeby stworzenia jednego miejsca, które łączy funkcje mapy turystycznej, planera wycieczek i społeczności skupionej wokół gór.

Dziś aplikacja rozwijana jest dla użytkowników w kilku krajach Europy i ma ponad 2100 aktywnych użytkowników.

Co powstało w ramach projektu

Aplikacja pozwala użytkownikom m.in. przeglądać mapy szlaków, wyszukiwać szczyty, schroniska, jeziora, jaskinie i inne obiekty, planować wycieczki oraz tworzyć własne relacje z górskich wypraw.

Rozbudowana część społecznościowa obejmuje obserwowanie użytkowników, komentarze, reakcje, wzmianki, prywatne wiadomości, kanały tematyczne oraz moduł Górskie znajomości, który pomaga znaleźć osoby o podobnych zainteresowaniach lub towarzystwo na szlak.

W aplikacji znalazły się również:

planowanie tras i wielodniowych wycieczek,

nawigacja po trasie,

mapy 2D i 3D,

mapy działające offline,

import tras GPX,

informacje o zamknięciach szlaków,

profile użytkowników, statystyki i odznaki,

system powiadomień,

czat i wiadomości głosowe,

rezerwacja przewodników górskich,

zgłaszanie nowych punktów i obiektów na mapie,

integracja z urządzeniami typu smartwatch,

rozbudowana Księga Gór z informacjami o pasmach, atrakcjach, florze i faunie.

Od pomysłu do działającego produktu

Górołazi nie jest projektem opartym na gotowym systemie. Cała architektura została zaprojektowana i rozwijana od podstaw.

Po stronie mobilnej aplikacja wykorzystuje React Native i Expo, dzięki czemu jedna baza kodu obsługuje systemy iOS i Android.

Backend został zbudowany w NestJS, a dane przechowywane są w PostgreSQL. W projekcie wykorzystywane są również Redis, kolejki zadań, OpenSearch oraz osobne usługi odpowiedzialne za routing i dane wysokościowe.

Panel i portal webowy powstały w Next.js.

Dużą częścią projektu jest także infrastruktura mapowa. Aplikacja korzysta z danych OpenStreetMap, własnych indeksów obiektów geograficznych oraz silnika routingu obsługującego obecnie wiele krajów Europy.

Największe wyzwania

Jednym z największych wyzwań było połączenie bardzo dużej ilości danych geograficznych z płynnym działaniem aplikacji mobilnej.

Sam indeks obiektów geograficznych zawiera ponad milion rekordów, dlatego wyszukiwanie, filtrowanie i wyświetlanie danych wymagało zastosowania osobnej warstwy wyszukiwarki oraz optymalizacji po stronie backendu i aplikacji.

Kolejnym wyzwaniem było przygotowanie routingu pieszych tras dla wielu krajów Europy, obsługa map offline oraz nawigacja działająca w terenie, również przy słabym dostępie do internetu.

Technologie

Mobile: React Native, Expo

Frontend: Next.js

Backend: NestJS, TypeScript

Baza danych: PostgreSQL, TypeORM

Cache i kolejki: Redis, Bull

Wyszukiwanie: OpenSearch

Mapy: MapLibre, OpenStreetMap

Routing: GraphHopper

Infrastruktura: Docker, OVH, Object Storage, CI/CD

Efekt

Projekt został opublikowany na iOS i Androidzie i jest stale rozwijany na podstawie opinii użytkowników.

W ciągu pierwszych miesięcy aplikacja zdobyła ponad 2100 aktywnych użytkowników, a kolejne wersje regularnie rozszerzają ją o nowe funkcje związane z mapami, społecznością, planowaniem tras i bezpieczeństwem w górach.

Dla mnie Górołazi to przede wszystkim przykład projektu, w którym mogłem połączyć aplikację mobilną, backend, mapy, duże zbiory danych, infrastrukturę oraz projektowanie całego produktu od podstaw.