Сервис бронирования мест
для загородного отдыха
Проект - маркетплейс загородных площадок для отдыха, который помогает владельцам мест и их гостям взаимодействовать, а также контролировать весь процесс бронирования. Проект нацелен на предоставление каталога необычных локаций вблизи выбранного города. В рамках кейса было проведено обновление и улучшено юзабилити сайта как для посетителей, так и для партнеров.
Отрасль
Туризм
Дата
Апр. 2022 – Март 2023
Стоимость
> 5 млн. руб.
Услуги
Backend-разработка, UI/UX дизайн, Frontend-разработка, Аутстаффинг
Команда
3 разработчика
Технологии
PHP 7.4, Yii2, PHPStan, MySQL, JavaScript, Vue.js, JQuery, MongoDB, Git, Docker, Docker Compose

О клиенте
Компания предоставляет платформу для размещения арендных загородных площадок с целью привлечения гостей. Дает доступ партнерам к управлению всеми этапами заказа через личные кабинеты пользователей.
Посетителям ресурс полезен в качестве каталога необычных локаций отдыха вблизи выбранного города.
Сервис бронирования – это удобный инструмент, помогающий взаимодействовать отельерам и их гостям, а также контролировать весь процесс: от заявки на бронь до выезда из номера. Представляет собой маркетплейс площадок и имеет специализацию на конкретном направлении – запоминающийся загородный отдых.
Боль клиента - узкая специализация проекта и технические ограничения интерфейса замедляли масштабирование на федеральном уровне. Платформа не позволяла гибко управлять номерным фондом и продажами, что требовало полной смены UX/UI и модернизации функционала.
Задача
Улучшить удобство (юзабилити) сервиса как для пользователей, так и для владельцев площадок; обеспечить масштабирование бизнеса, исправив недостатки в интерфейсе и функционале платформы.
Полное обновление верстки сервиса с доработкой функционала.
Рефакторинг кода и оптимизация скорости работы сайта.
Разработка системы рекомендации номеров, а также создание виджета бронирования, который можно легко встроить на стороннюю платформу.
Решение
Команда обновила внешний вид сервиса и провела масштабный рефакторинг кода, приведя его к стандартам PSR.
Ключевой разработкой стал виджет бронирования номеров, реализованный на Vue.js как отдельное приложение, для которого создали современный REST API с возможностью кастомизации оформления.
Для системы рекомендаций номеров применили приемы комбинаторики и алгоритм, основанный на «задаче о рюкзаках», который позволил точно распределять места, учитывая количество взрослых и детей, их возраст, а также дополнительные услуги.
Был реализован функционал приема онлайн-платежей с 50% депозитом.
Ход работы
Наши специалисты усилили уже действующую команду проекта, участвовали в ежедневных планерках и использовали нестандартные подходы к разработке. За год сотрудничества мы обновили внешний вид сервиса бронирования и переписали большое количество кода.
Привели его к стандартам PSR и построили архитектуру так, чтоб он был минимально привязан к текущему фреймворку для безболезненного перехода на более свежую версию. Внедрили систему кейсов, в которой один класс равен одному действию.
Нашей основной разработкой стал виджет бронирования номеров.

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

Алгоритм распределения номеров создан на основе задачи о рюкзаках: уложили как можно больше главных критериев в ограниченное пространство. Приоритетность расположения в комнатах по спальным местам отталкивается от соотношения количества взрослых и детей.
Например, 2 взрослых и 2 ребенка – это 1 двуспальная и 2 односпальные кровати. В некоторых отелях есть возможность для пользователей сервиса внести дополнительную койку. Расчет стоимости сделан не только исходя от общего количества людей, но и с учетом возраста гостей. Настройка цены на детей и установка ограничений по годам осуществляются в административной части.
После выбора самого отеля и номеров идет предложение о дополнительных услугах на территории отдыха: баня, сауна, питание, экскурсии, прокат инвентаря и прочее. Они размещаются партнерами самостоятельно через личные кабинеты.

В системе реализован функционал приема онлайн платежей. После подбора номера пользователю дается 60 минут на внесение депозита в размере 50% от стоимости проживания. При успешном переводе средств придет подтверждение брони на указанные данные для связи.

Сам виджет бронирования реализован на Vue как отдельное приложение. Для него был создан современный API в соответствии со спецификацией REST. Мы разработали его так, чтобы можно было не только внедрять в любой интернет-ресурс, но и кастомизировать ее оформление.
Например, если партнер хочет добавить виджет на свой сайт, то он:
заходит в личный кабинет,
выбирает цвет и компоненты модуля,
копирует получившийся HTML-код и встраивает в свою платформу.

Выбор приоритетов для каталога отелей, сложность распределения детей и взрослых между номерами, а также другие нетривиальные задачи – все это помогло нам в очередной раз погрузиться в туристический бизнес и применить необычные решения для реализации его требований.
Результаты
Создан интуитивно понятный интерфейс сайта с обновленным дизайном.
Разработан улучшенный функционал для гибкой и автоматизированной работы с партнерами и посетителями.
Проведен рефакторинг предлагаемых услуг и перевод страниц ресурса на новый технологический стек.
Разработан и внедрен кастомизируемый виджет бронирования.
Хотите похожий результат?
Не откладывайте — сделаем бесплатный аудит проекта уже сегодня. Напишите нам — обсудим детали за чашкой кофе.

