Skip to main content

Nutrition & Grocery

Status: ✅ Complete
Last Updated: 2026-01-25

Overview​

Complete nutrition and grocery management system with dinner planning, grocery lists, templates, and ingredient catalog integration.


User Guide​

What is the Nutrition & Grocery System?​

The Nutrition & Grocery system helps you:

  • Plan your weekly dinners
  • Manage grocery shopping lists
  • Build a recipe library
  • Track cooking frequency
  • Organize ingredients and recipes

Key Rule: Cook 3 times per week = 6 meals (leftovers count as second meal). Each cooking session produces 2 meals (eat one, save one).

Dinner Planning​

How to plan dinners:

  1. Go to Dinner page (weekly view)
  2. Select meals for each day - Choose from your meal templates or create new plans
  3. Link to recipes - Connect dinner plans to recipes in your library
  4. Add meal photos - Upload photos of your meals
  5. Track cooking - Mark when you cook (counts for 2 meals)

Meal Templates:

  • Create reusable meal templates
  • Quick apply templates to any day
  • Templates include ingredients, instructions, and notes

Cooking Frequency Tracking:

  • System tracks: 3 cooks = 6 dinners requirement
  • Each cooking session counts for 2 meals (eat one, save one)
  • View cooking progress in weekly view

Grocery Lists​

How to use grocery lists:

  1. Go to Grocery page
  2. Generate from dinner plans - Automatically create list from your weekly dinner plans
  3. Add items manually - Add items not linked to dinner plans
  4. Categorize items - Organize by category (produce, meat, dairy, etc.)
  5. Mark as purchased - Check off items as you shop
  6. Use templates - Apply grocery list templates for common shopping trips

Grocery List Templates:

  • Create reusable templates for regular shopping
  • Apply templates to any week's grocery list
  • Templates include items, categories, and quantities

Shopping Features:

  • Export/print shopping lists
  • Mark items as purchased
  • Carry over unpurchased items to next week
  • Cost calculation per meal (when linked to dinner plans)

Recipe Management​

How to manage recipes:

  1. Go to Recipes page
  2. Create recipes - Add recipes with ingredients, instructions, and notes
  3. Link ingredients - Use ingredients from the global catalog
  4. Categorize ingredients - Tag as protein, carb, vegetable, etc.
  5. Link to dinner plans - Connect recipes to your weekly dinner plans

Recipe Features:

  • Full recipe library with search
  • Ingredient catalog integration
  • Recipe categories and tags
  • Link recipes to dinner plans
  • Recipe photos and notes

Ingredients Catalog​

What is it? A global catalog of ingredients, shared across all users with support for custom ingredients.

How to use:

  1. Go to Ingredients page
  2. Browse catalog - See all available ingredients (106+ pre-seeded)
  3. Search and filter - Find ingredients by name, category, or tag
  4. Create custom ingredients - Add your own ingredients
  5. Manage tags - Organize ingredients with tags
  6. Use in recipes - Select ingredients when creating recipes

Ingredient Features:

  • Global ingredients available to everyone
  • Personal custom ingredients
  • Category filtering (protein, carb, vegetable, etc.)
  • Tag system for organization
  • Bulk operations (import/export, bulk tag assignment)

Weekly Workflow​

Recommended workflow:

  1. Plan dinners - Select meals for the week in Dinner page
  2. Generate grocery list - Auto-generate from dinner plans
  3. Add extras - Add items not linked to dinner plans
  4. Shop - Mark items as purchased while shopping
  5. Cook - Mark when you cook (counts for 2 meals)
  6. Track progress - See cooking frequency (3 cooks = 6 meals)

Best Practices​

  1. Plan ahead - Plan your week's dinners on Sunday or Monday
  2. Use templates - Create meal and grocery templates for common patterns
  3. Link everything - Link dinner plans to recipes, recipes to ingredients
  4. Track cooking - Mark when you cook to track the 3-cooks requirement
  5. Use leftovers - Remember leftovers count as second meal from cooking session

Common Questions​

Q: How does the 3-cooks = 6-meals rule work?
A: Each time you cook, it produces 2 meals (eat one, save one). So 3 cooking sessions = 6 meals total. Leftovers from cooking count as the second meal.

Q: Can I import recipes from other apps?
A: No, ARC // OS is the input method. You add recipes directly in ARC to ensure data integrity and enable integration with dinner planning and grocery lists.

Q: How do I generate a grocery list?
A: Go to Grocery page and click "Generate from Dinner Plans". The system automatically creates a list from ingredients in your weekly dinner plans.

Q: Can I use grocery list templates?
A: Yes, create reusable templates for common shopping trips and apply them to any week's grocery list.

Q: What if I don't cook 3 times in a week?
A: The system tracks your cooking frequency. You can see your progress in the weekly view. Minimum mode may reduce requirements.

Q: How do I link recipes to dinner plans?
A: When creating or editing a dinner plan, you can select a recipe from your library. This links the recipe and enables ingredient integration.


Implementation Details​

Dinner Planning​

  • ✅ Dinner plan UI (weekly view, edit plans, meal templates, cooking frequency tracking)
  • ✅ Recipe integration (Recipe model, backend service/routes, link to DinnerPlan)
  • ✅ Meal photos (photoFileId field on DinnerPlan, FileUpload/ImageDisplay integration)
  • ✅ Integration with grocery lists (link grocery items to dinner plans, cost calculation)

Grocery Lists​

  • ✅ Enhanced grocery list view
  • ✅ Mark items as purchased
  • ✅ Categorize items
  • ✅ Grocery list templates (full CRUD, apply to lists)
  • ✅ Generate from dinner plans (enhanced generation with ingredient parsing)
  • ✅ Shopping list export/print
  • ✅ Integration with cooking tracking (cost per meal calculation)
  • ✅ Refactored to use linked tables (GroceryListItem and GroceryListTemplateItem)

Recipe Management​

  • ✅ Recipe library page (full CRUD, search, form validation)
  • ✅ Recipe ingredients use catalog (RecipeIngredient uses ingredientId)
  • ✅ Recipe ingredient categories (protein, carb, vegetable, etc.)

Global Ingredients Catalog​

  • ✅ Ingredient table with global/user-specific support
  • ✅ IngredientTag system
  • ✅ 106 ingredients seeded
  • ✅ IngredientService with full CRUD
  • ✅ IngredientSelector component with search
  • ✅ Ingredient management page (full CRUD, search, category filter, tag management)
  • ✅ Bulk ingredient operations (import/export, bulk tag assignment)

API Endpoints​

  • /api/dinner-plans - Dinner plan CRUD
  • /api/grocery-lists - Grocery list CRUD
  • /api/grocery-list-templates - Template CRUD
  • /api/recipes - Recipe CRUD
  • /api/ingredients - Ingredient CRUD
  • /api/ingredients/category/:category - Filter by category

Frontend Pages​

  • Dinner Page (/dinner)
  • Grocery Page (/grocery)
  • Recipe Library (/recipes)
  • Ingredient Library (/ingredients)