В папке data/ лежат 100 рецептов и каталог продуктов (foods), которые в них
используются. У рецепта есть число порций и список ингредиентов, у каждого
ингредиента — количество, единица измерения и ссылка на продукт из каталога. Нутриентов в этих
данных нет.
Нужно сделать веб-приложение, которое показывает пищевую ценность каждого рецепта.
Источник нутриентов — открытая база USDA FoodData Central. Как её получить и в каком виде использовать, решаете вы.
Что должно работать:
- Список рецептов.
- Страница рецепта с КБЖУ (калории, белки, жиры, углеводы) на весь рецепт и на одну порцию, с разбивкой по ингредиентам.
- Привязка продуктов к USDA. Экран, где видно, какой продукт из каталога к какой записи USDA привязан, какие продукты ещё не привязаны, и где привязку можно задать или изменить через поиск по USDA. Как именно вы получите первоначальные привязки — руками, скриптом, с помощью AI или как-то ещё — ваше решение.
- Если у рецепта есть продукт без привязки, страница рецепта честно показывает, что данные неполные.
Задание намеренно не описывает всё. Там, где требования неполны, принимайте решение сами и запишите его в README своего проекта.
- TypeScript и Node.js обязательны. Остальной стек — фреймворки, база данных, способ хранения — на ваш выбор.
- Авторизация и деплой не нужны. UI не главное: достаточно, чтобы им можно было пользоваться, на отделку время не тратьте.
Приватный репозиторий на GitHub с доступом для пользователя @bludnic. В корне — README с тремя разделами:
- Как запустить — пошагово, с нуля, на чистой машине.
- Допущения и решения — что вы решили сами там, где задание молчит, и почему.
- Что не сделано и почему — что сознательно оставили за рамками.
На корректность работы с доменом и крайними случаями: единицы измерения, продукты без привязки, один продукт во многих рецептах. На простоту кода и аккуратную работу с типами. На честный README: записанные допущения для нас важнее, чем количество сделанных экранов.