CRM и приложение для строительной компании: объект, задачи, отчёты с фото
Строительная компания с алмазной резкой и бурением не видела объёмов и теряла инструмент. Я собрал систему вокруг объекта: четыре кабинета, цепочка задач, отчёты с фото и геометкой, учёт инструмента по QR, офлайн PWA и отчёты по восьми разрезам. Работает на сервере заказчика, модули 4-8 не доведены.
Коротко (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 минут.


