Дедикована квиткова система з мобільним застосунком для кінного заводу світового класу
Ми створили з нуля власну систему онлайн-продажу та обслуговування квитків разом із мобільним застосунком для контролю входів для Кінного заводу Янув-Підляський, одного з найвідоміших у світі заводів чистокровних арабських коней та організатора престижного аукціону Pride of Poland. Система обробляє міжнародні платежі, зокрема методи та валюти арабських ринків з розкладкою тексту справа наліво (RTL), генерує e-квитки з QR-кодами та забезпечує мобільний контроль входів, що працює навіть офлайн. Уся система є власністю замовника й підготовлена до подальшого розширення.
Клієнт та бізнес-контекст
Кінний завод Янув-Підляський (Stadnina Koni Janów Podlaski Sp. z o.o.) із головним офісом за адресою Wygoda 3, 21-505 Janów Podlaski є одним із найвідоміших у світі заводів чистокровних арабських коней. Його історія сягає 1817 року, а вирощені тут коні вже впродовж поколінь визначають стандарти в розведенні арабів у всьому світі.
Завод є організатором престижного міжнародного аукціону арабських коней Pride of Poland, події світового рівня, на яку приїжджають покупці з усього світу. Значну частину серед них становлять клієнти з Близького Сходу, зокрема з Об'єднаних Арабських Еміратів, Бахрейну та інших ринків GCC. Наша система обслужила, серед іншого, 56-ту едицію аукціону.
Така широка міжнародна аудиторія висуває конкретні вимоги до квиткової системи. Замовник потребував рішення, яке оброблятиме міжнародні платежі, а також методи та валюти арабських країн, коректно відображатиме контент мовами з написанням справа наліво (RTL) і водночас дозволятиме зручно контролювати входи на територію події, зокрема там, де доступ до Інтернету буває обмеженим.
Виклик
Обслуговування квитків для події міжнародного рівня висуває вимоги, яких не задовольняють типові готові квиткові платформи. Замовник очікував повністю дедикованого рішення, що є його власністю, без залежності від зовнішнього оператора, без ліцензійних обмежень щодо кількості станцій контролю та з можливістю подальшого розширення.
Перша сфера складності: платежі. Аудиторія аукціону глобальна, тому система мала приймати як популярні в Польщі методи (BLIK, миттєві перекази), так і платежі картками Visa та Mastercard, Apple Pay, Google Pay, Revolut, а також локальні методи оплати ринків GCC. До цього додається мультивалютність, тобто підтримка PLN, EUR і іноземних валют з автоматичним перерахунком курсів, та можливість конфігурувати кількох операторів оплати одночасно.
Друга сфера: інтернаціоналізація інтерфейсу. Сервіс мав бути доступним мовами ЄС та поза ЄС, зокрема арабською, що вимагає коректної обробки розкладки тексту справа наліво (RTL) на рівні всього інтерфейсу, а не лише перекладу контенту.
Третя сфера: контроль входів. Під час події квитки треба перевіряти швидко й надійно, у багатьох точках входу одночасно, контролюючи кількість входів. Ключовою була при цьому вимога працювати в режимі обмеженого доступу до Інтернету, тобто можливість сканувати квитки офлайн із подальшою синхронізацією даних.
Конкретні вимоги
- Власна система продажу квитків, що належить замовнику, без залежності від зовнішнього оператора
- Визначення категорій квитків і перепусток із диференційованими цінами та резервуванням безкоштовних перепусток
- Оплата картками, BLIK, Apple Pay, Google Pay, Revolut, миттєві перекази та локальні методи ринків GCC
- Мультивалютність (PLN, EUR, іноземні валюти) з автоматичним перерахунком курсів
- Багатомовність з підтримкою арабських мов і розкладки тексту RTL
- E-квитки з QR- або штрих-кодами, надсиланням e-mail, завантаженням PDF і додаванням до Wallet
- Мобільний застосунок для Android та iOS для контролю входів з офлайн-роботою та синхронізацією
- Адміністративна панель зі статистикою в реальному часі, звітами та експортом до XLSX і CSV
- Безпека відповідно до OWASP Top 10, шифрування даних і резервні копії
Процес реалізації
Реалізували проєкт за два місяці, поділивши роботу на впорядковані етапи. Роботу над вебсистемою, бекендом і мобільним застосунком вели паралельно, а кожен етап завершувався верифікацією із замовником.
Аналіз і специфікація
1 тижденьВоркшопи із замовником для визначення категорій квитків, методів оплати, валют, мов і сценаріїв контролю входів. Результат: документ вимог, що є основою для подальшої роботи.
UX/UI дизайн та архітектура
1-2 тижніПроєктування шляху покупки (гість і зареєстрований), адміністративної панелі та мобільного застосунку. Проєктування структури даних, ролей, дозволів і API разом із плануванням розкладки RTL.
Розробка вебсистеми та бекенду
3-4 тижніПобудова фронтенду на Next.js, REST API на Node.js та Express і бази даних PostgreSQL, автоматична генерація e-квитків з QR-кодами, керування пулами квитків та адміністративна панель зі статистикою та звітами.
Мобільний застосунок та офлайн-режим
2 тижніПобудова застосунку на React Native для Android та iOS: перевірка дійсності квитків, підрахунок входів, обробка кількох точок входу та офлайн-режим із синхронізацією даних.
Інтеграції платежів, тести та впровадження
1-2 тижніІнтеграція Przelewy24, Stripe і PayTabs, мультивалютність, тестування інтернаціоналізації та розкладки RTL, зміцнення безпеки (OWASP), продакшн-впровадження за адресою bilety.skjanow.pl і навчання замовника.
Технічне рішення
Ми надали власну, повністю дедиковану систему онлайн-продажу та обслуговування квитків разом із мобільним застосунком для контролю входів. Шар вебзастосунку побудували на Next.js 14 (React 18) з TypeScript і Tailwind CSS; бекенд: це Node.js з Express, що надає REST API з авторизацією на основі JWT, а дані зберігає PostgreSQL 16 з реплікацією та резервними копіями. Усе працює на виділеному сервері в інфраструктурі ЄС, за продакшн-адресою bilety.skjanow.pl.
Серцем обробки платежів є архітектура з кількох шлюзів, що працюють паралельно. Przelewy24 обслуговує польський ринок (BLIK, миттєві перекази), Stripe відповідає за ринки ЄС і США, а також платежі картками, Apple Pay і Google Pay, а PayTabs надає локальні методи оплати ринків GCC та арабських країн. Панель дозволяє конфігурувати кількох операторів одночасно, а мультивалютність (PLN, EUR та іноземні валюти) працює з автоматичним перерахунком курсів.
Багатомовність ми побудували на i18next з підтримкою розкладки тексту RTL для арабської мови. Завдяки цьому сервіс не лише перекладає контент мовами ЄС та поза ЄС, а й коректно віддзеркалює всю розкладку інтерфейсу там, де текст читається справа наліво.
Контроль входів забезпечує мобільний застосунок, написаний на React Native, що працює на Android та iOS. Він перевіряє дійсність квитків, контролює кількість входів і обробляє кілька точок входу, а найважливіше, може працювати в режимі обмеженого доступу до Інтернету, скануючи квитки офлайн і синхронізуючи дані після відновлення з'єднання.
Чому дедикована система, а не готова квиткова платформа?
Готові квиткові платформи прив'язують організатора до зовнішнього оператора, його комісій, лімітів і графіка розвитку. Замовник очікував рішення, яке буде його власністю, без ліцензійних обмежень щодо кількості станцій контролю та з повною свободою подальшого розширення. Дедикована система також дала повний контроль над нетиповими вимогами, а саме платежами арабських ринків і розкладкою RTL, яких стандартні платформи зазвичай не підтримують.
Чому три платіжні шлюзи одночасно?
Аудиторія аукціону Pride of Poland глобальна, тому один шлюз не покрив би всіх потреб. Przelewy24 забезпечує повний набір популярних у Польщі методів, Stripe обслуговує ринки ЄС і США, а також платежі картками та мобільними гаманцями, а PayTabs надає локальні методи оплати країн GCC. Архітектура з кількома операторами дозволяє вмикати й конфігурувати наступні шлюзи без перебудови системи.
Чому офлайн-режим у мобільному застосунку?
Під час великої події просто неба доступ до Інтернету в точках входу буває обмеженим або нестабільним. Якби контроль квитків вимагав постійного з'єднання, кожен його розрив блокував би вхід. Тому застосунок сканує та перевіряє квитки локально й синхронізує дані із системою після повернення зв'язку, що забезпечує безперебійне обслуговування входів незалежно від якості мережі.
Ключові функції системи
Система поєднує онлайн-продаж квитків, обробку міжнародних платежів і мобільний контроль входів в одне узгоджене ціле. Ось найважливіші модулі:
Продаж квитків і перепусток
Визначення категорій квитків із диференційованими цінами, резервування безкоштовних перепусток, форма заявки та автоматичні підтвердження покупки, що надсилаються покупцеві.
Міжнародні та локальні платежі
Картки Visa та Mastercard, BLIK, Apple Pay, Google Pay, Revolut, миттєві перекази та локальні методи оплати ринків GCC (Емірати, Бахрейн). Можливість конфігурувати кількох операторів одночасно.
Мультивалютність і багатомовність
Підтримка PLN, EUR та іноземних валют з автоматичним перерахунком курсів і переклад сервісу мовами ЄС та поза ЄС, зокрема арабськими з розкладкою тексту RTL.
E-квитки з QR-кодами
Автоматична генерація e-квитків з QR- або штрих-кодами, надсилання e-mail, повторна генерація, завантаження у форматі PDF і додавання до Wallet.
Мобільний контроль входів
Застосунок для Android та iOS перевіряє дійсність квитків, контролює кількість входів і обробляє кілька точок входу. Він також працює в режимі обмеженого доступу до Інтернету, зі скануванням офлайн і синхронізацією.
Адміністративна панель
Керування пулами квитків, перегляд продажів і статистики в реальному часі, генерація звітів, експорт до XLSX і CSV, керування користувачами та дозволами й історія системних операцій.
Сучасний інтерфейс покупки
Адаптивний інтерфейс, узгоджений з ідентифікацією замовника, з простим шляхом покупки. Купівля можлива як гість або після реєстрації, з входом також через Google та Apple.
Готовність до розширення
Ми підготували систему до подальшого розвитку, зокрема модулів продажу продуктів з особистим отриманням і доставкою, без потреби перебудовувати її основи.
Безпека даних
Ми спроєктували систему відповідно до практик OWASP Top 10, із шифруванням даних, журналом подій і резервними копіями бази PostgreSQL.
Технологічний стек
Кожен елемент стека ми обрали під конкретну вимогу проєкту, а саме продуктивність, безпеку, обробку міжнародних платежів і роботу мобільного застосунку в офлайн-режимі.
Результати
Ми надали робочу систему онлайн-продажу квитків разом із мобільним застосунком для контролю входів, запущену в продакшн за адресою bilety.skjanow.pl. Рішення обслужило, серед іншого, 56-ту едицію міжнародного аукціону Pride of Poland.
Система об'єднує в одному місці міжнародні та локальні платежі, зокрема методи та валюти арабських ринків, мультивалютність з автоматичним перерахунком курсів і багатомовність з розкладкою RTL. E-квитки генеруються автоматично з QR-кодами, а мобільний контроль входів працює також офлайн.
Важливо для замовника: уся система є його власністю, не прив'язує його до зовнішнього оператора й не накладає ліцензійних обмежень щодо кількості станцій контролю. Архітектуру ми підготували до подальшого розширення, зокрема модулями продажу продуктів з особистим отриманням і доставкою.
Що далі
Ми проєктували систему з думкою про розвиток від самого початку. Найближчий напрям розширення: модулі продажу продуктів з особистим отриманням і доставкою, які можна додати до наявної платформи без перебудови її основ.
Архітектура з кількома платіжними шлюзами та побудована на i18next інтернаціоналізація дозволяють у майбутньому додавати наступні методи оплати, валюти та мови в міру розвитку подій, що їх організовує завод. ByteWave залишається технічним партнером, відповідальним за підтримку та подальший розвиток системи.