Разработка календаря бронирования для сайта на Битрикс авиационного учебного центра
- Почему Google Календарь, Yclients и Dikidi не подходят
- Что должен уметь сервис бронирования
- Как делается календарь бронирования
- Что получилось и как работает модуль «Расписание бронирования»
- Что еще умеет календарь
Когда мы покупаем билет на самолет, то рассчитываем, что им будут управлять одни из самых подготовленных пилотов авиакомпании. Чтобы оправдать наши надежды, быть готовыми к любым ситуациям в воздухе, летчики должны постоянно тренироваться. Делать это непосредственно на борту воздушного судна нецелесообразно, а вот на тренажерах — в самый раз. Можно воспроизвести множество нештатных ситуаций и тщательно отработать их без риска.
Отечественная авиа отрасль постепенно восстанавливается и поставляет на рынок новые типы самолетов, которые нужно осваивать. Для качественной подготовки и переподготовки летчиков авиа-концерны разрабатывают тренажеры. Их мало, время их работы стоит дорого, поэтому для проведения тренировок эксплуатантам воздушных судов нужно заранее бронировать временные диапазоны (слоты) в учебном центре.
С целью создания функционала бронирования летных тренажеров к нам обратился Авиационный учебный центр. В 2022 году мы сделали для них сайт на CMS «1С-Битрикс: Управление сайтом» (БУС). Позже они вернулись с запросом автоматизации процесса записи на летные тренажеры для партнеров. Партнёры – топовые Российские авиакомпании.
Вот такие тренажеры есть в учебном центре.
Почему Google Календарь, Yclients и Dikidi не подходят
Первая мысль, которая приходит в голову при получении ТЗ на разработку сервиса бронирования: а почему нельзя использовать работающие сервисы онлайн-записи? Бизнес-смысл ведь тот же самый.
Как покажем далее — не совсем.
-
Во-первых, не понятно где владельцы сервисов хранят и как распоряжаются персональными данными.
-
Во-вторых, нет уверенности, что сервис будет доступен в любой момент.
-
В-третьих, нужен был вполне конкретный функционал личного кабинета, который не могут обеспечить «облачные» календари. Например, требовалась выгрузка в xls списка забронированных слотов в конкретном диапазоне дат.
-
В-четвертых, бронировать время для обучения летчиков там, где записываются «на ноготочки» несерьезно для «дочки» Ростеха.
Что должен уметь сервис бронирования
В плане логики и UI/UX не требовалось ничего инновационного. На сайте нужно было создать закрытый раздел (Личный кабинет), попасть в который могут только партнеры после авторизации. Всё должно быть просто, лаконично, по делу, как в нашей B2B-платформе.
-
ЛК должен содержать сведения об организации, расписание тренажеров и инструкцию по бронированию;
-
расписание должно быть интерактивным и представлять из себя таблицу с временными диапазонами;
-
зарегистрированным пользователям предоставляется выбор тренажеров в разных локациях;
-
слоты по 4 часа, можно бронировать на годы вперед, смотреть расписание прошлых месяцев;
-
при бронировании требовалось предусмотреть возможность указания финансовых отношений: субсидия, прямой договор, разовая оплата. У пользователя должна быть возможность выбрать, а у представителя Учебного центра подтвердить субсидию на оплату обучения на тренажере;
-
администратор может поставить в расписание часы на техническое обслуживание тренажеров. Это время не бронируется.
После заполнения и отправки формы на предоставление доступа к тренажеру, администратору приходит уведомление о том, что появилась новая заявка. Если заявка подана с отметкой «субсидия», то забронированные слоты остаются в резерве и отмечаются в расписании до момента получения согласования от руководства о возможности субсидирования забронированных слотов.
График един для онлайн и оффлайн бронирования, все данные по бронированию хранятся на сайте. У сотрудников учебного центра есть возможность руками вносить данные по бронированию в календарь, резервировать слоты, снимать резерв и бронь.
Как делается календарь бронирования
На работу заложили 2 месяца:
-
в первый месяц делаем календарь, форму записи, «всю начинку» для дальнейших этапов;
-
во второй месяц доделываем интерфейсы администратора, финально полируем и релизим.
Времени достаточно, тем более, что сделана уже не первая сотня проектов по доработкам модулей для БУС.
За это время:
-
Провели аналитические сессии, на которых проработали требования и UI/UX. Выбрали функциональный и хорошо документированный open source плагин календаря на js.
-
Написали подробную декомпозицию: работу REST API, входные параметры, таблицы в БД, структуру модуля. В основе всего — наш собственный модуль для БУС «Интерволга: Бронирование тренажеров». Этот модуль умеет обрабатывать API-запросы, создавать разделы сайта «Расписание бронирования» (для пользователя) и «Заявки» (для администратора), а также необходимые им компоненты для вывода календаря. Это полностью самостоятельный продукт: администратору достаточно просто установить его на сайт чтобы начать пользоваться функционалом бронирования тренажеров.
-
Затем сели писать публичную и серверную части (REST API). Пока творческая часть команды создавала модульные сетки, рисовала прототип, верстала окончательные версии страниц и оптимизировала плагин для вывода календаря, на бэке писали свою часть начинки (методы запросов к базе данных, маршрутизация, приведение ответов сервера в нужный формат и др.).
-
Потом ревью кода, тестирование, отладка, снова тестирование, и, наконец, деплой.
Путь от идеи в excel до прототипа.
Что получилось и как работает модуль «Расписание бронирования»
Сценарии пользователя
Представитель авиакомпании авторизуется в Личном кабинете, выбирает локацию и тренажер. После этого ему становится доступно Расписание. Всем пользователям показывается одинаковая таблица, в которой видно: свободные слоты (белые), забронированные слоты (серые), включенные в текущую заявку слоты (зеленые). Пользователь может выбрать один или несколько 2-х или 4-х часовых слотов. Выбранные данные автоматически фиксируются в форму, заполняются данные из ЛК авиакомпании: название компании и номер договора. Фамилии пилотов вносятся вручную. После этого заявку можно отправить на согласование.
После отправки заявки выбранные слоты становятся забронированными и недоступными для других пользователей.
Сценарии администратора.
Для просмотра всех поступивших заявок администратор, как и обычный пользователь, тоже должен выбрать локацию и тренажер.
Заявки выводятся списком. В анонсе для удобства указываются: номер заявки, наименование организации, дата создания заявки, запрос субсидии. Столбцы можно сортировать и находить через поиск. На детальной странице по заявке представлено больше информации.
Администратор может:
-
Отклонять (удалять) забронированные слоты, что снова делает слот доступным для бронирования обычными пользователями.
-
Согласовывать или отклонять заявки, поданные с учетом субсидии.
-
Изменять слот, заменять время слота на одно из свободных.
-
Добавлять слоты.
-
Изменять созданные заявки: уже забронированные партнером слоты в заявке останутся зелеными, а новые, добавленные администратором, - желтым.
При изменении заявки пользователю придет уведомление на e-mail, а в разделе «Мои записи -> История изменений» появится новая строчка.
Что еще умеет календарь
В версии для учебного центра используется только часть возможностей плагина.
Полнофункциональная версия умеет гораздо больше:
-
календарь полностью настраиваемый, с пользовательскими триггерами и настраиваемым текстом (с возможностью перевода);
-
по умолчанию поддерживается 51 язык;
-
просмотр дня, недели, месяца, года, всех событий и временной шкалы с возможностью выбора даты, виджета и pop-up;
-
выбор начала недели;
-
поиск по событиям;
-
импорт и экспорт событий из других календарей;
-
экспорт событий в форматы CSV, XML, JSON, TEXT, iCal, MD, HTML и TSV с поддержкой настройки системного буфера обмена;
-
импорт событий из файлов iCal и JSON;
-
изменение времени и даты события простым перетаскиванием (в режиме просмотра за день /неделю);
-
вырезание/ копирование/ вставка (с поддержкой множественного выбора) и дублирование событий;
-
сохранение данных с помощью локального хранилища;
-
поддержка привязки данных и плагинов jQuery.
Не хотите платить за подписку на сервисы онлайн-записи и конкурировать с другими компаниями в стороннем приложении? Не хотите рисковать персональными данными клиентов и обременять их установкой мобильных приложений?
Если вашему сайту нужен мощный и гибкий сервис для бронирования, а не комбайн со складским учетом, эквайрингом и онлайн-кассой, — опишите задачу в форме обратной связи. Наш эксперт перезвонит, ответит на вопросы и предложит решение.
Если вы дочитали статью до конца, то с большой долей вероятности интересуетесь темой развития сайта, т.е. пришли по адресу. Дело в том, что эта и подобные задачи решаются нами не только как отдельные проекты, но и в рамках развития и технической поддержки сайтов. В блоге есть статья на эту тему. Почитайте, там о нашем опыте и принципах.
Статьи по теме
- аренда команды (от 2 человек, не менее 3 месяцев);
- итерации с фиксированной ценой (1-3 месяца длительностью).
- регулярные онлайн-планерки с заказчиком;
- квалифицированных специалистов;
- организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
- полную прозрачность и регулярность отчетов о результатах.
- нагруженный интернет-магазин;
- личный кабинет;
- оптовые продажи — B2B-платформа;
- маркетплейс;
- технический аудит сайта;
- Битрикс24 — корпоративные HR-порталы;
- Битрикс24 — построение CRM-системы;
- Битрикс24 — личные кабинеты сотрудников;
- Битрикс24 — аудит портала;
- 1С — интеграция с другими системами;
- 1С — доработка системы;
- маркетинг — комплексное интернет-продвижение;
- маркетинг — продвижение для B2B.