Каталог объектов недвижимости выглядит простым, пока не начинаешь его описывать: у каждого объекта десяток параметров, у каждого агента свои привычки, а заявки нужно связывать с конкретной квартирой. Возьмём условное агентство и пройдём путь от разрозненных таблиц до портала с поиском, карточками объектов и кабинетами. Вы получите список полей, образец описания фильтров, схему ролей и честную границу между тем, что собирается сразу, и тем, что потребует разработчика.
Условный пример: агентство, у которого объекты живут в таблицах и мессенджерах
Представим агентство в областном городе: несколько агентов, продажа и аренда квартир, домов и небольших коммерческих помещений. Объекты ведутся в общей таблице, фотографии лежат в переписке агентов, звонки приходят на личные телефоны. Что при этом ломается:
- в объявлении висит квартира, на которую уже внесён задаток;
- непонятно, по какому объекту звонил клиент и кто ему ответил;
- собственники присылают данные в разном виде, и их приходится переписывать;
- руководитель не видит, сколько объектов у каждого агента и что с ними происходит.
Из четырёх типов продуктов здесь подходит портал: объявления, поиск, кабинеты. Лендинг не справится с сотнями меняющихся объектов, у магазина логика корзины, которая квартирам не нужна. Подробнее о выборе формата — в статье лендинг, магазин, портал или панель.
Цель первой версии сформулируем узко: актуальный каталог с поиском, заявки с привязкой к объекту и кабинеты агентов.
Объект как запись в базе: какие поля описать
Каждый объект — запись в базе данных. Чем точнее описаны поля, тем лучше работают поиск, карточка и фильтры. Этот список можно почти целиком перенести в описание для ИИ-команды:
| Поле | Пример | Кто заполняет | Видно всем |
|---|---|---|---|
| Тип сделки | Продажа, аренда | Агент | Да |
| Тип объекта | Квартира, дом, офис | Агент | Да |
| Район | Из списка | Агент | Да |
| Адрес | Улица, дом | Агент | По решению |
| Цена | В рублях | Агент | Да |
| Площадь, комнаты, этаж | Числа | Агент | Да |
| Описание | Текст | Агент | Да |
| Статус | Активен, задаток, продан | Агент | Нет |
| Ответственный агент | Из списка | Руководитель | Имя и телефон |
| Контакты собственника | Имя, телефон | Агент | Нет |
Три правила, которые экономят переделки:
- Списки вместо свободного текста там, где будет фильтр. Иначе «Центр», «центральный» и «ц-р» превратятся в три разных района.
- Статус вместо удаления. Проданный объект скрывается из поиска, но остаётся в базе — история сделок не теряется.
- Контакты собственника не публикуются. Это персональные данные, поэтому держите их не в таблице каталога, а отдельно: всё, что лежит в общедоступной таблице, можно получить прямым запросом к серверу, даже если на странице поле скрыто.
Отдельно опишите, как у объекта должны появляться фотографии, и проверьте в превью, как это получилось. Если способ добавления снимков не подойдёт агентам, это кандидат на правку словами или на доработку разработчиком.
Поиск по параметрам: какие фильтры описать в брифе
Разница между размытым и рабочим описанием здесь особенно заметна.
- Плохо: «Сделай удобный поиск по объектам, как на больших площадках».
- Хорошо: «Поиск на главной и в каталоге. Фильтры: тип сделки, тип объекта, район из списка, цена от и до, площадь от и до, комнаты — 1, 2, 3, 4 и более. Сортировка: сначала новые, по цене. В выдаче карточка: фото, цена, район, площадь, комнаты. Объекты со статусом „задаток“ и „продан“ в поиск не попадают».
Не перегружайте первую версию: каждый лишний фильтр усложняет экран, особенно маленький. Откройте опубликованный по ссылке проект на смартфоне и убедитесь, что панель фильтров не закрывает выдачу и легко сворачивается, — почему это важно, разобрано в материале о мобильной версии.
Фильтры «от и до» проверьте на тестовых объектах. Условный пример: заведите две квартиры — за 9 и за 12 млн ₽ — и задайте цену «от 10 млн». В выдаче должна остаться только вторая; если это не так, опишите расхождение в редакторе.
Продумайте пустой результат. Вместо «ничего не найдено» покажите форму «Оставьте заявку на подбор» с теми же параметрами — так неудачный поиск превращается в обращение.
Страница объекта и заявка, привязанная к объекту
Карточка объекта отвечает на три вопроса: что это, сколько стоит и как посмотреть. Вверху — фотографии, цена и ключевые параметры, ниже — описание, район, ответственный агент и форма «Записаться на просмотр»: имя, телефон, удобное время, комментарий.
Главное требование к форме: в заявку должны автоматически попадать номер и название объекта. Без этого агент начинает разговор с вопроса «а вы по какой квартире?». Так и напишите в описании, а затем отправьте тестовую заявку из карточки и проверьте, что номер объекта сохранился: в разделе «Заявки с проектов» у заявки фиксированные поля — имя, телефон, почта, сообщение и проект, — а все поля формы видны в базе данных проекта в редакторе.
Заявки пишутся в базу данных. В кабинете у них есть статусы — новые, обработанные, отклонённые, — фильтр по проекту и выгрузка в CSV для Excel. Кто отвечает на заявку и в какой срок, лучше закрепить до запуска: об этом статья как обрабатывать заявки с проекта.
Форма собирает имя и телефон, а кабинет собственника — ещё и данные о его объекте. Согласие на обработку персональных данных и политику их обработки продумайте до запуска, а спорные вопросы обсудите с юристом. Что для этого требуется, разобрано в материале о персональных данных в формах заявок и 152-ФЗ.
Кабинеты агентов и собственников: кто что добавляет и меняет
Роли лучше описать до сборки, а не после первых недоразумений:
- Посетитель ищет, смотрит карточки и оставляет заявку без регистрации.
- Агент входит в кабинет, добавляет и редактирует свои объекты, меняет их статус.
- Собственник подаёт свой объект через кабинет и видит, на каком он этапе.
- Руководитель видит все объекты и назначает ответственных агентов.
Честно о границах сборки. В проекте Roboweb вошедший пользователь может добавлять записи и видеть свои, а общедоступный каталог видят все. Редактирование объектов и смену статуса из кабинета агента, доступ руководителя ко всем объектам и проверку объявлений собственников перед публикацией платформа сама не делает: записи и статусы правит владелец проекта в базе данных проекта в редакторе, а роли и модерацию дописывает разработчик в выгруженном коде. Что бы ни собралось, права проверяйте руками:
- Заведите тестовые аккаунты для каждой роли.
- Подайте объект от имени собственника и откройте каталог в режиме инкогнито — объекта быть не должно.
- Добавьте объект в каталог тем способом, который предусмотрен в вашей сборке, и убедитесь, что он появился в поиске.
- Попробуйте под вторым агентом изменить чужой объект — это должно быть невозможно.
Роли и права — это часть продукта, а не настройка «на потом». Если агент может поправить чужую цену, каталогу перестанут доверять быстрее, чем вы это заметите.
Если какой-то шаг работает не так, как нужно, опишите расхождение словами в редакторе. Если после нескольких попыток логика всё равно не сходится, это сигнал подключить разработчика.
Что оставить на потом и что потребует разработчика
После запуска, когда основное работает, можно пробовать добавлять правками словами:
- подборки на отдельных страницах: «аренда у парка», «дома с участком»;
- избранное для зарегистрированных посетителей;
- сводку по объектам агентов для руководителя.
Скорее всего, потребуют разработчика и работы с выгруженным кодом:
- интерактивная карта с поиском по выделенной области;
- выгрузка объектов на сторонние площадки объявлений и загрузка оттуда;
- связь с CRM агентства и телефонией;
- ипотечный калькулятор с актуальными условиями банков;
- перенос большой базы объектов из существующих таблиц.
За рамками любого портала остаются договоры, задатки и сопровождение сделки: здесь нужны юрист и регламенты агентства.
Следующий шаг: возьмите таблицу полей и список ролей из этой статьи, подставьте свои районы и типы объектов, затем зарегистрируйтесь и опишите портал в редакторе. Проверяйте результат не по красоте первого экрана, а по четырём шагам с тестовыми аккаунтами.



