Files
food-ai/docs/TODO.md
dbastrikin b6c75a3488 feat: remove recipes section, add redevelopment TODO
The recipes tab (recommendations + saved recipes + detail screen) is
removed from the app UI and all feature files are deleted. The section
will be redesigned from scratch.

- Remove /recipes and /recipe-detail routes from app_router.dart
- Remove Recipes tab from BottomNavigationBar
- Delete client/lib/features/recipes/ entirely
- Keep shared/models/recipe.dart and saved_recipe.dart for later reuse
- Add "Раздел рецептов (переработка с нуля)" section to docs/TODO.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 15:04:32 +02:00

109 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TODO: будущие улучшения
Функционал, сознательно отложенный. Основные AI-фичи (рекомендации, распознавание, меню) реализуются через Gemini в итерациях 14.
---
## Раздел рецептов (переработка с нуля)
Текущий раздел рецептов удалён из приложения — он был сырым и требует переосмысления.
Модели данных (`Recipe`, `SavedRecipe`) сохранены в `client/lib/shared/models/`.
Что должен включать новый раздел:
- **Лента / каталог** — просмотр рецептов с фильтрами (кухня, сложность, время, КБЖУ, теги)
- **Поиск** — full-text по названию и ингредиентам (PostgreSQL tsvector, индексы уже в схеме)
- **"Что можно приготовить"** — поиск рецептов по продуктам из холодильника (mapping_id)
- **Сохранённые рецепты** — личный список, доступен оффлайн
- **Детальный экран** — пошаговый рецепт, КБЖУ, изображение, рейтинг
- **Интеграция с меню** — добавить рецепт в план питания прямо из карточки
- **Интеграция с дневником** — записать приём пищи по рецепту
- **AI-рекомендации** — персонализированные предложения на основе предпочтений и продуктов
- **Рейтинги и отзывы** — поля `avg_rating`, `review_count` уже есть в схеме `recipes`
---
## База данных рецептов и нутриентов
### Верифицированная база нутриентов
Сейчас КБЖУ генерирует Gemini (приблизительно, помечается «≈» в UI). Для пользователей с медицинскими показаниями (диабет, ожирение) нужна точность:
- **USDA FoodData Central** — государственная база США, бесплатно, 300K+ продуктов, верифицированы лабораторно
- API: `api.nal.usda.gov/fdc/v1/` (ключ бесплатный)
- Данные используются как reference при генерации Gemini
- **Open Food Facts** — community база для упакованных продуктов со штрих-кодами
### Постоянная база рецептов с поиском
Сейчас рецепты генерируются on-demand и хранятся только если сохранены. В будущем:
- Постоянная база 5K50K рецептов с FTS-поиском
- Фильтрация, рейтинги, отзывы, история просмотров
- Каталог с пагинацией
- Возможные источники: Spoonacular (коммерческая лицензия), собственная редакция + Gemini
---
## Функциональность
### Поиск по рецептам
Когда будет постоянная база — полноценный поиск:
- Full-text search по названию и ингредиентам (PostgreSQL tsvector, индексы уже в схеме)
- Фильтры: кухня, сложность, время, КБЖУ, диетические теги
- "Что можно приготовить из этих продуктов" — SQL-запрос по mapping_id
### Дневник питания и статистика
- Запись что съедено за день (из рецепта, из меню, вручную, фото)
- Автоподсчёт КБЖУ за день, прогресс к норме
- Графики за день / неделю / месяц
- Быстрое добавление перекусов через поиск
### Рейтинги и отзывы рецептов
- Оценка и отзыв после готовки
- Поля `avg_rating` и `review_count` уже есть в схеме `recipes`
- Реализовать когда появится постоянная база
### Шаблоны меню
- Сохранить удачное меню как шаблон (например «Рабочая неделя»)
- Повторное применение с учётом текущих продуктов
### Пользовательские рецепты
- Создать и сохранить собственный рецепт
- Доступен в личном каталоге, не виден другим (или можно поделиться)
---
## Технический долг
### Кэширование
- **Redis** для кэша Pexels image_url по query-строке (сейчас: новый Pexels-запрос при каждой генерации)
- **Кэш рекомендаций** на 30 минут — не перегенерировать если продукты не изменились
### Оффлайн-режим
- Кэшировать последние рекомендации и меню локально (Hive/SharedPreferences)
- Сохранённые рецепты — полностью оффлайн
### Уведомления
- Push-уведомления о продуктах, срок которых истекает завтра
- Напоминание приготовить по плану меню
### Монетизация
- **Free tier:** N рекомендаций/день, без меню на неделю
- **Premium:** неограниченные рекомендации, планировщик меню, расширенная аналитика, приоритетная очередь Gemini
### Масштабирование Gemini при росте
При 10 000 DAU × 5 AI-запросов/день = 50 000 запросов/день:
- Gemini Flash: ~$0.0003/запрос → **$15/день = $450/мес**
- Оптимизация: батчинг, кэширование, rate limiting по плану