Кейс 06 / Разработка и DevOps

Билетная платформа и офлайн-сканер для мероприятий

Продавать билеты через сайт и партнерские каналы, а на входе быстро проверять QR-коды даже при нестабильном интернете.

Платформа объединяет продажи через сайт и партнерские каналы с проверкой QR-кодов на площадке. PWA-сканер поддерживает заранее согласованный офлайн-сценарий и синхронизацию проходов после восстановления сети.

  • Ticketing
  • PWA
  • Платежи

С чего начали

  • Разделили продажу, выпуск билета и проход на самостоятельные процессы.
  • Для каждого процесса определили отдельное состояние и правило повторной обработки.
  • Спроектировали контролируемый офлайн-режим с последующей фиксацией конфликтов.
  • Для мероприятий с высоким риском предусмотрели локальный координирующий узел или обязательную сеть между сканерами.

Что сделала команда

  • Разработали страницы событий, тарифы, схемы залов, квоты, промокоды и партнерские виджеты.
  • Добавили временный резерв места и выпуск билета после подтвержденной оплаты.
  • Создали кабинет организатора с продажами, возвратами, гостевыми списками и ролями.
  • Реализовали подписанный QR-код и PWA-сканер для обычного телефона.
  • Добавили офлайн-пакет билетов, синхронизацию проходов и общий журнал для нескольких входов.
  • Разработали версионируемый партнерский API и нагрузочный сценарий старта продаж.

Как проверили результат

  • Проверить защиту квоты и места при параллельной покупке.
  • Проверить отсутствие нового билета при повторном callback.
  • Проверить блокировку прохода по возвращенному билету.
  • Проверить работу сканера в согласованном офлайн-сценарии.
  • Проверить совместимость партнерского API и согласованный нагрузочный профиль.

Что получил заказчик

  • Витрина и backend
  • Кабинет организатора
  • PWA-сканер
  • API, схема синхронизации и платежная документация
  • Нагрузочные тесты и инструкция площадке для спорных проходов

Технологии и инструменты

  • Next.js
  • Go
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Service Worker
  • IndexedDB
  • Web Crypto API

Следующий шаг

Обсудим задачу с похожими ограничениями

Пришлите короткое описание. Предложим формат первого этапа, критерии приемки и подходящий состав команды.