KitchenAI / Свежесть+ — поэтапный план разработки

База UI/UX: Flutter-прототип kitchenai_prototype. Scope: KitchenAI_MVP_scope · B2B · 1 точка · 200 ч · 300 000 ₽

Принцип: не перерисовываем — подключаем API Клиент: Flutter Android (+ iOS по готовности) Срок: 6–8 недель · 5 спринтов
Правило проекта: экраны, навигация ролей, модели и сценарии уже есть в прототипе (lib/screens/*, AppState, мок iiko). Разработка = вынести состояние в API, заменить моки реальным сином, довести DoD из scope. Новый дизайн «с нуля» не закладываем.

0. Старт (до кода, 0–2 дня)

Карта: прототип → модули MVP

Экран / файл прототипа Модуль scope Что меняем в разработке
splash_screen · auth_screen M1 Реальный login (email/телефон + OTP или пароль), JWT, роль с бэка
home_shell · profile_screen M1 · M6 Привязка org/точки, профиль с API; права табов по роли
warehouse_screen · stock_item_screen · iiko_sync_screen M2 · M3 Остатки с API; кнопка «Синк»; статусы/ошибки синка
at_risk_screen M3 Фильтр ≤ N дней; ручной expiry; FCM «списать сегодня»
writeoff_* M4 CRUD актов, статусы draft→pending→approved/rejected; выгрузка iiko/CSV
dashboard_screen M5 Агрегаты день/неделя, топ waste с API
AppState (мок) M6 Репозитории + Dio/HTTP; локальный кэш склада на смену

Спринты (6–8 недель)

S0 · Подготовка прототипа → prod-каркас нед. 0–1 · ~16 ч

Из пакета M1/M6/M7 (закладка). Цель: один codebase без «демо-режима» как единственного источника данных.

S1 · Авторизация, точка, роли нед. 1–2 · M1 · 24 ч
S2 · Синк остатков iikoCloud (+ CSV fallback) нед. 3–4 · M2 · 48 ч
S3 · Сроки / риск порчи + уведомление нед. 5 · M3 · 28 ч
S4 · Акты списания end-to-end нед. 6–7 · M4 · 32 ч
S5 · Дашборд, админка, APK на полигон нед. 8 · M5+M6+M7 · 68 ч суммарно по scope*

*Часы M5 (24) + M6 (24) + M7 (20) = 68; часть M6 уже начата в S0–S2. В календаре — финализация.

Бэклог часов (контроль)

МодульЧасыСпринт
M1 Авторизация, точка, роли2436 000S1 (+S0)
M2 Синк iikoCloud / CSV4872 000S2
M3 Склад + сроки / риск2842 000S3
M4 Акты списания3248 000S4
M5 Дашборд2436 000S5
M6 Backend + мини-админка2436 000S0–S5
M7 Сборка + аналитика2030 000S5
Итого200300 0006–8 нед.

Definition of Done (из scope)

  1. Руководитель и сотрудник входят с разными правами
  2. Остатки полигона видны (iiko или согласованный CSV)
  3. Сотрудник создаёт акт, руководитель подтверждает
  4. Дашборд показывает списания за период
  5. APK на кухне проходит смену без падения синка
  6. Краткая инструкция для персонала
Вне этого плана (как в scope): B2C-холодильник, ФНС, рефералка, подписка, сеть точек, полный фудкост/техкарты, 1С, публикация в сторы.

Порядок работ в репозитории прототипа

  1. Копия kitchenai_prototype → прод-репо (или монорепо apps/mobile + apps/api).
  2. Не удалять экраны до замены моков: держать MockStockRepositoryApiStockRepository за одним интерфейсом.
  3. Каждый спринт закрывается демо на тех же экранах, что в APK-прототипе.
  4. После S2 — обязательный прогон на реальном складе полигона (не только mock JSON).