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:
- Go to Dinner page (weekly view)
- Select meals for each day - Choose from your meal templates or create new plans
- Link to recipes - Connect dinner plans to recipes in your library
- Add meal photos - Upload photos of your meals
- 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:
- Go to Grocery page
- Generate from dinner plans - Automatically create list from your weekly dinner plans
- Add items manually - Add items not linked to dinner plans
- Categorize items - Organize by category (produce, meat, dairy, etc.)
- Mark as purchased - Check off items as you shop
- 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:
- Go to Recipes page
- Create recipes - Add recipes with ingredients, instructions, and notes
- Link ingredients - Use ingredients from the global catalog
- Categorize ingredients - Tag as protein, carb, vegetable, etc.
- 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:
- Go to Ingredients page
- Browse catalog - See all available ingredients (106+ pre-seeded)
- Search and filter - Find ingredients by name, category, or tag
- Create custom ingredients - Add your own ingredients
- Manage tags - Organize ingredients with tags
- 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:
- Plan dinners - Select meals for the week in Dinner page
- Generate grocery list - Auto-generate from dinner plans
- Add extras - Add items not linked to dinner plans
- Shop - Mark items as purchased while shopping
- Cook - Mark when you cook (counts for 2 meals)
- Track progress - See cooking frequency (3 cooks = 6 meals)
Best Practices
- Plan ahead - Plan your week's dinners on Sunday or Monday
- Use templates - Create meal and grocery templates for common patterns
- Link everything - Link dinner plans to recipes, recipes to ingredients
- Track cooking - Mark when you cook to track the 3-cooks requirement
- 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)