ByteWave
System biletowy + aplikacja mobilna

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ę.

Czas realizacji: 2 miesiące
Otwórz projekt: bilety.skjanow.pl

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

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.

01

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.

02

Projekt UX/UI i architektura

1-2 tygodnie

Projektowanie ś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.

03

Rozwój systemu webowego i backendu

3-4 tygodnie

Budowa 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.

04

Aplikacja mobilna i tryb offline

2 tygodnie

Budowa 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.

05

Integracje płatności, testy i wdrożenie

1-2 tygodnie

Integracja 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

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:

01

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.

02

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.

03

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.

04

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.

05

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ą.

06

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.

07

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.

08

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.

09

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.

Next.js 14 (React 18)
Warstwa aplikacji webowej, szybki i nowoczesny frontend z renderowaniem po stronie serwera
TypeScript
Statyczne typowanie zwiększające niezawodność kodu w całym systemie
Tailwind CSS
Spójny, responsywny interfejs zgodny z identyfikacją zamawiającego
Node.js + Express
Backend udostępniający REST API dla aplikacji webowej i mobilnej
JWT
Bezpieczna autoryzacja użytkowników i stanowisk kontroli
PostgreSQL 16
Baza danych z replikacją i kopiami zapasowymi
React Native
Aplikacja mobilna na Android oraz iOS z trybem offline i synchronizacją
Przelewy24
Bramka płatnicza dla rynku polskiego (BLIK, przelewy natychmiastowe)
Stripe
Płatności dla rynków UE i USA oraz karty i portfele mobilne
PayTabs
Lokalne metody płatności rynków GCC i krajów arabskich
i18next
Internacjonalizacja z obsługą układu RTL dla języka arabskiego
OWASP Top 10
Bezpieczeństwo, szyfrowanie danych, dziennik zdarzeń, kopie zapasowe

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ą.

Android + iOS
Aplikacja mobilna do kontroli wejść
QR
E-bilety generowane automatycznie
Offline
Skanowanie z synchronizacją
PL · UE · GCC
Bramki płatnicze Przelewy24, Stripe, PayTabs

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.

Masz pomysł na projekt?

Porozmawiajmy o tym, jak możemy go zrealizować.

Skontaktuj się z nami