Перейти к содержимому
Кейс

DMG

Система, в которой работает компания по удалению вмятин без покраски: каждая вмятина на каждой панели, с ценой уже в момент подсчёта.

Как приложение для смет Dent Master Global используется на телефоне: автомобиль и каждая панель со своей ценой
61Построенный экран 17Панелей на каждой машине 4Тарифные матрицы 5Языков
Что мы построили

Вмятины, цена, документы и мастерская, которой всё это принадлежит.

Смета

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

Тарификация

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

Бумаги

Сметы и счета нумеруются по каждой компании и по каждому году, каждый из своего счётчика, одной неделимой записью. Смета уходит готовым PDF, собранным с нуля, с повреждённой машиной внутри, и попадает к клиенту по электронной почте.

Компания

Четыре роли, а права хранятся в базе данных, а не в коде — и заново собираются на каждый отдельный запрос. Четырнадцать из тридцати таблиц несут компанию, которой принадлежит строка, поэтому работа одной мастерской никогда не попадает к другой.

Как это работает

От нажатия на панель до документа, который получает клиент.

  1. 1

    Машину рисуют, а не описывают

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

  2. 2

    Цена идёт следом за подсчётом

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

  3. 3

    Смета уходит документом

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

Техник считает вмятины на изображении машины, а цена уже там.

На чём построено

Один процесс, одна база данных, и больше нечего поддерживать.

Интерфейс

Шестьдесят один экран: сметы, матрицы, счета и настройки, которые мастерская держит для себя, в одном приложении.

  • TypeScript
  • Next.js 15
  • React 19
  • Tailwind CSS
  • TanStack Query

Сервер

Один процесс, двадцать пять модулей и API, который описывает сам себя — поэтому экраны и сервер никогда не расходятся.

  • NestJS 11
  • Prisma
  • Swagger / OpenAPI
  • CASL

Данные

Тридцать таблиц для самой работы и объектное хранилище для фотографий и документов, которые висят на смете.

  • PostgreSQL
  • MinIO

Развёртывание

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

  • Docker
  • GitLab CI
  • Mailgun
  • pdfmake
Трудные места

Трудное здесь — это машина, коэффициенты и центы.

Машина, по которой можно нажимать

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

Вмятины, превращённые во время

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

Деньги, которые никогда не округляются

Каждая сумма хранится целым числом центов, по обе стороны провода, и превращается в деньги только при показе. Ни в одной таблице базы данных нет десятичной колонки — решение, которое один раз стоит половины дня и больше не стоит ничего.

На телефоне

Смета составляется там, где стоит машина.

Смета по граду пишется не за столом. Техник обходит машину с телефоном, который у него и так с собой, открывает автомобиль и нажимает на панель перед собой. Те же самые числа, которые вводятся там, и уходят сметой.

Работа

Сдано, и посчитано.

Двадцать два месяца, с июня 2024 по апрель 2026 года. В истории значатся восемь человек; работу вынесли пятеро.

730Часов разработки

Двадцать два месяца работы — сдано.

Контакты

Есть идея для проекта? Запросите предложение!

Есть проект? Напишите нам, если хотите поработать вместе над чем-то интересным. Или вам нужна наша помощь? Не стесняйтесь обращаться к нам.