Задача
Ремонтно-отделочная компания, четыре замерщика в разъездах по объектам.
Замерщик снимал размеры на объекте, а смету считал вечером дома в Excel, каждый по своему файлу.
Клиент ждал коммерческое по два дня и за это время успевал получить его от двух других бригад.
Файлы разъехались - у одного расценки прошлогодние, у другого свои коэффициенты на этаж.
Переделка сметы под другой бюджет означала пересчёт всей таблицы руками, поэтому её просто не делали.
Что сделал
Mini App на React, бот на Python и aiogram 3, бэкенд FastAPI, база PostgreSQL, PDF собирает WeasyPrint.
Дальше список работ по разделам: демонтаж, стены, полы, потолки, электрика, сантехника, плитка.
Часть объёмов считается сама из площади и высоты, часть замерщик правит руками прямо на месте.
То-есть старые КП не поедут, если завтра поднять цену за квадрат плитки на сотню.
Коэффициенты отдельным слоем - этаж без лифта, удалённость от города, срочность, работа в выходные.
PDF рисуется с логотипом и реквизитами, внутри разбивка по этапам, сроки и срок действия цены.
Результат
КП уходит клиенту с объекта в тот же час, а не через двое суток.
Замерщик перестал сидеть вечерами в Excel, вечер уходит на следующий адрес.
Расценки стали общими - справочник один на компанию, личные файлы отменили.
Исходники, админка и инструкция по правке справочника и коэффициентов остались у компании.
Демо приложения и скриншоты админки приложены к работе.