mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 13:24:48 +00:00
8.5 KiB
8.5 KiB
ROADMAP — zov-tech CRM MiniApp
Обновляется агентами автоматически. Последнее обновление: 2026-05-18 (вечер)
🎯 Продуктовая цель
Telegram MiniApp для 112 менеджеров салонов ЗОВ: подбор техники, замеры, сборки, CRM-клиенты. Привязка менеджеров к куратору через инструмент. Клиентский кабинет — воронка покупки.
✅ Готово (реализовано)
Инфраструктура
- VPS на Docker (FastAPI + aiogram + Caddy)
- GitHub Pages для MiniApp (auto-deploy при push в master)
- Google Sheets как БД
- HMAC-SHA256 аутентификация через Telegram initData
- Pre-push hook: CSS-линтер + UI Playwright блокируют сломанный код
- CI: GitHub Actions запускает тесты при каждом push
Модули MiniApp (менеджер/admin)
- Список клиентов + поиск + карточка клиента
- Создание/редактирование клиента
- Замеры: создание, фото, закрытие заявки
- Заявка на замер (назначение замерщику)
- Сборки: создание, список, детальная карточка
- Подбор техники (proposals): создание, варианты, голосование клиента
- Подбор через AI (GigaChat/Claude)
- Приватность клиентских данных (имена/телефоны скрыты визуально)
- 4 темы оформления: Default, Foundry, Boardroom, Atelier
- Экран #/me — профиль для всех ролей (менеджер / сотрудник / клиент)
- Экран #/master — входящие заявки для замерщика/сборщика
- Экран #/inbox — входящие задачи менеджера (решение по подбору)
Качество
- 15-секундный таймаут на все fetch-запросы (все модули)
- CSS-линтер (запрещённые паттерны + WCAG-контраст)
- Smoke API тесты (12 эндпоинтов)
- Полный тест кабинета менеджера (19 сценариев)
- UI Playwright smoke (15 проверок — все экраны включая #/inbox, #/me)
- CI: smoke-ui.yml — Playwright против GitHub Pages после каждого деплоя
- Docker login на VPS (без 429 при ребилде)
🔄 В работе
| Задача | Агент | Статус |
|---|---|---|
| Доступ сервисного аккаунта к Google Drive (отгрузки/поступления) | devops | ⏳ ждём подтверждения |
📋 Бэклог (приоритизирован)
Приоритет 1 — Завершение MVP менеджера
- Экран «Мой статус» — #/me реализован
- Входящие задачи менеджера — #/inbox реализован
- Отгрузки и поступления склада (⏳ блокер: share Drive с zov-backend@zov-sborka.iam.gserviceaccount.com)
Приоритет 2 — Клиентский кабинет ✅
- Базовый клиентский экран #/c/cabinet
- История заказов клиента #/c/orders (подборы + сборки, таймлайн)
- Самозамер #/c/selfmeasure (5-шаговый мастер + бэкенд)
- Детальная карточка сборки #/c/assembly/:id
- Цена замера: 2500₽ + 40₽/км за КАД — везде в UI
- Калькулятор стоимости кухни — отложен (недостаточно данных)
Приоритет 2б — Договоры и документы (новый блок)
- Модуль Contracts — лист Contracts в Sheets: номер, дата, стоимость кухни/техники/камня, схема оплаты (50/70/100%), аванс, остаток, срок изготовления, тип фасадов
- Личный дашборд сборщика (#/master/dashboard): календарь работ, заработок по дням, итого за период (8-9% от kitchen_price)
- Платформенный модуль подписи (SignRequest) — единая инфраструктура для всех документов:
- Подпись пальцем на экране (canvas) когда клиент/сторона присутствует
- Удалённая подпись: ссылка в Telegram/SMS → клиент подписывает со своего устройства
- Подпись представителя (строитель, уполномоченный) с отметкой «подписал представитель»
- Отметка «без подписи» с причиной (клиент недоступен)
- Применимо к: актам сборки, актам доставки (водители/экспедиторы), актам приёмки товара, будущим документам
- Два метода подписи (оба реализуются):
canvas— клиент рисует подпись пальцем на экране, сохраняется PNGcode— бот/SMS отправляет одноразовый код, клиент вводит = подтверждение через Telegram ID или номер телефона
- Поля:
sign_token(72ч),signed_via(canvas/code/proxy/absent),signed_by_name,signed_by_tg_id,signed_by_phone,signature_file, timestamp
- Цифровой акт сборки (#/c/act/:id): Акт№3 (сборка+выезд) + Акт№4 (приёмка товара) — использует SignRequest
- Прайс на доп. работы — голосовой ввод → форматированный PDF/JPEG с факсимиле → отправка в бот или на email; источник:
! ПРАЙС-ЛИСТ.xlsx(41 позиция, уже структурирован) - ⚠️ Уточнить: сборщик получает 8% или 9% от стоимости кухни (прайс неоднозначен)
- ⚠️ Уточнить: выезд замерщика 2500₽ vs выезд на сборку 1500₽ — разные тарифы, проверить
Приоритет 3 — Аналитика и управление
- Дашборд куратора: активность менеджеров, воронка сделок
- Реестр менеджеров: поле
last_order_date, 90-дневный контроль активности - Метрики: количество замеров, подборов, сборок по менеджеру
Приоритет 4 — Монетизация
- Платёжная интеграция (Telegram Stars / ЮKassa)
- Статусы подписки менеджеров (бесплатно / платно)
Технический долг
Content-Type: application/jsonв_fetchWithTimeout(все модули)- Аудит
app.jsроутера на edge cases - Тест карточки клиента в Playwright (нужна фикстура)
- Staging-окружение (отдельный VPS или Docker Compose override)
- platform.js — абстракция над Telegram.WebApp для миграции на VK Max (Фаза 1: Telegram; Фаза 2: VK Max отдельно; параллельное тестирование двух систем не ведём)
- Пункт ПЭП в договоре — добавить в шаблон договора купли-продажи согласие на простую электронную подпись (ФЗ-63) для актов через Telegram/SMS
🚫 Не в скоупе (решение принято)
- Нативное мобильное приложение (остаётся MiniApp)
- База знаний, Обучение, FAQ (отдельный продукт)
- Партнёрская комиссия от производителей