Hosty – система управления для менеджеров краткосрочной аренды недвижимости

В Airbnb большая часть недвижимости управляется специальными компаниями, которые помогают владельцам жилья зарабатывать и при этом не тратить личное время на обновление календаря, прием гостей и уборку.
К нам обратился клиент с опытом работы в сфере сдачи жилья, a соответственно, с хорошим знанием предметной области и пониманием проблем менеджеров недвижимости.
Задача
На рынке уже существовал ряд продуктов для менеджерских компаний, но они были либо неудобными, либо мало функциональными. Наша главная задача состояла в том, чтобы спроектировать такой интерфейс, чтобы управление большим количеством объектов недвижимости было простым и удобным. Параллельно с проектированием интерфейса сложной и важной задачей было реализовать интеграцию с API Airbnb, для быстрой синхронизации больших массивов данных.
Решение
Интеграция с Airbnb
Процесс интеграции с Airbnb начался с прохождения нами официальной сертификации компании, а именно выполнения жестких требований Airbnb по безопасности, функциональности и технологичности нашего проекта. Процесс сертификации занял 2 месяца, только после этого у нас появился партнерский доступ к API. Сложность работы с подобными интеграциями состоит в том, что документация по API не является полной и постоянные изменения на стороне Airbnb заставляли нас работать в ритме регулярных изменений логики работы нашего продукта.
Интеграция позволила не только подключать уже ранее созданные листинги на Airbnb, но и создавать новые объекты недвижимости с указанием более 100 полей информации о жилье (описание, правила заезда, цены, фото, и др. настройки).

Календари
Одна из самых важных задач, которые решает наш сервис, это управление резервированием жилья. Однако перед тем как делать список бронирований, мы взялись за более сложную задачу, отображения броней в контексте дат — в виде календаря. В системе существует несколько типов календарей:
- Календарь для работы с отдельной квартирой, с возможностью редактирования цен на каждый день и просмотра деталей бронирования.
- Мульти-календарь для работы с полным портфелем недвижимости, например если у компании 100 и больше листингов.
- Календарь определенного бронирования с учётом соседних броней.
Чтобы правильно реализовать работу с календарем, мы сразу отбросили готовые решения, так как ни одно из них не могло удовлетворить потребности проекта. Мы разработали 3 собственных компонента для календарей с возможностью в дальнейшем масштабировать и менять их под потребности бизнеса.

Резервации
Заказы на бронирование, которые приходят от Airbnb, обрабатываются с разной логикой в зависимости от статуса (отправка уведомлений, проверка возможности перехода в другой статус). В системе выполняются асинхронные фоновые задачи: автоматическая отправка сообщений при бронировании (инструкции поселения), заезде (правила проживания), выезде (просьба оставить отзыв). Постоянное изменение статусов требует передачи обновлений от сервера к клиенту.

Сообщения
Отличительной чертой платформы Airbnb является активное использования чата между гостем и владельцем жилья. Для нас было очень важно предоставить менеджерам удобный инструмент работы с сообщениями. Пользователь нашей системы работает не с одним, а сразу несколькими аккаунтами Airbnb, поэтому при общении с гостем менеджер всегда видит детали бронирования, объекта недвижимости и аккаунта, от имени которого он сейчас общается.
В чате есть возможность отправлять сохраненные стандартные ответы. Также можно принимать или отклонять резервации прямо из чата — в общем всё сделано для быстрой и эффективной работы менеджера.

Автоматизация
Учитывая необходимость менеджеров выполнять рутинные действия мы разработали несколько систем автоматизации их работы:
- Aвто-сообщения, отправляются в определенное время, либо срабатывании триггера (момент брони, заселения, выезда).
- Aвто-ревью, отправка рейтинга и отзыва из набора шаблонов.
- Aвто-задачи, например уборка назначается автоматически перед заездом гостя.

Мобильное приложение
Во второй версии продукта мы разработали приложение под Android и iOS. Мобильное приложение призвано не повторить функционал веб-приложения, а использовать преимущества носимого устройства. Поэтому мы предоставили пользователям телефонов функционал чата, работы с задачами и просмотр календаря.
Как и в большинстве наших проектов, мы использовали подход Clean Architecture в связке Dagger2 для максимальной гибкости. А с помощью Android Architecture Components мы легко связали весь UI приложения с данными без угроз утечек памяти. Для iOS приложения вопрос кастомизации календаря был решён с помощью библиотеки JTAppleCalendar.

Результат
Благодаря продуманной и стабильной инфраструктуре проекта, которая позволяет легко работать с обновлениями, добавлять новый функционал и обеспечивать бесперебойную работу уже существующего сервиса, в будущем к нашему решению будут подключаться и другие платформы, кроме Airbnb.
Команда проекта:
- Макc
Дизайнер
- Руслан Х.
Frontend разработчик
- Сергей Железняк
Backend разработчик
- Александр К.
Android разработчик
- Дмитрий
IOS разработчик
- Евгений Аронов
IOS разработчик