Skip to content

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.

  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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)
  • 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
  • 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

High - Core functionality that bridges recipes and inventory, enabling real-time tracking and consumption management.

  • Recipe, RecipeIngredient
  • Product, ProductInstance
  • Inventory, ProductLevel
  • Ingredient, IngredientProduct
  • Event (optional linking)
  • RecipeMakingHistory (new entity for tracking)
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 / Done
  • 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)
  • 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
  • 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)
  • 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