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 дня)
Доступ iikoCloud: ключ, org/warehouse ID; иначе согласовать CSV-fallback.
2–3 учётки полигона: сотрудник / руководитель (+ завскладом по желанию).
Как списывают сейчас (бумага / iiko / Excel) — поля акта = привычка кухни.
Репозиторий: форк/копия kitchenai_prototype → ветка mvp/production.
Backend-скелет: REST + PostgreSQL + очередь синка (или sync job в том же сервисе).
Карта: прототип → модули 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 без «демо-режима» как единственного источника данных.
Структура: features/ или сохранить screens + слой data/ (api, models, repos).
Конфиг: base URL, ключи; flavours dev / polygon.
Оставить UI прототипа 1:1; AppState → тонкий UI-state + репозитории.
Демо: приложение собирается, экраны открываются на пустом API (заглушки 200).
S1 · Авторизация, точка, роли
нед. 1–2 · M1 · 24 ч
API: register/login, refresh, org + одна точка полигона.
Роли manager / staff — как в HomeShell (разный bottom nav).
Экраны: доработать auth_screen, profile_screen (без соцсетей).
Демо: вход руководителя и сотрудника с разными правами (DoD #1).
S2 · Синк остатков iikoCloud (+ CSV fallback)
нед. 3–4 · M2 · 48 ч
Backend: хранение ключа, job синка, ретраи, лог ошибок.
Маппинг номенклатуры / qty / uom → модель как StockItem.
UI: warehouse_screen + iiko_sync_screen — прогресс, last sync, ошибка «понятным языком».
Fallback: загрузка CSV тем же контрактом склада (если API полигона режет методы).
Демо: реальные позиции полигона в приложении (DoD #2).
S3 · Сроки / риск порчи + уведомление
нед. 5 · M3 · 28 ч
Ручная пометка срока на карточке (stock_item_screen), если iiko не отдаёт expiry.
at_risk_screen: список «списать сегодня / ≤3 дня»; баннер на складе.
FCM (или локальный reminder на смену) — событие «есть риск».
Демо: список «списать сегодня» на кухне.
S4 · Акты списания end-to-end
нед. 6–7 · M4 · 32 ч
Поток как в прототипе: writeoff_create → список → writeoff_detail (confirm manager).
Причины: порча / просрок / инвентаризация.
Выгрузка в iiko при наличии метода; иначе акт в нашем API + CSV для бухгалтера.
Очередь pending на табе «Акты» у руководителя (badge как в прототипе).
Демо: полный цикл списания на кухне (DoD #3).
S5 · Дашборд, админка, APK на полигон
нед. 8 · M5+M6+M7 · 68 ч суммарно по scope*
*Часы M5 (24) + M6 (24) + M7 (20) = 68; часть M6 уже начата в S0–S2. В календаре — финализация.
dashboard_screen: списания день/неделя, топ позиций (без техкарт).
Мини-админка web: пользователи точки, логи синка, статусы актов.
Release APK на устройства кухни; события аналитики: login, sync, writeoff.
Инструкция на 1 страницу для персонала.
Багфикс по живой смене (DoD #4–#6).
Бэклог часов (контроль)
Модуль Часы ₽ Спринт
M1 Авторизация, точка, роли 24 36 000 S1 (+S0)
M2 Синк iikoCloud / CSV 48 72 000 S2
M3 Склад + сроки / риск 28 42 000 S3
M4 Акты списания 32 48 000 S4
M5 Дашборд 24 36 000 S5
M6 Backend + мини-админка 24 36 000 S0–S5
M7 Сборка + аналитика 20 30 000 S5
Итого 200 300 000 6–8 нед.
Definition of Done (из scope)
Руководитель и сотрудник входят с разными правами
Остатки полигона видны (iiko или согласованный CSV)
Сотрудник создаёт акт, руководитель подтверждает
Дашборд показывает списания за период
APK на кухне проходит смену без падения синка
Краткая инструкция для персонала
Вне этого плана (как в scope): B2C-холодильник, ФНС, рефералка, подписка,
сеть точек, полный фудкост/техкарты, 1С, публикация в сторы.
Порядок работ в репозитории прототипа
Копия kitchenai_prototype → прод-репо (или монорепо apps/mobile + apps/api).
Не удалять экраны до замены моков: держать MockStockRepository → ApiStockRepository за одним интерфейсом.
Каждый спринт закрывается демо на тех же экранах, что в APK-прототипе.
После S2 — обязательный прогон на реальном складе полигона (не только mock JSON).
Проект: /Downloads/kitchenai-mvp ·
scope: KitchenAI_MVP_scope.html ·
прототип: kitchenai_prototype/ ·
29.08.2026