Initial CRC (for part 2) - CMPUT301F22T03/JoyfulMealPlanning GitHub Wiki

Model Classes

Ingredient

Responsibilities Collaborators
Maintain details of an ingredient: brief description, best before date, location, amount, unit, ingredient category

Recipe

Responsibilities Collaborators
Maintain details of a recipe: title, preparation time, number of servings, recipe category, comments, photograph, list of ingredients Photo

Meal Plan

Responsibilities Collaborators
Maintain details of a meal plan: title, list of recipes, amount of each recipe, list of ingredients Recipe
Ingredient

Photo

Responsibilities Collaborators
Holds data for a digital image

Controller Classes

Ingredient Controller

Responsibilities Collaborators
Hold a local list of Ingredient Ingredient
Synchronize with ingredient database Ingredient DB Controller
The list can be sorted using Ingredient description, best before date, location, and ingredient category
Return each individual Ingredient inside the list

Ingredient DB Controller

Responsibilities Collaborators
Add an Ingredient to FireStore DB Ingredient
Remove an Ingredient in FireStore DB
Update an existing Ingredient in FireStore DB
Return each Ingredient stored inside the DB

Recipe Controller

Responsibilities Collaborators
Hold a local list of Recipe Recipe
Synchronize with recipe database Recipe DB Controller
The list can be sorted using Recipe title, preparation time, number of servings, or recipe category
Return each individual Recipe inside the list

Recipe DB Controller

Responsibilities Collaborators
Add a Recipe to FireStore DB Recipe
Remove a Recipe in FireStore DB
Update an existing Recipe in FireStore DB
Return each Recipe stored inside the DB

Meal Plan Controller

Responsibilities Collaborators
Hold a local list of Meal Plan Meal Plan
Synchronize with meal plan database Meal Plan DB Controller
The list can be sorted using Recipe title, preparation time, number of servings, or recipe category
Return each individual Meal Plan inside the list

Meal Plan DB Controller

Responsibilities Collaborators
Add a Meal Plan to FireStore DB Meal Plan
Return each Meal Plan stored inside the DB

Shopping List Controller

Responsibilities Collaborators
Create a shopping list that holds the needed Ingredient and the amount of each Ingredient Ingredient
Get the ingredients and their counts from each Meal Plan inside Meal Plan Controller Meal Plan
Get each Ingredient inside Ingredient Controller and its count Ingredient Controller
Calculate the difference between ingredient counts Meal Plan Controller
The list can be sorted using Ingredient description or category

Photo Controller

Responsibilities Collaborators
Lets the user select a photo from the file path and store it as a Photo object Photo
Lets the user delete or replace an existing Photo
Attaches the photo to Recipe

View Classes

Ingredients Activity

Responsibilities Collaborators
Displays the local ingredients list Ingredient Controller
Allows the user to add an Ingredient
Allows the deletion of existing ingredient(s)

Recipe Activity

Responsibilities Collaborators
Displays the existing list of recipes Recipe Controller
Allows the user to add a new Recipe
Allows the deletion of existing recipe(s)
Attaches the photo to Recipe

Meal Plan Activity

Responsibilities Collaborators
Allows the user to add a new Meal Plan, choosing from either ingredients storage or recipes Meal Plan Controller
Displays the existing list of recipes Recipe Controller
Displays the existing ingredients list Ingredient Controller

Shopping List Activity

Responsibilities Collaborators
Displays the shopping list Shopping List Controller
Displays the existing ingredients list Ingredient Controller
Allows the user to view details of an Ingredient
Allows the user to store ingredients in the ingredient storage