Make a Recipe
As a Host,
I want to use a step-by-step guided mode to make a cocktail recipe,
So that I can follow the recipe correctly while automatically tracking ingredient consumption in my inventory.
Acceptance Criteria
Section titled “Acceptance Criteria”Ingredient Availability Check
Section titled “Ingredient Availability Check”- Given I have selected a recipe to make
- When I tap “Make This Recipe”
- Then the system checks my inventory for all required ingredients
- And it shows me:
- Ingredients I have in stock (with checkmarks)
- Ingredients I’m missing (with warnings)
- Ingredients that are low (with caution indicators)
- And for each ingredient, it shows:
- Required quantity (e.g., “2 oz”)
- Available quantity in my inventory
- How many drinks I can make with current stock
- And I can choose to:
- Proceed anyway (if I’ll substitute or shop)
- Add missing items to shopping list
- Cancel and return to recipe
Product Instance Selection
Section titled “Product Instance Selection”- Given I have multiple instances of an ingredient (e.g., 3 opened bottles of rum)
- When making a recipe that requires that ingredient
- Then the system prompts me to select which bottle/instance to use
- And it shows me for each instance:
- Current fill level (e.g., “45% full”, “750ml/1000ml”)
- Storage location (e.g., “Bar Shelf A”, “Speed Rail”)
- Status (OPENED, IN_USE, UNOPENED)
- Opened date (for freshness tracking)
- And I can select which instance to use
- And the system remembers my selection for this drink
Step-by-Step Guided Mode
Section titled “Step-by-Step Guided Mode”- Given I have confirmed ingredient availability and selected product instances
- When I start making the recipe
- Then the system enters full-screen “Recipe Making Mode”
- And it displays one step at a time with:
- Large, clear instructions
- Current step number and total (e.g., “Step 2 of 5”)
- Visual progress indicator
- Previous/Next navigation buttons
- And for ingredient steps, it shows:
- Ingredient name in large, bold text
- Exact quantity needed (e.g., “2 oz”)
- Which bottle/instance to use (if applicable)
- A check button to mark as added
- And for instruction steps, it shows:
- Clear, numbered instructions
- Optional timer for timed steps (e.g., “Shake for 15 seconds”)
- Step completion indicator
- And I can:
- Navigate backward to previous steps
- Navigate forward to next steps
- Check off ingredients as I add them
- Start/stop timers for timed steps
- Exit making mode (with option to save progress)
Inventory Consumption Tracking
Section titled “Inventory Consumption Tracking”- Given I have completed all steps to make the recipe
- When I mark the drink as complete
- Then the system automatically updates my inventory:
- For level-tracked products (spirits, liqueurs):
- Deducts the consumed amount from the selected ProductInstance
- Updates the fill level (e.g., from 45% to 42%)
- Updates status if bottle becomes empty or low
- For quantity-only products (mixers, canned goods):
- Decrements the total quantity
- Updates low stock alerts if threshold reached
- For level-tracked products (spirits, liqueurs):
- And it converts recipe units to inventory units correctly (oz to ml, etc.)
- And it records:
- Which recipe was made
- When it was made (timestamp)
- Which ProductInstances were used
- Quantities consumed
- And I see a confirmation message:
- “Successfully made [Recipe Name]!”
- Inventory has been updated
- Remaining quantities for key ingredients
Quantity Conversion and Calculation
Section titled “Quantity Conversion and Calculation”- Given a recipe uses different units than my inventory tracking
- When consuming ingredients
- Then the system:
- Converts recipe quantities to inventory units (e.g., “2 oz” → “59.15 ml”)
- Handles conversions between oz/ml/l/parts accurately
- Accounts for partial measurements
- Rounds appropriately for display
- And it shows both original recipe units and converted inventory units when displaying consumption
Low Stock Warnings
Section titled “Low Stock Warnings”- Given I’m making a recipe that will consume an ingredient
- When the consumption will bring that ingredient below its low stock threshold
- Then the system warns me before completing:
- “[Ingredient Name] will be low after making this drink (15% remaining)”
- Option to add to shopping list
- Option to proceed anyway
- And after completion, if stock is low:
- The ingredient is marked as low stock
- I can add it to shopping list from the confirmation screen
Multiple Drink Tracking
Section titled “Multiple Drink Tracking”- Given I want to make the same recipe multiple times in a session
- When I complete one drink
- Then I can:
- Make another of the same recipe (quick repeat)
- Return to recipe detail
- Navigate to another recipe
- And if making another immediately:
- System checks availability again
- Prompts for new ProductInstance selection if needed
- Tracks each drink separately in history
Recipe Making History
Section titled “Recipe Making History”- Given I have made drinks using recipes
- When I view my recipe making history (optional feature)
- Then I can see:
- List of drinks made with timestamps
- Which recipes were used
- Inventory impact (what was consumed)
- Link to view recipe details
- And I can filter by:
- Date range
- Recipe
- Event (if linked to an event)
Error Handling
Section titled “Error Handling”- Given I’m in recipe making mode
- When an error occurs (e.g., ingredient runs out, bottle empties mid-drink)
- Then the system:
- Shows clear error message
- Explains what went wrong
- Allows me to cancel and update inventory manually
- Suggests alternatives if available (substitute ingredients)
- And my progress is preserved so I can resume or restart
Integration with Events (Optional)
Section titled “Integration with Events (Optional)”- Given I’m preparing for an event
- When making a recipe during event preparation or during the event
- Then I can optionally:
- Link the drink to the event
- Track drinks made for event planning
- See consumption summary for the event
- And drinks made during an event are grouped in event reports
Priority
Section titled “Priority”High - Core functionality that bridges recipes and inventory, enabling real-time tracking and consumption management.
Related Entities
Section titled “Related Entities”- Recipe, RecipeIngredient
- Product, ProductInstance
- Inventory, ProductLevel
- Ingredient, IngredientProduct
- Event (optional linking)
- RecipeMakingHistory (new entity for tracking)
User Flow Example
Section titled “User Flow Example”Recipe Detail Screen ↓ (tap "Make This Recipe")Ingredient Availability Check ↓ (if missing items: add to list or proceed anyway) ↓ (if multiple instances: select which bottle to use)Recipe Making Mode - Step 1 (Ingredients) ↓ (check off each ingredient as added)Recipe Making Mode - Step 2 (Instructions) ↓ (follow instructions, use timers if needed)... (continue through all steps) ↓Drink Complete Confirmation ↓Inventory Updated ↓Options: Make Another / View Recipe / DoneTechnical Considerations
Section titled “Technical Considerations”Data Structures
Section titled “Data Structures”-
RecipeMakingSession: Tracks current making session
- Recipe ID
- Selected ProductInstances
- Start time
- Completed steps
- Status (in_progress, completed, cancelled)
-
RecipeMakingHistory (optional): Historical record
- Recipe ID
- Timestamp
- ProductInstances used
- Quantities consumed
- Event ID (if linked)
Inventory Update Logic
Section titled “Inventory Update Logic”- Match recipe ingredients to products via Ingredient → Product mapping
- Convert recipe quantities to inventory units
- Update ProductInstance levels for level-tracked products
- Update quantity tracking for quantity-only products
- Handle edge cases:
- Bottle empties during use
- Insufficient quantity
- Multiple units in one recipe
UI/UX Considerations
Section titled “UI/UX Considerations”- Large, easy-to-read text for bar environment
- Bright, high-contrast design for visibility
- Minimal navigation - focused on current step
- Clear visual feedback for completed steps
- Accessible timer controls
- Quick exit option (don’t trap user)
Future Enhancements
Section titled “Future Enhancements”- Voice-guided mode (read steps aloud)
- Photo capture of each step
- Share drink creation on social media
- Rating/review after making
- Variation tracking (substitutions made)
- Cost calculation per drink
- Nutritional information per drink