Dedykowany system biletowy z aplikacją mobilną dla światowej klasy stadniny
Zbudowaliśmy od podstaw autorski system sprzedaży i obsługi biletów online oraz aplikację mobilną do kontroli wejść dla Stadniny Koni Janów Podlaski, jednej z najbardziej znanych na świecie stadnin koni arabskich czystej krwi i organizatora prestiżowej aukcji Pride of Poland. System obsługuje płatności międzynarodowe, w tym metody i waluty rynków arabskich z układem tekstu RTL, generuje e-bilety z kodami QR i umożliwia mobilną kontrolę wejść działającą także w trybie offline. Całość jest własnością zamawiającego i została przygotowana pod dalszą rozbudowę.
Klient i kontekst biznesowy
Stadnina Koni Janów Podlaski Sp. z o.o. z siedzibą w Wygodzie 3 (21-505 Janów Podlaski) to jedna z najbardziej znanych na świecie stadnin koni arabskich czystej krwi. Jej historia sięga 1817 roku, a hodowane tu konie od pokoleń wyznaczają standardy w hodowli arabów na całym świecie.
Stadnina jest organizatorem prestiżowej międzynarodowej aukcji koni arabskich Pride of Poland, wydarzenia o globalnej renomie, na które przyjeżdżają kupujący z całego świata. Wśród nabywców znaczącą grupę stanowią klienci z Bliskiego Wschodu, w tym ze Zjednoczonych Emiratów Arabskich, Bahrajnu i pozostałych rynków GCC. Nasz system obsłużył między innymi 56. edycję aukcji.
Tak szeroka, międzynarodowa publiczność oznacza konkretne wymagania wobec systemu sprzedaży biletów. Zamawiający potrzebował rozwiązania, które obsłuży płatności międzynarodowe oraz metody i waluty krajów arabskich, poprawnie wyświetli treść w językach pisanych od prawej do lewej (RTL), a przy tym pozwoli sprawnie kontrolować wejścia na teren wydarzenia, również tam, gdzie dostęp do Internetu bywa ograniczony.
Wyzwanie
Obsługa biletowa wydarzenia o międzynarodowej renomie stawia wymagania, których nie spełniają typowe, gotowe platformy biletowe. Zamawiający oczekiwał rozwiązania w pełni dedykowanego, będącego jego własnością, bez uzależnienia od zewnętrznego operatora, bez ograniczeń licencyjnych co do liczby stanowisk i z możliwością dalszej rozbudowy.
Pierwszy obszar trudności to płatności. Publiczność aukcji jest globalna, więc system musiał przyjmować zarówno popularne w Polsce metody (BLIK, przelewy natychmiastowe), jak i płatności kartami Visa oraz Mastercard, Apple Pay, Google Pay, Revolut, a także lokalne metody płatności rynków GCC. Do tego dochodzi wielowalutowość, czyli obsługa PLN, EUR i walut obcych z automatycznym przeliczaniem kursów oraz możliwość konfiguracji wielu operatorów płatności jednocześnie.
Drugi obszar to internacjonalizacja interfejsu. Serwis musiał być dostępny w językach UE oraz spoza UE, w szczególności w językach arabskich, co wymaga poprawnej obsługi układu tekstu od prawej do lewej (RTL) na poziomie całego interfejsu, a nie tylko tłumaczenia treści.
Trzeci obszar to kontrola wejść. Podczas wydarzenia bilety trzeba weryfikować szybko i pewnie, w wielu punktach wejściowych naraz, kontrolując liczbę wejść. Kluczowy był przy tym wymóg pracy w trybie ograniczonego dostępu do Internetu, czyli możliwość skanowania biletów offline z późniejszą synchronizacją danych.
Konkretne wymagania
- Autorski system sprzedaży biletów będący własnością zamawiającego, bez uzależnienia od operatora zewnętrznego
- Definiowanie kategorii biletów i wejściówek ze zróżnicowanymi cenami oraz rezerwacją darmowych wejściówek
- Płatności kartami, BLIK, Apple Pay, Google Pay, Revolut, przelewy natychmiastowe oraz lokalne metody rynków GCC
- Wielowalutowość (PLN, EUR, waluty obce) z automatycznym przeliczaniem kursów
- Wielojęzyczność z obsługą języków arabskich i układu tekstu RTL
- E-bilety z kodami QR lub kreskowymi, wysyłką e-mail, pobraniem PDF i dodaniem do Wallet
- Aplikacja mobilna na Android oraz iOS do kontroli wejść z pracą offline i synchronizacją
- Panel administracyjny ze statystykami w czasie rzeczywistym, raportami i eksportem do XLSX oraz CSV
- Bezpieczeństwo zgodne z OWASP Top 10, szyfrowanie danych, kopie zapasowe
Proces realizacji
Projekt zrealizowaliśmy w dwa miesiące, dzieląc pracę na uporządkowane etapy. Prace nad systemem webowym, backendem i aplikacją mobilną prowadziliśmy równolegle, a każdy etap kończył się weryfikacją z zamawiającym.
Analiza i specyfikacja
1 tydzieńWarsztaty z zamawiającym w celu zdefiniowania kategorii biletów, metod płatności, walut, języków oraz scenariuszy kontroli wejść. Efekt: dokument wymagań stanowiący podstawę dalszych prac.
Projekt UX/UI i architektura
1-2 tygodnieProjektowanie ścieżki zakupowej (zakup jako gość i po rejestracji), panelu administracyjnego oraz aplikacji mobilnej. Projekt struktury danych, ról, uprawnień i API wraz z zaplanowaniem obsługi układu RTL.
Rozwój systemu webowego i backendu
3-4 tygodnieBudowa frontendu w Next.js, REST API w Node.js i Express oraz bazy PostgreSQL, automatyczne generowanie e-biletów z kodami QR, zarządzanie pulami biletów oraz panel administracyjny ze statystykami i raportami.
Aplikacja mobilna i tryb offline
2 tygodnieBudowa aplikacji w React Native na Android oraz iOS: weryfikacja ważności biletów, kontrola liczby wejść, obsługa wielu punktów wejściowych oraz tryb offline z synchronizacją danych.
Integracje płatności, testy i wdrożenie
1-2 tygodnieIntegracja Przelewy24, Stripe i PayTabs, obsługa wielowalutowości, testy internacjonalizacji i układu RTL, utwardzenie bezpieczeństwa (OWASP), wdrożenie produkcyjne pod adresem bilety.skjanow.pl oraz szkolenie zamawiającego.
Rozwiązanie techniczne
Dostarczyliśmy autorski, w pełni dedykowany system sprzedaży i obsługi biletów online wraz z aplikacją mobilną do kontroli wejść. Warstwę aplikacji webowej zbudowaliśmy w oparciu o Next.js 14 (React 18) z TypeScript i Tailwind CSS, backend stanowi Node.js z Express udostępniający REST API z autoryzacją opartą na JWT, a dane przechowuje PostgreSQL 16 z replikacją i kopiami zapasowymi. Całość działa na serwerze dedykowanym w infrastrukturze UE, pod adresem produkcyjnym bilety.skjanow.pl.
Sercem obsługi płatności jest architektura wielu bramek pracujących równolegle. Przelewy24 obsługuje rynek polski (BLIK, przelewy natychmiastowe), Stripe odpowiada za rynki UE i USA oraz płatności kartami, Apple Pay i Google Pay, a PayTabs udostępnia lokalne metody płatności rynków GCC i krajów arabskich. Panel pozwala konfigurować wielu operatorów jednocześnie, a wielowalutowość (PLN, EUR i waluty obce) działa z automatycznym przeliczaniem kursów.
Wielojęzyczność oparliśmy na i18next z obsługą układu tekstu RTL dla języka arabskiego. Dzięki temu serwis nie tylko tłumaczy treści na języki UE i spoza UE, ale też poprawnie odwraca cały układ interfejsu tam, gdzie tekst czytany jest od prawej do lewej.
Kontrolę wejść realizuje aplikacja mobilna napisana w React Native, działająca na Androidzie oraz iOS. Weryfikuje ważność biletów, kontroluje liczbę wejść i obsługuje wiele punktów wejściowych, a co najważniejsze, potrafi pracować w trybie ograniczonego dostępu do Internetu, skanując bilety offline i synchronizując dane po odzyskaniu połączenia.
Dlaczego system dedykowany, a nie gotowa platforma biletowa?
Gotowe platformy biletowe uzależniają organizatora od zewnętrznego operatora, jego prowizji, limitów i harmonogramu rozwoju. Zamawiający oczekiwał rozwiązania, które będzie jego własnością, bez ograniczeń licencyjnych co do liczby stanowisk kontroli i z pełną swobodą dalszej rozbudowy. System dedykowany dał też pełną kontrolę nad obsługą nietypowych wymagań, czyli płatności rynków arabskich i układu RTL, których standardowe platformy zwykle nie wspierają.
Dlaczego trzy bramki płatnicze naraz?
Publiczność aukcji Pride of Poland jest globalna, więc jedna bramka nie pokryłaby wszystkich potrzeb. Przelewy24 zapewnia komplet metod popularnych w Polsce, Stripe obsługuje rynki UE i USA oraz płatności kartami i portfelami mobilnymi, a PayTabs udostępnia lokalne metody płatności krajów GCC. Architektura wielu operatorów pozwala włączać i konfigurować kolejne bramki bez przebudowy systemu.
Dlaczego tryb offline w aplikacji mobilnej?
Podczas dużego wydarzenia plenerowego dostęp do Internetu w punktach wejściowych bywa ograniczony lub niestabilny. Gdyby kontrola biletów wymagała stałego połączenia, każde jego zerwanie blokowałoby wejście. Dlatego aplikacja skanuje i weryfikuje bilety lokalnie, a dane synchronizuje z systemem po odzyskaniu łączności, co zapewnia płynną obsługę wejść niezależnie od jakości sieci.
Kluczowe funkcje systemu
System łączy sprzedaż biletów online, obsługę płatności międzynarodowych i mobilną kontrolę wejść w jedną, spójną całość. Oto najważniejsze moduły:
Sprzedaż biletów i wejściówek
Definiowanie kategorii biletów ze zróżnicowanymi cenami, rezerwacja darmowych wejściówek, formularz zgłoszeniowy oraz automatyczne potwierdzenia zakupu wysyłane do kupującego.
Płatności międzynarodowe i lokalne
Karty Visa i Mastercard, BLIK, Apple Pay, Google Pay, Revolut, przelewy natychmiastowe oraz lokalne metody płatności rynków GCC (Emiraty, Bahrajn). Możliwość konfiguracji wielu operatorów jednocześnie.
Wielowalutowość i wielojęzyczność
Obsługa PLN, EUR i walut obcych z automatycznym przeliczaniem kursów oraz tłumaczenie serwisu na języki UE i spoza UE, w szczególności języki arabskie z układem tekstu RTL.
E-bilety z kodami QR
Automatyczne generowanie e-biletów z kodami QR lub kreskowymi, wysyłka e-mailem, możliwość ponownej generacji, pobranie w formacie PDF oraz dodanie do Wallet.
Mobilna kontrola wejść
Aplikacja na Android oraz iOS weryfikuje ważność biletów, kontroluje liczbę wejść i obsługuje wiele punktów wejściowych. Działa również w trybie ograniczonego dostępu do Internetu, ze skanowaniem offline i synchronizacją.
Panel administracyjny
Zarządzanie pulami biletów, podgląd sprzedaży i statystyk w czasie rzeczywistym, generowanie raportów, eksport do XLSX i CSV, zarządzanie użytkownikami i uprawnieniami oraz historia operacji systemowych.
Nowoczesny interfejs zakupowy
Responsywny interfejs spójny z identyfikacją zamawiającego, z prostą ścieżką zakupową. Zakup możliwy jako gość lub po rejestracji, z logowaniem także przez Google i Apple.
Gotowość pod rozbudowę
System przygotowaliśmy pod dalszy rozwój, w tym moduły sprzedaży produktów z odbiorem osobistym oraz wysyłką, bez potrzeby przebudowy fundamentów.
Bezpieczeństwo danych
System zaprojektowaliśmy zgodnie z praktykami OWASP Top 10, z szyfrowaniem danych, dziennikiem zdarzeń i kopiami zapasowymi bazy PostgreSQL.
Stack technologiczny
Każdy element stacku dobraliśmy pod konkretne wymagania projektu, czyli wydajność, bezpieczeństwo, obsługę płatności międzynarodowych i pracę aplikacji mobilnej w trybie offline.
Wyniki
Dostarczyliśmy działający system sprzedaży biletów online wraz z aplikacją mobilną do kontroli wejść, uruchomiony produkcyjnie pod adresem bilety.skjanow.pl. Rozwiązanie obsłużyło między innymi 56. edycję międzynarodowej aukcji Pride of Poland.
System łączy w jednym miejscu płatności międzynarodowe i lokalne, w tym metody oraz waluty rynków arabskich, wielowalutowość z automatycznym przeliczaniem kursów oraz wielojęzyczność z obsługą układu RTL. E-bilety generowane są automatycznie z kodami QR, a mobilna kontrola wejść działa także offline.
Co istotne dla zamawiającego, cały system jest jego własnością, nie uzależnia go od zewnętrznego operatora ani nie narzuca ograniczeń licencyjnych co do liczby stanowisk kontroli. Architekturę przygotowaliśmy pod dalszą rozbudowę, w tym o moduły sprzedaży produktów z odbiorem osobistym i wysyłką.
Co dalej
System od początku projektowaliśmy z myślą o rozwoju. Najbliższy kierunek rozbudowy to moduły sprzedaży produktów z odbiorem osobistym oraz wysyłką, które można dołączyć do istniejącej platformy bez przebudowy jej fundamentów.
Architektura wielu bramek płatniczych i oparta na i18next internacjonalizacja pozwalają w przyszłości dodawać kolejne metody płatności, waluty i języki w miarę rozwoju wydarzeń organizowanych przez stadninę. ByteWave pozostaje partnerem technicznym odpowiedzialnym za utrzymanie i dalszy rozwój systemu.