Команда разработки: 7 бэкенд- и 2 фронтенд-разработчика
Старт проекта
Как работает программный продукт. Заказчики публикуют описание своего объекта и требования к выполнению работ — смету. Подрядчики заполняют её своими данными и выставляют на тендер. Система автоматически оценивает соответствие условий подрядчиков требованиям заказчиков и выбирает наиболее оптимальный по стоимости вариант.
Исходная ситуация:
Пользователи взаимодействовали вручную. Заказчик составлял в Excel табличный документ Ведомость и загружал его в систему. Ведомость — это строительная смета, где подробно описаны этапы и виды работ, используемые материалы, объёмы, цены, а также есть множество изменяемых параметров, которые влияют на итоговую стоимость. Подрядчики скачивали документ, заполняли и вновь загружали на платформу.
Легаси-код. До выхода нашего разработчика проект был заморожен, команда полностью обновлена, поэтому необходимо было самостоятельно изучить существующий код и на ходу разбираться в процессах.
Запрос: быстро перезапустить проект, автоматизировать взаимодействие заказчиков и подрядчиков, упростить работу пользователей с документами.
Задачи, ключевые и наиболее трудоёмкие:
Задачи нашего разработчика в основном касаются оптимизации работы с ведомостью. Что уже выполнено:
Задачи нашего разработчика в основном касаются оптимизации работы с ведомостью. Что уже выполнено:
1. Реализовано редактирование ведомости через веб-интерфейс.
Раньше изменение ведомости было возможно только через экспорт/ импорт. Теперь пользователи-заказчики могут вносить некоторые изменения в смету прямо в браузере. При этом если добавляются новые строки, то вложенная нумерация проставляется автоматически и всегда корректно — а в таблице Excel с этим были трудности.
2. Переработан механизм экспорта/импорта ведомости объёмов работ из Excel.
Раньше в документе было фиксированное количество атрибутов к строке, а сейчас можно добавить неограниченное их число. Настроено управление доступом к этим атрибутам: можно давать права на чтение или на изменение.
3. Добавлен расчёт промежуточных итогов.
Значение каждой строки в документе зависит от значений и комбинации вложенных в неё элементов иерархии: например, стоимость работ рассчитывается по их типу, а он определяет вид и объём используемых материалов. Когда меняется логика калькуляции этих элементов, меняется и версия документа. Был реализован механизм расчёта для возможных версий. Этот этот функционал будет расширяться.
4. Изменён механизм сопоставления строк в версиях ведомости.
Раньше работа с ведомостью велась построчно, при обработке каждой строки происходила запись в базу. Сравнение шло долго, так как в ведомости может быть более десяти тысяч строк. Сейчас реализован функционал для одновременной обработки нескольких строк. Изменённые строки выделяются цветом.
5. Обновлён механизм округления объёмов и цен.
Теперь округление значений в строках можно настраивать до 5 цифр после запятой.
6. Доработаны стандартные и индивидуальные отчёты, которые пользователь может сформировать в системе.
7. Проведён code-review всей команды.
Результат
проект успешно перезапущен;
оперативно доработан и обновлён функционал — например, ключевая задача по переработке механизма экспорта/импорта заняла 6 недель;