Как мы с нуля делали сервис, в котором подрядчик сам считает шум от стройки, видит превышения на карте и выгружает отчёт, не дожидаясь акустического консультанта
Заказчик это компания из сферы акустической инженерии. Её продукт решает частую проблему строительных подрядчиков: шум и вибрацию от работ нужно согласовывать, и после каждого изменения в графике работ подрядчик идёт к акустическому консультанту за новым расчётом. Согласование затягивается.
Веб-приложение убирает этот шаг. Подрядчик сам прогнозирует шум и вибрацию от строительных работ, видит результаты на карте и управляет ими. Акустическое моделирование оказывается там же, где идёт работа над проектом.
Фортех работал над продуктом с июня 2021 по август 2023 года, больше двух лет. В команде проекта были три фронтенд-разработчика, тестировщик, два бизнес-консультанта по акустике и менеджер проекта.
Карта работает с большими файлами GeoJSON по зданиям и площадкам, и они должны загружаться быстро.
Расчёты делаются по каждой точке фасада здания, поэтому таблицы получаются большими, а их результаты нужно ещё и показать на карте понятными категориями.
Предметная область узкая, и логику расчётов команда сверяла с бизнес-консультантами по акустике.
Основа продукта. Команда спроектировала архитектуру приложения и базу данных, написала проектную документацию и сделала макеты. Клиентскую часть собрали на React с Material UI.
Расчёты. Сделали таблицу потерь звуковой мощности: она показывает, как звук распространяется по зоне строительных работ от каждой точки фасада здания. Отдельно сделали таблицу калькуляций. В таблицу добавили строку «Категория», чтобы группировать диапазоны превышения и снижения шума. Эти категории нужны для того, чтобы показать результаты на карте.
Карта. Большие источники GeoJSON подключили через Mapbox GL JS: настроили буфер и уровни масштабирования проектов, очистили данные, настроили доступ к проекту и ускорили загрузку.
Действия пользователя. Сделали раздел, где пользователь создаёт, сохраняет и удаляет сценарии работ, создаёт и удаляет PDF-отчёты, редактирует списки источников шума и вибрации, импортирует и правит здания, результаты и периоды работ, добавляет и удаляет пользователей.
Отчёты. Таблицу с результатами оценки шума можно выгрузить в PDF и CSV.
Доступ. Сделали регистрацию: имя, почта, организация, подписка на обновления и пароль. Добавили роль администратора проекта: он создаёт проект, загружает результаты оценки шума и формирует отчёт.
Инфраструктура. Приложение развёрнуто в Firebase, там же настроены права доступа. В GitLab команда проверяла код, сливала изменения и настроила CI/CD, подняла релизный и основной серверы.
Подрядчики получили веб-приложение, в котором сами прогнозируют шум и вибрацию от стройки: импортируют здания, добавляют источники шума, видят зоны превышения на карте по категориям и выгружают отчёт в PDF или CSV.
Администраторы ведут проекты, пользователей и сценарии работ через интерфейс. Продукт построен с нуля: от архитектуры и базы данных до развёртывания и CI/CD.
Как показать на карте результаты акустического расчёта?
Сгруппировать значения по категориям превышения и снижения шума и раскрасить по ним зоны на карте. Здесь для этого в расчётную таблицу добавили отдельную строку «Категория».
Как ускорить карту с большими файлами GeoJSON?
Почистить данные, настроить буфер и уровни масштабирования, чтобы карта не грузила всё сразу. В этом проекте так настраивали Mapbox GL JS.
Можно ли собрать продукт с нуля силами одной фронтенд-команды?
Да, если бэкенд-функции закрывает облачная платформа. Здесь приложение работает на Firebase, а архитектуру, базу данных и интерфейс сделала команда фронтенд-разработчиков.
Как долго Фортех может вести один продукт?
Здесь работа шла больше двух лет: от архитектуры приложения до его развёртывания и развития.

Как мы делали плагины расчётов и визуализаций для геологов, потоковый экспорт и импорт проектов и переводили процессы на WebSocket

Как мы верстали адаптивный сервис сравнения обменников на Next.js, а для рекламной платформы сделали поиск кампаний, вход через четыре канала и админку

Как мы подняли сайт стартапа, который не собирался после прошлой команды, починили вход и анкету, сверстали новые экраны и мини-приложение в Telegram

Как мы подключали к фреймворку генерации данных новые хранилища, HBase и PostgreSQL, и вместе с ML-командой банка делали загрузку синтетики на тестовые стенды