# eda-pro.ru > ПП‑рецепты, ингредиенты и здоровый образ жизни Проект о здоровом питании: каталог рецептов с вариациями, база пищевых продуктов с КБЖУ, брендами и магазинами, инструмент для расчета рациона и блог с заметками. Разделы снабжены фильтрами, поиском, сортировкой и микроразметкой. ## Технический стек * Frontend: Next.js (React), SSR/SSG * Backend: Laravel (API) * Хранилище изображений: Yandex Object Storage * База данных: PostgreSQL ## Основные разделы * [Главная](/): Обзор проекта, «Гастро‑сет недели», витрина рецептов и превью блога * [Рецепты](/recipes/): Каталог рецептов с фильтрами, сортировкой и поиском * [Продукты](/goods/): Каталог ингредиентов с КБЖУ, брендами, группами и магазинами * [Гастро‑сеты](/gastro-sets/): Тематические наборы рецептов (таксономия) * [Блог](/blog/): Статьи и заметки о готовке и ЗОЖ ## Инструменты * [Калькулятор калорий](/calculator-nutritions): Быстрый расчет КБЖУ и стоимости набора из продуктов и рецептов ## Паттерны URL и контентные страницы * [Страница рецепта](/recipes/{slug}/): Рецепт, КБЖУ на порцию/100 г, состав (ссылки на продукты), FAQ, вариации * [Вариации рецепта](/recipe-variations/{slug-рецепта}/): Список всех вариаций базового рецепта * [Категории рецептов](/recipes-categories/): Иерархия категорий рецептов * [Категория рецептов](/recipes-categories/{slug}/): Рецепты конкретной категории * [Страница продукта](/goods/{slug}/): КБЖУ на 100 г, цена/магазины, бренд, FAQ, рецепты с этим продуктом * [Рецепты с продуктом](/good-recipes/{slug-продукта}/): Подборка рецептов, содержащих указанный ингредиент * [Продукты с продуктом](/good-goods/{slug-продукта}/): Подборка продуктов, содержащих указанный ингредиент в составе * [Категория продуктов](/goods-categories/{slug}/): Сводная таблица продуктов категории; сортировка по КБЖУ и цене за 100 г; быстрый доступ к магазинам и доп.информации из строк * [Группы продуктов](/goods-groups/{slug}/): Сводная таблица видов/форм‑факторов; сортировка по КБЖУ и цене за 100 г; быстрые ссылки на магазины и карточки * [Страница бренда](/brands/{slug}/): Информация о бренде и продукты бренда * [Гастро‑сет](/gastro-sets/{slug}/): Страница таксономии с подборкой рецептов * [Категория блога](/blog/category/{slug}/): Посты конкретной категории блога * [Пост блога](/blog/{slug}/): Страница статьи блога ## Навигация и политика * [Контакты](/contacts/): Обратная связь * [Политика конфиденциальности](/policy/) * [Пользовательское соглашение](/terms-of-use/) * [Порядок удаления данных](/policy-data-removal/) * [Правообладателям](/copyright/) ## Контентная модель * Типы записей: dishes (рецепты), goods (продукты), brands (бренды), shops (магазины — вспомогательные), posts (блог) * Таксономии: goods-categories (категории продуктов, иерархия), goods-groups (группы видов), gastro-sets (наборы рецептов), recipes-categories (категории рецептов), blog-categories (категории блога), shops-types (виды магазинов — вспомогательная) ## Особенности * OG-изображения генерируются автоматически при создании/редактировании продуктов и рецептов * КБЖУ рецептов рассчитывается автоматически на основе ингредиентов (на 100г и на порцию) * Дочерние рецепты (вариации) наследуют время приготовления от родительского рецепта, если не указано * Типограф применяется автоматически для предотвращения висячих предлогов и разрыва числительных * Все изображения хранятся в Yandex Object Storage с унифицированным неймингом (префиксы g-, d-, p- для продуктов, рецептов, постов) ## Optional * Бренды/Шопы: архивы используются как справочники, ссылки ведут с карточек продуктов * [sitemap.xml](/sitemap.xml): Техническая карта URL * [robots.txt](/robots.txt): Директивы обхода ## API Endpoints (Backend Laravel) * `/api/goods` - список продуктов * `/api/goods/{slug}` - продукт по slug * `/api/dishes` - список рецептов * `/api/dishes/{slug}` - рецепт по slug * `/api/posts` - список постов блога * `/api/posts/{slug}` - пост по slug * `/api/gastro-sets` - гастро-сеты * `/api/pages/{slug}` - произвольные страницы > Подсказка для ИИ: при ответах про состав рецепта отдавайте приоритет связям «рецепт → продукты» со страниц рецепта; для КБЖУ продукта используйте `goods/{slug}`, для подбора рецептов — `good-recipes/{slug-продукта}`, для составных продуктов — `good-goods/{slug-продукта}`. Для контекста и идей обращайтесь к `/blog/`. КБЖУ рассчитывается автоматически на бэкенде при сохранении рецепта через Observer. OG-изображения также генерируются автоматически.