Workspace Digital Awards 2025 — успейте номинировать кейсы по льготной цене до 1 декабря. Принять участие!
Holyweb
Личный B2B кабинет для отелей по управлению номерами и ценами на сервисе Отелло от 2ГИС
Holyweb
WDA
2024
#Сайт под ключ

Личный B2B кабинет для отелей по управлению номерами и ценами на сервисе Отелло от 2ГИС

2661 
Holyweb
Holyweb Россия, Москва
Поделиться:
Клиент

2ГИС

Сфера

Туризм и отдых

Регион

Россия

Тип сайта

Порталы и сервисы

Сдано

Май 2023

Задача

Весной 2022 приостановили работу международные провайдеры онлайн-бронирования Booking и Airbnb, занимавшие до 80% рынка. Спрос оставался высоким: в мае – августе в России путешествовало около 25 млн человек.

Пользователи переключились на российские сервисы. Так был запущен Отелло от 2ГИС – онлайн-сервис для бронирования отелей и гостиниц. Сервис стал заменой зарубежным провайдерам, обеспечивая бесшовный опыт пользования при путешествиях.

Команда Отелло обратилась к нам за разработкой личного кабинета, с помощью которого малые и средние игроки бизнеса могли бы обеспечить себе загрузку. У R&D центра не было ресурсов для параллельной разработки основного сервиса и экспериментального сервиса, поэтому выбор пал на аутсорс-разработку. От своевременной реализации проекта зависел его дальнейший успех.

Решение

У команды не было готового ТЗ на разработку, но была идея, референсы для функционала. А ещё было ограничение по срокам запуска – 3 месяца – из-за подготовки к сезону отпусков (май-август).

Мы предложили этап аналитики перед началом работ: чтобы сформировать функционал MVP и ТЗ, запланировать загрузку и ресурсы, тестировать на выборке пользователей перед запуском.

В первую неделю после принятия решения о старте провели встречу с РП, аналитиком и архитектором, заказчиком.

За 2 недели описали бизнес-аналитику проекта, подготовили CJM, составили User Stories и определили функционал MVP. Параллельно описывали системные требования, чтобы запустить разработку и первый спринт, дорабатывать аналитику на следующие.

На 3 неделю подготовили макеты ЛК и запустили разработку. В процессе масштабировали команду и добавляли специалистов нужных ролей по необходимости.

1Разработка

Фронтенд

Использовали библиотеку компонентов Material UI с готовыми решениями, которые кастомизировали под проект. 

При создании архитектуры фронтенда мы ориентировались на технологии, которые позволят автоматизировать рутинные процессы. Так мы остановились на NX – системе инструментов для создания монорепозиториев для react-приложений.  

NX обеспечивает управление всеми проектами и сборками, поддержку масштабируемости, генерацию дефолтных файлов, гибкую настройку под конкретный проект.

Подключили lazy components для загрузки страниц по бандлам. Это экономит ресурсы, повышает скорость загрузки. 

После завершения основной работы начали покрывать фронтенд тестами с помощью jest и @testing-library/react. С их помощью мы тестируем утилиты, функции, компоненты, чтобы проверить корректную работу небольших элементов кода, выявить места, где возможны поломки. 

Бэкенд

При создании архитектуры бэкенда ориентировались на ограничения и размер команды. Выбрали монолит на Django – Python-фреймворке для быстрого создания веб-сайтов. Содержит инструменты для удобной работы “из коробки”. 

Взаимодействие фронтенда и бэкенда происходит через Swagger – это набор инструментов, который позволяет автоматически описывать API на основе его кода. 

2Технический челленж

Основным челленжем стала разработка шахматки – таблицы с доступностью и вариантами размещения. Команда клиента хотела ограничиться функционалом без UI, но мы смогли запланировать и реализовать юзер-френдли отображение для таблицы.

Для шахматки взяли микс: TanStack Table для рендера таблицы, фильтры Material UI, добавили календарь с B2C-сервиса – react date picker. 

Для виртуализации – отображения компонентов по мере потребности пользователя – использовали tablevirtuoso. Это тоже помогает ускорить загрузку: например, приходят данные на 2000 ячеек, но пользователь видит только 500, больше – если проскроллит. 

Таблица позволяет редактировать данные по номерному фонду в удобном для пользователей формате: актуальная информация попадает в модальное окно и при завершении редактирования уходит на сервер, становится доступной для пользователей Отелло.

Отображение доступных номеров зависит от комбинаторики вариантов размещения. Например, у одного номера может быть несколько опций: один постоялец, с животными, с детьми и тд. Бывают зависимые тарифы: когда изменение стоимости на один номер влияет на цены других. Аналитик и архитектор продумали архитектуру хранения информации в базе данных.

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

Результат

Первую версию ЛК запустили в 2023 за 3 месяца.

ЛК автоматизирует и облегчает неприятную рутину: добавление и редактирование номерного фонда, доступности по датам. Благодаря простому и понятному UI даже непрофессиональные отельеры без проблем адаптируются к сервису. А чтобы не пропустить новое бронирование, мы подключили оповещение через Телеграм-бота.

За 4,5 месяцев с момента запуска было зарегистрировано более 2000 уникальных отелей, которые получили доступ к площадке. Команда Отелло не тратила внутренние ресурсы для реализации проекта, зато взамен получила работающий и развивающийся продукт, который подтвердил гипотезу. Как следствие – кратный рост уникальной базы номерного фонда.

Отзыв клиента

Для Otello была критична скорость. Нам с командой Holyweb удалось быстро стартовать аналитику, подготовку команды под проект, сбор требований по интеграциям. Релиз MVP был выполнен в срок. Мы успели проверить на выборке отельеров достаточность функциональности. Пользователи хорошо отзывались о продукте: его простоте и дружелюбном дизайне. Поэтому новый опыт работы с аутосорсом оказался очень успешным.

https://lk.otello.2gis.ru

Стек технологий

  • JavaScript JavaScript Язык программирования
  • Python Python Язык программирования
  • Redux Redux Фреймворк/библиотека
  • Django Django Фреймворк/библиотека
  • React.js React.js Фреймворк/библиотека

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Holyweb с удовольствием обсудит вашу задачу

Оставить заявку