Платформа расчёта смет для строительного рынка

-

Вид услуги:

-

Технологии:

C#, ASP.NET Core 9, Blazor Server, PostgreSQL, Entity Framework Core, Quartz, Telegram Bot API

Год:

2024

О проекте

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

Заказчик пришёл к нам не с процессом, который надо автоматизировать, а с идеей продукта для строительного рынка: сервис, где строительная компания считает смету, готовит коммерческое предложение и ведёт объект до сдачи. Мы спроектировали и собрали платформу с нуля. Первая рабочая версия вышла через шестнадцать недель после подписания договора. Сегодня она работает по подписке, живёт на наших серверах и продолжает развиваться.

Заказчик: ООО «Офис ИЖС», Казань — компания, выводящая на рынок сервис для строителей Задача: спроектировать и построить SaaS-платформу с нуля Старт работ: сентябрь 2024 Первая рабочая версия: январь 2025 Команда: один-два разработчика Роль Nabla Lab: разработка, хостинг, инфраструктура, поддержка, развитие Эффект: расчёт сметы — 15–45 минут вместо 5–10 часов Сегодня: платформа работает по подписке, ею пользуются строительные компании в пяти регионах



Задача: не автоматизировать процесс, а сделать продукт

В индивидуальном жилищном строительстве почти всё начинается со сметы. Она превращается в коммерческое предложение, по которому клиент решает — работать с компанией или уйти к тому, кто ответил быстрее.

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

Заказчик увидел здесь рынок и поставил задачу шире, чем «сделайте нам инструмент». Ему нужен был продукт, который можно продавать строительным компаниям по подписке: чтобы каждая описала свою логику ценообразования один раз, а дальше система применяла её сама.

Разница принципиальная. Автоматизировать один процесс одной компании — понятная задача с известными границами. Построить платформу, где сотни разных компаний настраивают собственные правила расчёта под свои технологии, свои цены и свои регионы, — задача другого класса. Никакую логику нельзя зашить в код: то, что для одной компании коэффициент, для другой — три условия и таблица.


Ядро: конструктор, в котором сметчик программирует мышкой

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

Сметчик берёт поле из анкеты, скажем длину пятна застройки, соединяет его с операцией, добавляет условие «если этажность больше одного», подмешивает статическое значение и получает готовое правило расчёта. Из таких схем собирается вся логика ценообразования компании: переменные, затраты, зависимости между ними. Программист не нужен ни на одном шаге.

Под холстом лежит полноценный движок исполнения. В нём десять типов узлов — начало, конец, условие, бинарные и унарные операции, агрегаты, источники данных из анкеты, ссылки на другие переменные, константы. Узлы соединяются связями двух видов: одни передают значения, другие задают порядок выполнения. Такое разделение — то же самое, что в профессиональных средах визуального программирования, и именно оно позволяет собирать не только формулы, но и ветвящиеся алгоритмы.

Отдельно мы сделали режим трассировки. Пользователь подставляет тестовые значения и прогоняет схему: каждый узел показывает, что он получил на вход и что отдал на выход, видно, где сработало условие и куда ушла ветка. По сути это отладчик — инструмент, который есть у программистов и почти никогда у сметчиков. Без него собрать сложное правило и убедиться, что оно считает верно, было бы мучением. Каждый узел живёт в трёх режимах: редактирование, просмотр и трассировка.

Второе решение того же порядка — движок пересчёта. Он знает, какие показатели от каких зависят, и при изменении одного значения пересчитывает только затронутое, а не всю смету. Менеджер меняет этажность и видит новые суммы, пока клиент ещё на линии.


Как это выглядит для пользователя

Процесс мы собирали под обычного менеджера, а не под инженера.

  1. Заполняется анкета по объекту — площадь, этажность, материалы, регион, десятки других параметров. Видимость каждого поля настраивается под роль: клиент видит одно, сметчик другое.
  2. Платформа считает смету. Пересчёт живой: правишь параметр — суммы обновляются на лету.
  3. Формируются документы — коммерческое предложение и акты по фирменным шаблонам компании.
  4. Объект живёт в системе дальше — закупки и чеки, ведомости материалов, заказы поставщикам, бюджет, доступы участников, чат по объекту, хранилище файлов и фотографий.

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

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


Что ещё умеет платформа

Привлечение клиентов. Квизы-опросники с правилами видимости вопросов, реферальные ссылки, кабинеты агентов и риелторов, каталог проектов застройщиков.

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

Коммуникации, которые не теряются. Уведомления, чат внутри объекта, боты в Telegram и MAX. Через мессенджер можно не только получать сообщения, но и войти в сервис.

Права и доступы. Роли внутри компании с настраиваемыми правами, отдельная выдача доступов к конкретному объекту.


Шестнадцать недель до первой рабочей версии

От подписания договора в сентябре 2024 до запуска в промышленную эксплуатацию прошло шестнадцать недель. За это время мы собрали авторизацию и роли, книги цен, конструктор анкет, конструктор переменных и затрат, холсты с логикой и режимом тестирования, проекты, генерацию сметы и коммерческого предложения — двадцать две крупные задачи.

Работали над этим один-два разработчика, в зависимости от загрузки этапа.

Такая скорость получается не из героизма. Типовые части — работу с файлами, экспорт документов, хеширование, защиту от ботов — мы давно вынесли в собственные библиотеки и переиспользуем из проекта в проект. На каждом новом продукте это экономит недели, которые иначе ушли бы на код, который уже написан.

С января 2025 платформа в промышленной эксплуатации, и с тех пор мы её развиваем непрерывно. Через полгода после запуска заказчик увеличил объём сопровождения вдвое: продукт рос, пользователей становилось больше, задач тоже.


Как устроено внутри

Дальше — техническая сторона.

Платформа построена на .NET и Blazor Server в связке с PostgreSQL. Бизнес-логика целиком живёт на сервере: браузер получает готовый результат, а не считает сам. Это разгружает устройство пользователя и убирает целый класс уязвимостей на клиенте. Связь между сервером и браузером идёт через WebSockets — отсюда мгновенный отклик при пересчёте.

Мы стартовали на .NET 8 и с тех пор перевели платформу на девятую версию: держать стек в актуальном состоянии дешевле, чем догонять его раз в три года.

Архитектура модульная — восемь отдельных проектов. Веб-приложение, бизнес-логика, движок расчётов, слой данных, рассылки, планировщик регулярных задач, SMS и автоматические тесты разнесены по своим границам. Движок расчётов не знает ни про веб, ни про базу: его можно развивать и тестировать отдельно от всего остального.

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

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


Мы не просто написали код

Платформа живёт на наших серверах. Мы отвечаем за её работоспособность, следим за доменами, держим почтовый сервер сервиса, делаем резервные копии, мониторим доступность и чиним сбои.

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


Что в итоге

Заказчик получил не прототип и не демо, а работающий бизнес. Платформа продаётся по подписке строительным компаниям и продолжает развиваться.

  • Расчёт сметы занимает от пятнадцати минут до сорока пяти вместо пяти-десяти часов. Менеджер отвечает клиенту в день обращения, а не через два дня.
  • Правило задаётся один раз и одинаково применяется ко всем расчётам — ошибки ручного счёта уходят.
  • Логика ценообразования компании перестаёт быть навыком одного человека и становится активом, который работает сам.
  • Цены не устаревают: региональные справочники обновляются автоматически.
  • Коммерческое предложение уходит клиенту в едином фирменном виде, пока конкурент считает в таблице.
  • Исключительные права на платформу и исходный код принадлежат заказчику.


Почему это важно для вас

Если у вас есть экспертиза и понимание рынка, но нет команды разработки, этот кейс — про вас. Мы разобрались в чужой предметной области, перевели её в работающий продукт, довели до промышленной эксплуатации за шестнадцать недель и сопровождаем третий год.

Мы умеем строить не только приложения, но и инструменты внутри них: визуальные среды, где ваш пользователь настраивает логику сам, без обращения к разработчику. Такую среду мы делали дважды — здесь и в системе сбора данных клинических исследований, в совсем другой отрасли. Это самая дорогая часть любой платформы и одновременно та, которая позволяет продавать её многим клиентам без доработок под каждого.

Расскажите о своей задаче — обсудим, как её решить.

Давайте создавать вместе!

Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке

Контакты

Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78