How anjuuu999/recipe-manager-python works
Purpose and Entry Point
A standalone Python 3 console application for creating, browsing, searching, and categorizing recipes. The executable entry point and primary application implementation are in W2212865_recipe_manager.py.
Console Menu Controller
W2212865_recipe_manager.py contains the menu-driven control loop and user interaction flow. It presents available operations, collects console input, validates choices, dispatches to recipe operations, and returns users to the menu until exit.
Recipe Management Domain
The application manages recipe records containing detailed recipe information, including ingredients and category. Core user capabilities—viewing all recipes, adding recipes, searching by ingredient, and filtering by meal category—are implemented in W2212865_recipe_manager.py.
Input Validation Boundary
All user-provided menu selections and recipe fields pass through validation logic before processing or persistence. This protects the in-memory recipe workflow from malformed console input and enforces supported categories such as breakfast, lunch, dinner, dessert, and snack. Validation is centralized within W2212865_recipe_manager.py.
Persistence Layer
Recipe data is persisted as text in Recipes.txt. The application reads stored recipes into its working representation at startup or when needed, modifies that representation through user operations, and writes updated data back to Recipes.txt. File I/O uses Python built-ins; there is no database or network service.
Search and Filtering Flow
Search/filter operations consume the loaded recipe collection without requiring external services:
• Ingredient search selects matching recipe records.
• Category filtering selects recipes belonging to a requested category.
• Result records are rendered as detailed console output.
These flows are implemented by functions in W2212865_recipe_manager.py and depend on the persistent source data in Recipes.txt.
Runtime and Supporting Artifacts
The runtime is Python 3 with standard-library-only dependencies, launched via python W2212865_recipe_manager.py. README.txt provides original submission documentation, while W2212865_design_testing.pdf captures the coursework design and test report; neither is part of the runtime path.
Main entry points: W2212865_recipe_manager.py Recipe Collection · Recipes.txt Recipes Store
Components 13
Python Console Runtime
- Console User
- Recipe Manager · Menu-driven application and primary implementation.
W2212865_recipe_manager.py - Menu Controller · Collects choices, dispatches operations, and repeats until exit.
W2212865_recipe_manager.py - Console Results · Renders detailed recipe records.
W2212865_recipe_manager.py
Recipe Workflow
- Input Validation · Validates menu choices, recipe fields, and supported categories.
W2212865_recipe_manager.py - Recipe Collection · Working recipe representation including ingredients and category.
W2212865_recipe_manager.py - Add Recipe
W2212865_recipe_manager.py - Browse Recipes
W2212865_recipe_manager.py - Ingredient Search · Selects records matching an ingredient.
W2212865_recipe_manager.py - Category Filter · Selects records by meal category.
W2212865_recipe_manager.py
Other components
- Recipes Store · Text-backed recipe data.
Recipes.txt - Submission README · Original submission documentation outside the runtime path.
README.txt - Design & Test Report · Coursework design and test report outside the runtime path.
W2212865_design_testing.pdf
Connections 16
- Console User → Recipe Manager: launches and interacts
- Recipe Manager → Menu Controller: runs
- Menu Controller → Input Validation: validates input
- Input Validation → Add Recipe: accepted recipe input
- Input Validation → Ingredient Search: accepted search input
- Input Validation → Category Filter: accepted category
- Menu Controller → Browse Recipes: dispatches
- Add Recipe → Recipe Collection: adds record
- Browse Recipes → Recipe Collection: reads records
- Ingredient Search → Recipe Collection: searches
- Category Filter → Recipe Collection: filters
- Recipe Collection → Recipes Store: loads from and saves to
- Browse Recipes → Console Results: renders
- Ingredient Search → Console Results: renders matches
- Category Filter → Console Results: renders matches
- Console Results → Console User: displays