Задача CRM 4386: «набрал номер авто, смотрю историю ремонтов по машине, а пробеги не вижу сразу, нужно проваливаться в ремонт». Пробег бэкенд отдавал в строке ленты и раньше — лента его просто не забирала. Теперь он стоит справа на строке механика: так пробеги выстраиваются в колонку и историю одной машины можно читать сверху вниз, не открывая каждый ремонт. Показываем ровно тот пробег, что зафиксирован в самом ремонте. Он и есть старлайновский: форма создания подставляет его из последнего снимка StarLine, механик только подтверждает (если сервис недоступен — вводит руками). Подставлять в историю ТЕКУЩИЙ пробег из StarLine нельзя: у ремонта полугодовой давности он показал бы сегодняшнее число. Когда пробега нет — не пишем ничего. У ремонтов из импортированного архива он есть в 2% случаев, и подпись «пробег не записан» в каждой второй строке была бы шумом. У ремонтов, заведённых в приложении, пробег заполнен в 72% случаев. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
mechanic-pwa
Собственное приложение для сотрудников-механиков PremiumPark — замена вендорского приложения «Механик» (NaughtySoft, com.naughtysoft.ttc). Все данные осмотров уходят в собственную PostgreSQL внутри Premium CRM, фото — в собственный MinIO. Никакого вендора и его 1С на критическом пути.
Контекст
Сейчас механики PremiumPark делают осмотры машин через приложение вендора NaughtySoft, поставляемое на условиях абонентки. Подрядчик заморозил разработку, парк хочет независимости. После разведки вендорского стека (см. recon/findings/01-static-analysis.md) принято решение строить собственное PWA — оно охватывает все ключевые сценарии вендора (фото, метки повреждений, история, дифф «было/стало») и хостится в нашей экосистеме.
Объём проекта
Только приложение механика. Это первый sub-project в umbrella-плане замены вендорских приложений. Будущие sub-projects (не в этом репозитории):
| Sub-project | Описание | Статус |
|---|---|---|
| mechanic-pwa (этот репо) | PWA для сотрудников-механиков парка | в работе |
| driver-app | Приложение для водителей — балансы, штрафы, платежи, обращения | отложено, будем после mechanic |
| vendor-bridge | Импорт исторических осмотров от вендора | отложено |
Структура
mechanic-pwa/ ← корень git репо
├── docs/superpowers/
│ ├── specs/
│ │ ├── 2026-05-11-driver-app-recon-design.md ← разведка обоих вендорских приложений
│ │ └── 2026-05-16-premium-mechanic-design.md ← дизайн нашего mechanic-приложения
│ └── plans/
│ └── 2026-05-16-premium-mechanic-phase1.md ← план реализации Phase 1 MVP
├── mechanic-pwa/
│ ├── frontend/ ← React+Vite PWA (создаётся в Phase G)
│ └── assets/vendor-reference/ ← извлечённые из APK иконки вендора
├── recon/
│ ├── findings/ ← отчёт разведки (карта API, диаграммы)
│ ├── scripts/ ← mitmproxy фильтры, frida-скрипты, утилиты
│ ├── artifacts/ ← APK, декомпил, mitm dumps (не в git, .gitignore)
│ └── patched/ ← патченые APK для перехвата трафика (не в git)
├── ops/
│ ├── Caddyfile.fragment ← конфигурация Caddy для mechanic.pptaxi.ru
│ └── minio-cors.json ← CORS policy для bucket pp-inspections
└── README.md
Внимание: backend-модуль
mechanic(Phase B-F плана) живёт не в этом репо, а в виде веткиfeat/mechanic-mvpвнутри репозиторияpremium-crm. Этот репо — только frontend + специфика, документация и ops.
Текущая фаза
Phase 1 MVP — см. docs/superpowers/plans/2026-05-16-premium-mechanic-phase1.md. 10 phases (A-J), ~40 задач, 3-4 недели разработки.
Деплой
Production URL: https://mechanic.pptaxi.ru (поддомен от 100.64.0.12, обслуживается Caddy)
Бэкенд: модуль mechanic в FastAPI Premium CRM (тот же VDS)
Хранилище фото: MinIO pp-inspections (тот же VDS)