Skip to content

Roadmap Item: Release 0.5 — Nutrition & Preferences

Status

PROPOSED

Date: 2026-02-07

Changelog

Date Revision Description Author
2026-02-07 1.0 Initial version @souperk

Context

Users want to track nutritional information for ingredients and products, apply dietary constraints when planning meals and shopping (e.g., "avoid added sugar", allergen exclusions), and express brand preferences with fallback strategies. These capabilities are prerequisites for the external integration (v0.6) and recommendation (v0.7) releases.

Proposal

Overview

Nutrition facts for ingredients and products, dietary constraint system, and brand preferences with fallback strategies.

Goals

  • Nutrition facts entity per ingredient/product (calories, macros, micronutrients per serving)
  • Dietary constraints ("avoid sugar", "no gluten", allergen exclusions)
  • Constraint application to recipe suggestions and shopping plan generation
  • Brand preferences per ingredient ("prefer brand X for granola") with fallback (cheapest, any, skip)

Non-Goals

  • Automated nutrition data import from external sources (v0.6)
  • Price-based optimization (v0.6)
  • AI-based dietary recommendations (v0.7)

Technical Details

Approach

  • NutritionFacts entity linked to ingredient or product
  • DietaryConstraint entity with constraint type and parameters
  • BrandPreference entity with ingredient, brand, priority, and fallback strategy
  • Constraint filtering integrated into recipe suggestions and plan generation

Dependencies

  • v0.4 must be complete
  • Recipe suggestions from v0.2, plan generation from v0.3

TDs

  • TD-005: Nutrition & Preferences (planned)

Backwards Compatibility

  • New entities and endpoints only
  • Existing recipes and ingredients gain optional nutrition data
  • Constraint filtering is additive; queries without constraints behave unchanged

Implementation Plan

Phase 1: Nutrition Facts

  • NutritionFacts entity + repository
  • CRUD endpoints
  • Per-recipe nutrition aggregation
  • Migration

Phase 2: Dietary Constraints

  • DietaryConstraint entity + repository
  • Constraint filtering in recipe suggestions
  • Constraint filtering in plan generation
  • Tests

Phase 3: Brand Preferences

  • BrandPreference entity + repository
  • CRUD endpoints
  • Integration with shopping plan generation
  • Tests

Open Questions

  • What nutrition fields are required vs optional (full USDA set or simplified)?
  • Should constraints support severity levels (strict avoidance vs preference)?
  • How to handle brand preferences when the brand is unavailable at a retailer?

References

  • TBD