В 2020 году к нам обратился директор агентства недвижимости и его партнёр по маркетингу. Нашей общей задачей стало создание сложной онлайн платформы для агентств недвижимости. Суть платформы - продавать и обменивать недвижимость онлайн, упростив и автоматизировав процесс взаимодействия между покупателем и продавцом. Изначально, система планировалась без цели монетизации, а с целью привлечения инвесторов для масштабирования команды разработчиков, т.к. всем было очевидно - проект сложный и многоэтапный. В первую очередь мы сосредоточились на проектировании, программировании простой версии - прототипа, а также на создании дизайн-системы. В этой статье мы будем собирать всю текстовую, фото и видео информацию, которой можем поделиться о ходе выполнения данного проекта.
Функциональность данной системы не ограничена обычными записями о клиентах и данными о объектах (квартирах, домах, офисах и т.п.). Система плотно работает с объектами на картах, с кадастровой базой данных, со сложными наборами характеристик, с продажей и обменом недвижимости, со сложными фильтрами и гибким поиском. Пользователи административной системы могут вести клиентов, создавать красивый и понятный контент для квартир и домов - используя шаблоны характеристик, загружая картинки и формируюя галерею фото и видео для клиентов. Клиенты, в свою очередь, могут находить интересующую их недвижимость по гибким и разнообразным фильтрам, начиная от базовых - цена, местоположение, тип здания...- до самых продвинутых - тип кровати, тип ванной комнаты, близость к достопримечательностям, ориентация окон...
В первую очередь, мы, как и всегда, провели бесплатную подробную консультацию касательно вариантов реализации проекта и сроков. Решили действовать итеративно, без сложного ТЗ. Важно отметить, что не в каждом проекте такой вариант мы считаем рекомендованным. Однако данный проект, в силу особенности целей его выпуска, мог быть произведён без предварительного проектирования. Интересным вызовом оказалось то, что клиенту было очень желательно понимать примерный бюджет на квартал, для чего мы утвердили и внесли в договор пункт о фиксированной цене за месяц работы подответственной нам команде, которую, согласно договора, мы формируем из наших сотрудников.
В ходе обсуждения проекта мы пришли к пониманию удобного бюджета и способа сотрудничать, подписали договор. Договор получился не шаблонным, подразумевающий не только техническое исполнение проекта, но и партнёрское долевое участие. Договор содержал базовые требования - краткий перечень основных категорий работ и необходимых функций системы а также требования к качеству (скорость загрузки, лимиты объектов недвижимости, скорость переключения интерфейсов). Напомним, что в большенстве сложных проектов мы рекомендуем начинать с бизнес-аналитики и составлять подробное ТЗ. В данном проекте был смысл сделать исключение.
Договор подразумевал возможность делать обзоры на процесс разработки, что позволяет нам дать частичный обзор данного проекта с целью помощи тем, кто планирует разработку собственного проекта в сфере недвижимости или в другом коммерческом направлении.
Первая неделя - проектирование, развёртывание
Если кратко, что было сделано в ходе первого этапа работ:
- Подготовительные технические работы.
- Выбор ключевых технических решений для проекта.
- Проектирование схемы объектных зависимостей.
- Развёртывание системы на базе Docker.
- Конфигурирование системных сервисов, необходимых проекту.
- Интегрирование и настройка репозитория кода.
- Настройки сервера на непрерывную доставку.
- Проектирование базы данных системы.
По ходу разработки всей системы архитектор разрабатывал и корректировал схему связей компонентов платформы. Красным отмечены объекты, которые в ходе работы часто менялись. Но по большей части схема была составлена в подходящей развязке изначально. Данная модель позволила легко и быстро вести переговоры касательно ключевой функциональности онлайн платформы а также выявлять узкие места, предсказывая вероятные трудности при эксплуатации продукта в будущем.
Первым этапом разработки стояла задача создать простую систему сделок по недвижимости, дизайн не был приоритетом, потому мы выбрали стандартное проверенное решение - Bootstrap. В будущем, когда будет готов дизайн, внешний вид можно будет быстро изменить.
По результатам этапа мы смогли превысить планы и помимо непосредственно системы сделок и базы объектов недвижимости, мы успели сделать множество задач наперёд а также провести работы по развёртыванию инфраструктуры, необходимой любому минимально-сложному проекту. Результат первого этапа разработки Вы можете увидеть на странице и в видео.
Вторая неделя
Мы хотели как можно быстрее показать клиенту пусть и простую, но рабочую версию программы.
После того, как работа была успешно завершена, мы сняли для клиента видео-обзор проделанной работы. Это эксклюзивное видео, потому что в 95% проектов такие видео делаются лично, с закрытым доступом и никому не показываются под угрозой крупного штрафа!
Третья неделя
Прошло всего две недели, а у клиента уже есть работающая версия системы. Конечно, пока что она не красива, не удобна, в ней много неловкостей, мало дизайна, нет индивидуальности... Но она работает, и это самое важное на этом этапе. Перед тем, как мы начнём отливать модель внешнего интерфейса "в граните", нужно сделать так, чтобы прототип работал чётко, как часы.
Первые трудности начали появляться, как часто бывает, под конец проекта. Проект сложно начинать и сложно заканчивать. Остальное - легко. Особой сложностью и вызовом являлась функциональность конструктора характеристик и опций. Не столько технически, сколько с точки зрения проектирования и анализа. Говоря грубо, идея была такова, чтобы пользователь системы при добавлении нового объекта недвижимости (например, квартиры) мог выбирать целые готовые наборы, которые в точности описывают объект и помогают клиенту найти его на сайте в ожидаемом и логичном месте. Функциональность позволяла вносить изменения в логику работы системы без вмешательства программиста, посредством пользовательского интерфейса. С этого момента наше веб приложение стало в полной мере соответствовать классу "Платформа", каждый риелтор или собственник недвижимости мог вносить изменения в алгоритм.
В ходе разработки (на момент всего лишь 3й недели) было сделано 205 задач по программировании. В начале 2021 года мы сдали проект в отличном техническом виде в полном соответствии с ТЗ и раньше срока. Более того, мы успели сделать ряд задач по оформлению документации, которые в ТЗ не были расписаны, но на любом проекте подразумеваются.
Следующим этапом был в дизайн и презентации инвесторам внешнего вида
В данном видео презентуется результат первого этапа разработки пробной системы-прототипа
Дизайн платформы
Позже для проекта был продуман стиль интерфейса на основе компонентов Bootstrap. Дизайн-система проекта подразумевала гибкое консруирование новых рабочих экранов за счёт манипулирование типизированными элементами Bootstrap-like единого стиля. Дизайн был сделан по стандартам и предоставлены исходники стилей в Figma.
Посмотрите также оформленную презентацию интерфейсов - Раз и Два
После завершение прототипирования функциональности и моделирования дизайн-оболочки, проект перешел в стадию, когда мы не можем открыто описывать все подробности разработки.