Кейс
Мобильное приложение по продаже билетов для авиаперевозчика


Мобильное приложение по продаже билетов для авиаперевозчика
Мы разработали мобильное приложение для продажи авиабилетов и дополнительных услуг одной из пяти крупнейших российских авиакомпаний.
Цель проекта
Развитие мобильного канала продаж, обеспечение пользователей современным инструментов взаимодействия с авиакомпанией.
Ключевая особенность
Стандартная продажа билета — резервирование, оплата, корректировка, регистрация на рейс — имеет сложную бизнес-логику и превращается в запутанный клубок многоходовых сценариев, если принять в расчет сегментированность пассажиров по категориям и типам услуг, защиту от ошибок, последовательность работы на разных устройствах.
Решение
Современный дизайн, высокая скорость загрузки и обработки информации, а также упрощенная навигация в приложении позволяет совершить покупку билетов в несколько кликов. Пассажиры могут планировать и управлять своим путешествием, безопасно хранить в приложении документы и связываться с поддержкой через интернет.




Технологический стэк
>
Интеграции
rest jsonsoaptelnet
Функционал системы
Поиск рейсов и выбор подходящего тарифа базовый
Удобный интерфейс для поиска рейсов, сравнение опций при выборе тарифа, выделение предложений с лучшей ценой и скидками.
Выбор дополнительных услуг базовый
Для повышения комфорта путешествий в приложении мы даём дополнительно приобрести как собственные услуги авиакомпании, так и сервисы ее партнеров. Это позволяет повысить прибыль перевозчика и расширить возможности для интеграций.
Отслеживание выгодных предложения и акций базовый
Мы отправляем пользователям уведомления об акциях и закладываем в интерфейсе приложения место под рекламные баннеры авиакомпании. Гибкая настройка предложений в административной панели даёт пользователям возможность выгодно спланировать путешествие, а авиакомпании – продать максимальное количество билетов.
Онлайн регистрация на рейс базовый
Для экономии времени пассажиров мы реализовали онлайн регистрацию на рейс, выбор места и других дополнительных услуг. Теперь пользователям не нужно стоять в очереди на стойке регистрации в аэропорту.
Онлайн-табло базовый
Просмотр информации о рейсах, выполняемых авиакомпанией: о начале и окончании регистрации на рейс, задержке рейса и прочего. Мы обеспечиваем синхронизацию данных в реальном времени, благодаря чему пассажиры могут узнавать об изменении времени перелёта в приложении.
Хранение посадочных талонов базовый
Приложение обеспечивает удобный доступ к талону даже в оффлайн режиме.
Логирование базовый
Мы применяем систему логирования для отслеживания корректности выполнения операций. Такая система позволяет команде разработки быстро локализовать проблемы в работе приложения.
Интеграция с процессинговым центром базовый
Мы поддерживаем в приложении разные способы оплаты билетов и услуг: картой, бонусами, сертификатом, а также сочетание нескольких видов оплаты. Мы проработали логику списания при смешанной оплате с учётом комиссий, промокодов и бонусных баллов.
Административная панель серверной части системы базовый
Управлять настройками системы, отслеживать события и получать статистику позволяет специальный веб-модуль администратора.
Развитый функционал личного кабинета пользователя ✦особый✦
Приложение позволяет автоматически использовать персональные данные при покупке билета, хранить информацию о платежных картах для быстрой оплаты, отображать историю начисления бонусов программы лояльности авиакомпании.
Интеграция с сервисами партнеров авиакомпании ✦особый✦
Информация, отображаемая в мобильном приложении, формируется в том числе через запросы к сервисам партнеров.
Интеграция с сервисом отображения погоды на карте ✦особый✦
Погодные условия города отправления отображаются в деталях бронирования. Таким образом можно определить возможную причину задержки рейса или просто подготовиться к погодным условиям.
Сервис поддержки пассажиров ✦особый✦
Пользователи приложения могут общаться с представителями авиакомпании по разным каналам связи: чат-бот, интернет-звонок и обычный телефонный звонок.
Обработка ситуаций при отключенных сервисах партнеров ✦особый✦
Мы реализовали механизм проверки работоспособности сервисов партнеров, который позволяет пользователю перейти на сайт авиакомпании для продолжения работы в случае, если сервис недоступен в мобильном приложении.
Наши практики
От заказчика к нам поступает верхнеуровневая задача — например, реализовать возможность возврата билетов. Ее реализация требует не только анализа поведения пользователей системы, но и согласования с командами других подрядчиков клиента (платежный шлюз, система бронирования, CRM). Иногда предоставленная документация API сторонних сервисов оказывается неверна, и тогда приходится заново продумывать процесс непосредственно в ходе реализации проекта.
В условиях сложной политической ситуации потребовалось в сжатые сроки реализовать целый комплекс мероприятий по предотвращению остановки работы. Мы реализовали переход с системы бронирования Amadeus на систему Сирена за считанные дни, сохранив работоспособность системы.
Еще один пример связан с запретом приложения компании в Apple App Store. В худшем случае компания потеряла бы всю пользовательскую базу этого канала. Поэтому мы разработали альтернативное мобильное приложение, наладили скачивание и обновление этого приложения через официальный сайт компании и альтернативные сторы. При этом нам удалось реализовать поддержку ранее установленных версий приложения и за счет этого дополнительно сохранить около 20-30% пользовательской базы.
Еще один пример связан с запретом приложения компании в Apple App Store. В худшем случае компания потеряла бы всю пользовательскую базу этого канала. Поэтому мы разработали альтернативное мобильное приложение, наладили скачивание и обновление этого приложения через официальный сайт компании и альтернативные сторы. При этом нам удалось реализовать поддержку ранее установленных версий приложения и за счет этого дополнительно сохранить около 20-30% пользовательской базы.
Мы перевели инфраструктуру на современные варианты развертывания с помощью конвейера CI/CD, чтобы иметь возможность обновлять сервера без перехода в режим техобслуживания.
На проекте есть выделенный инженер поддержки, который ведет мониторинг системы и работает с обращениями клиентов. Мы автоматизировали работу с обращениями, чтобы обратная связь от пользователей попадала напрямую в Jira проекта.
Погруженность в предметную область заказчика позволяет нам выступать с собственными предложениями и участвовать в приоритезации разработки. Основываясь на нашем опыте, анализе последних тенденций и продуктов конкурентов, мы предлагаем новый функционал в соответствии с бизнес-приоритетами заказчика. Например, мы заботимся об удобстве интерфейса приложения и повышении конверсионности мобильного канала продаж, обеспечении бесперебойной работы и доступности сервиса, отказоустойчивости системы в условиях большого потока постоянных соединений и пикового спроса во время проведения акций и распродаж.
Мы постоянно возвращаемся к обновлению архитектуры, технологического стека и документации, потому что те изменения и дополнения, которые накапливаются по мере развития проекта, делают его все более сложным с точки зрения поддержки. Если этот процесс оставить без контроля, в будущем это может негативно сказаться на возможности развития системы и ее отказоустойчивости. Это явление называется технический долг. Учитывая долгосрочные планы клиента, мы следим за регулярным обнулением этого долга.
Наш процесс работы над проектом построен таким образом, чтобы гарантировать постоянное повышение эффективности работы и качества продукта.
1. Проводим регулярные ретроспективы, чтобы проанализировать рабочий процесс и выявить потенциал для оптимизации.
2. При потребности развития новых технических компетенций, например, для добавления нового технического стека, мы используем регламентированный и отработанный процесс индивидуального развития и обучения.
3. Интегрируем применимые успешные практики с других проектов.
4. Проводим регулярный внутренний независимый аудит всех составляющих проекта: анализируем технологические практики, свежим взглядом проверяем и оцениваем работу аналитиков и дизайнеров, оптимизируем управление проектом.
1. Проводим регулярные ретроспективы, чтобы проанализировать рабочий процесс и выявить потенциал для оптимизации.
2. При потребности развития новых технических компетенций, например, для добавления нового технического стека, мы используем регламентированный и отработанный процесс индивидуального развития и обучения.
3. Интегрируем применимые успешные практики с других проектов.
4. Проводим регулярный внутренний независимый аудит всех составляющих проекта: анализируем технологические практики, свежим взглядом проверяем и оцениваем работу аналитиков и дизайнеров, оптимизируем управление проектом.











