Кейсы 6 мин чтения

CRM и приложение для строительной компании: объект, задачи, отчёты с фото

Строительная компания с алмазной резкой и бурением не видела объёмов и теряла инструмент. Я собрал систему вокруг объекта: четыре кабинета, цепочка задач, отчёты с фото и геометкой, учёт инструмента по QR, офлайн PWA и отчёты по восьми разрезам. Работает на сервере заказчика, модули 4-8 не доведены.

кейсCRM для стройкиPWAучёт инструментаполевые отчёты

Коротко (TL;DR)

  • Строительная компания с алмазной резкой и бурением: несколько прорабов, бригады рабочих, техника на объектах. Владелец не видел объёмов, терял инструмент и узнавал о просрочках последним.
  • Я собрал систему вокруг объекта: четыре кабинета (владелец, прораб, сотрудник, клиент), цепочка задач, отчёты с фото и геометкой, учёт инструмента по QR, push-уведомления, PWA с офлайн-очередью, отчёты по восьми разрезам с выгрузкой в Excel, импорт клиентов.
  • Система работает на сервере заказчика, компания уже ведёт в ней объекты и присылает замечания, которые я закрываю по ходу.
  • Модули 4-8 из спецификации (заявки с сайтов, документы, материалы, финансы, дома) до конца не доведены: внешние подключения не сделаны и приёмки по ним не было.

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

Задача

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

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

Что я сделал

Система состоит из сервера на FastAPI с базой PostgreSQL и веб-приложения без сборки, которое ставится на телефон как PWA. Внутри четыре кабинета с разными правами:

  • Владелец видит всё: сводку, объекты, людей, деньги, отчёты, настройки прав.
  • Прораб работает со своими объектами: ставит задачи бригадам, принимает или возвращает отчёты, выдаёт инструмент.
  • Сотрудник видит только свои задачи и сдаёт по ним отчёты.
  • Клиент смотрит свой объект: этапы, фото, акты и счета, может написать в чат.

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

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

Как устроено

Отчёт с фото и геометкой

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

Инструмент и оснастка по QR

У каждой единицы инструмента и техники есть QR-наклейка. Сканер встроен прямо в приложение: навёл камеру, отметил «выдан», «перемещён», «сломан», «не найден». В карточке видна вся история, у кого и на каком объекте инструмент сейчас. Для коронок и дисков считается расход на 100 погонных метров по бригаде и сравнивается с нормой: перерасход больше чем на 20% подсвечивается. Есть напоминания о техобслуживании. Подробнее о подходе писал в статье про учёт инструмента по QR.

Работа без связи

На объектах связь бывает в подвале и на крыше, а в середине нет. Поэтому приложение собрано как полноценное PWA. Данные кэшируются, а отчёт с фото и отметка, сделанные без сети, ложатся в очередь в памяти телефона и уходят сами, когда связь появилась. На иконке виден счётчик непрочитанного, при выходе из аккаунта кэш данных чистится. Chrome на рабочем адресе подтверждает, что приложение устанавливается.

Уведомления

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

Отчёты по восьми разрезам

Принятые объёмы складываются в отчёт за любой период с группировкой по одному из восьми разрезов: вид работ, исполнитель, бригада, руководитель, объект, клиент, направление, день. Деньги видит только тот, у кого есть на это право. Выгрузка в Excel собирает файл из пяти листов: объёмы, подробные строки, просрочки, расход оснастки с перерасходом, история инструмента.

Клиенты и импорт

База клиентов грузится из Excel или CSV по шаблону. Дубли ловятся по ИНН и телефону, существующая карточка обновляется вместо создания второй. Клиент получает вход по ссылке без пароля и уведомление, когда этап на его объекте завершён.

Сервер и безопасность

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

Что получилось

ЧтоСостояние
Кабинеты владельца, прораба, сотрудника, клиентаработают на сервере заказчика
Задачи, отчёты с фото и геометкойработают, компания вносит данные
Инструмент по QR, расход оснасткиработает
Push и напоминания календаряработают, доставку решают настройки телефона
PWA с офлайн-очередьюработает, установка подтверждена
Отчёты по 8 разрезам и Excelработают
Обход интерфейса автотестомоколо 190 страниц под пятью ролями, без ошибок
Экономия времени, сохранность инструментане измерял

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

Что ещё не сделано

Модули 4-8 по спецификации: заявки с сайтов, документы, материалы, финансы, дома и сервис. В системе есть их первые версии, частью компания уже пользуется, например приходом и расходом денег. Но до рабочего состояния они не доведены и приёмки по ним не было. Конкретно не хватает:

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

Отдельно: эффекта в цифрах пока нет. Я не знаю, стало ли меньше пропаж инструмента. Это можно будет посчитать через пару месяцев по истории выдачи.

Частые вопросы

Почему PWA вместо приложения из магазина?

Рабочим нужно поставить приложение за минуту и без аккаунтов в магазинах. PWA ставится с сайта, обновляется само и умеет работать без связи. Для камеры, геометки и push этого хватает.

Можно ли подделать отчёт фотографией из галереи?

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

Что будет, если владелец захочет другую роль?

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

Коротко о главном

Для стройки главное оказалось в мелочах полевой жизни: телефон без связи, фото не с того места, уведомление, которое умерло через секунду. Система вокруг объекта закрывает три исходные боли владельца: видно объёмы, видно инструмент, видно, кто работает. Модули 4-8 пока в черновом состоянии, и про это я говорю прямо. Если у вас похожая задача, посмотрите страницу про CRM для строительной компании или напишите мне в Telegram, MAX или VK.

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх