Countryside estate catalog for CIAN

The customer, cian.ru, is the largest real estate website in Russia. They asked Antida software to develop a catalog of countryside estate.

Problem

На cian.ru уже долгое время существует раздел с объявлениями о продаже загородной недвижимости. С помощью глубинных исследований посетителей сайта было обнаружено, что он не решает проблемы той части аудитории, которая ищет дома, таунхаусы и участки от застройщиков коттеджных поселков, то есть «первичку». Чтобы такие пользователи могли принять решение о покупке, им нужно больше информации: кто строит поселок, когда он будет сдан, какие в нем есть типы жилых объектов есть, сколько они стоят, какая инфраструктура есть поблизости, как можно добраться до поселка из города.

Застройщики загородной недвижимости тоже заинтересованы в том, чтобы разместить информацию о своих поселках на ЦИАН и поддерживать актуальность данных, потому что это позволит им получать квалифицированные лиды с сайта.

Solution

Было решено добавить на сайт новый раздел — «Коттеджные поселки». Раздел состоит из двух основных частей:

Данные для каталога заполняются контент-командой через админку на основе публично доступных данных и данных, которые предоставляет сам застройщик.

Важной особенностью рынка загородной недвижимости является сезонность: большая часть активности приходится на период с середины апреля по сентябрь. В остальное время потенциальные покупатели только исследуют рынок, и очень редко ездят смотреть объекты или покупают их.

Поэтому для нас критически важно было успеть запустить каталог в начале сезона 2018. Разработка началась в марте, а первый релиз мы запланировали на май. Мы разбили проект на этапы так, чтобы успеть в эти сроки.

Админка

Самым первым этапом стала разработка админки для нового раздела. Через админку команда, отвечающая за наполнение каталога, вносит информацию о застройщиках и о коттеджных поселках.

Техническая архитектура в ЦИАН построена на микросервисах. Для админки мы реализовали два новых микросервиса: бэкендовый и фронтендовый.

Серверная сторона написана на асинхронном Python с Tornado. В качестве базы данных используется MSSQL.

На клиентской стороне используются TypeScript и React. Для нас было важно, чтобы админка была удобной и понятной для контент-менеджеров, но при этом не требовала длительного этапа проработки дизайна. У нас это получилось благодаря использованию CSS-фреймворка Twitter Bootstrap.

По завершении разработки админки контент-менеджеры приступили к наполнению, а мы начали разрабатывать пользовательскую часть.

MVP каталога коттеджных поселков

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

Для каталога мы разработали еще три микросервиса: бэкендовый на Python и Tornado и два фронтендовых на TypeScript и React.

Бэкендовый микросервис отвечает за реализацию сложной фильтрации поселков в каталоге. Очень важно, чтобы посетитель сайта мог быстро увидеть посёлки, которые соответствуют его запросу. Кто-то может искать только поселки с проведенным газом или только в радиусе 15 км от города. Для этого в каталоге предусмотрены фильтры — всего их около двадцати.

Чтобы фильтрация работала быстро, мы храним поселки в индексе Elasticsearch. Данные между MSSQL и Elasticsearch синхронизируются с помощью отчетных событий о всех изменениях в админке, которые доставляются с помощью RabbitMQ. Помимо отчетных событий есть «догонка» — периодическая сверка данных в базе и в индексе на случай если какие-то из отчетных событий потеряются.

Особенностью фронтендовых микросервисов является наличие SSR — серверного рендеринга на node.js. Серверный рендеринг позволяет отдавать страницы из React-компонентов на клиент в виде уже сформированных страниц. Это дает небольшой выигрыш в скорости загрузки для пользователей, но самое главное — позволяет поисковым системам видеть и индексировать содержимое страниц. После анализа SEO-специалистами, мы реализовали и другие оптимизации, которые позволят большему количеству людей найти страницы каталога в поисковиках.

Как и было запланировано, мы открыли каталог в мае.

Доработки MVP

Сразу же после запуска первой версии каталога мы продолжили дорабатывать его и добавлять в него новые возможности. Два главных сценария, которые мы добавили в него — возможность поиска по шоссе и по станциям железной дороги.

Мобильная версия

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

Чтобы поддержать эти сценарии использования, мы реализовали каталог коттеджных поселков на мобильном сайте.

Result

Каталог коттеджных поселков на ЦИАН: cian.ru/kottedzhnye-poselki-moskovskaya-oblast/

В кратчайшие сроки мы запустили MVP каталога коттеджных поселков и продолжили наполнять его возможностями после запуска. Наша команда интегрировалась в процессы ЦИАН и сейчас участвует в разработке наравне с другими продуктовыми командами компании.

Antida has long been our important and reliable development partner. Their competencies allow us to trust them with complex projects and be confident in the success of each of them. The guys work absolutely transparently and easily integrate into our internal processes. This is crucial for us.

Peter Markov, PMO at CIAN, Moscow
Go to the next case study