By: Team F11-4
Since: Jan 2020
Licence: MIT
Cooking Papa is an all-in-one, easy-to-use application that acts as a personalised cookbook, with your favourite recipes!
Cooking Papa aims to help university students who live alone. It aim to make learning how to cook more convenient, contributing to the variety of meals of these university students. With Cooking Papa, users can easily edit recipes, keep track of ingredients they currently have at home and have a shopping list that assists them in their grocery shopping process.
CookingPapa consists of 3 main features:
-
Cookbook: Stores all your recipes, including the ingredients and steps for each recipe.
Cookbook commands can be seen here: Section 3.1, “Cookbook Commands (by Chan Shun Jie)”
Cookbook is supplemented with recipe commands, which can be seen here: Section 3.2, “Recipe Commands (by Goh Ka Hui)” -
Inventory: Keeps stock of all the ingredients you currently have.
Inventory commands can be seen here: Section 3.3, “Inventory Commands (by Ong Han Sheng)” -
Cart: Acts as a shopping list for ingredients you may wish to purchase.
Cart commands can be seen here: Section 3.4, “Cart Commands (by Tay Zi Hiang Willis)”
Do away with thick, confusing, and expensive cookbooks, and start cooking with Cooking Papa today!
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
cookingpapa.jar
here. -
Copy the file to the folder you want to use as the home folder for your Cooking Papa.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
CookingPapa uses the command box for all of its commands. You can see a comprehensive view of all the commands given in Section 3, “Features”.
-
Whenever a command is entered, feedback will be given in the result display, and the message displayed varies with the type of command given by the user.
-
Here are the components of Cooking Papa’s user interface:
Cooking Papa accepts the following command formats for its application. It is important to follow these guidelines for smooth usage of the application.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
(e.g. ininventory add ingredient i/INGREDIENT
,INGREDIENT
is a parameter which can be used asinventory add ingredient i/Bacon q/10
). -
Words in square brackets are optional.
(e.g incookbook add recipe n/NAME d/DESCRIPTION [i/INGREDIENT]… [q/QUANTITY]… [s/STEP]… [t/TAG]…
can be used ascookbook add recipe n/Cheesecake d/Delicious New York cheesecake t/Dessert
or ascookbook add recipe n/Cheesecake d/Delicious New York cheesecake
as tags are optional). -
Words with
…
after them can be included multiple times.
(e.g.cookbook add recipe n/NAME d/DESCRIPTION [i/INGREDIENT]… [q/QUANTITY]… [s/STEP]… [t/TAG]…
can be used to add multiple ingredients and its respective quantities in the same command:cookbook add recipe n/Sandwich d/Delicious Sandwich i/Bread q/2 pieces i/Ham q/3 slices i/Cheese q/2 slices
). -
Parameters can be in any order.
(e.g. if the command specifiesi/INGREDIENT q/QUANTITY
,q/QUANTITY i/INGREDIENT
is a valid command). -
Command and delimiter (eg. i/, q/) formats given in the lowercase are case-sensitive. (eg
cookbook
is given as all lowercase.Cookbook
orCOOKBOOK
orcOoKbOoK
are not valid.)
Additionally, parameters also cannot start with spaces. Please follow the format given carefully for a seamless experience.
A table of parameters and their associated constraints:
Parameter type | Constraint |
---|---|
|
Must be a whole number. |
|
Can contain alphabet letters, numbers, and spaces, as well as the symbols |
|
Must start with a numerical value, which can contain decimal points or slashes to represent a fraction. The value can be followed by an optional unit that only consists of alphabet letters, which may be separated by spaces. A quarter cup of milk can be represented in a command as: |
|
Can only contain alphabet letters and numbers. No spaces are permitted. |
3.1. Cookbook Commands (by Chan Shun Jie)
Cookbook commands are commands that allow users to add and remove recipes from the cookbook, as well as view recipes stored in the cookbook. More commands can be done with recipes, and are covered in Section 3.2, “Recipe Commands (by Goh Ka Hui)”.
This command allows you to view a recipe, the ingredients required, and the steps to cook it.
-
Format:
cookbook view recipe INDEX
-
Example:
Command | Result |
---|---|
|
A recipe’s details can also be viewed by pressing the "eye" icon, without the need to type in the command above:
This command allows you to add (and store) a new recipe with the provided recipe details to the cookbook.
-
Format:
cookbook add recipe n/NAME d/DESCRIPTION [i/INGREDIENT]… [q/QUANTITY]… [s/STEP]… [t/TAG]…
-
Examples:
Command | Result |
---|---|
|
Adds a recipe with only its name and description specified. New recipe added: Bacon Carbonara Description: Best cream pasta made in Italy Ingredients: Preparation Steps: Tags: |
|
Adds a recipe with its name, description, ingredients, steps, and tags specified. New recipe (index 1) added: Chicken Ham Sandwich |
Note: the number of ingredient names provided must be the same as the number of ingredient quantities provided, otherwise Cooking Papa will not be able to add the recipe.
This command allows you to remove a recipe of the specified index from the cookbook.
-
Format:
cookbook remove recipe INDEX
-
Example:
Command | Result |
---|---|
|
Removed recipe: Bacon Carbonara from the cookbook Note: you must have added a recipe to the cookbook, otherwise Cooking Papa will not be able to remove the recipe. |
Note: you must have added a recipe to the cookbook, otherwise Cooking Papa will not be able to remove the recipe.
This command allows you to search for recipes by keywords, returning a list of recipes.
Note: Adding more keywords will not narrow the search results, but will expand the search results to return any recipe
that contains any of the given keywords. Moreover, only full words will be searched, for example, if there is a
recipe named "ABCD" in the cookbook, searching with the parameter k/AB
will not return the mentioned recipe as a
result.
-
Format:
cookbook search recipe k/KEYWORD…
-
Example:
Command | Result |
---|---|
|
Searches the cookbook for recipes with names matching the keyword 'Carbonara'. |
|
Searches the cookbook for recipes with names matching the keywords 'Carbonara', or |
This command allows you to search for recipes by tags, returning a list of recipes.
Note: Adding more tags will not narrow the search results, but will expand the search results to return any recipe that contains any of the given tags.
-
Format:
cookbook search tag t/TAG…
-
Examples:
Command |
Result |
|
Searches the cookbook for recipes wisth tags matching 'Easy'. |
|
Searches the cookbook for recipes with tags matching 'Pasta', or 'Cream', or 'Easy'. |
This command allows you to see search for recipes you can cook with your current inventory of ingredients.
-
Format:
cookbook search inventory
-
Example:
Command | Result |
---|---|
|
Searches the cookbook for recipes which ingredients are available in the inventory. |
This commands allows you to view the whole collection of recipes in the cookbook. Additionally, it can be used after using the search commands to view all the recipes.
-
Format:
cookbook list
-
Example:
Command | Result |
---|---|
|
Lists all recipes in the cookbook |
3.2. Recipe Commands (by Goh Ka Hui)
Recipe commands are commands that change an existing recipe in the cookbook, which can be indicated using the index of the recipe. You can use these commands to to add and remove ingredients or steps from a recipe in the cookbook. You may also tag your recipes to make it easier for you to find them.
This command allows you to add ingredients to an existing recipe in the cookbook.
You can increase the quantity of an ingredient that is already in the recipe, as long as you provide a quantity with the same unit. Otherwise, Cooking Papa will not add the ingredient.
Ingredient quantities are case-sensitive, but ingredient names are not, when you adding to an existing ingredient in a recipe. If you indicate multiple ingredient names or quantities, Cooking Papa will only add an ingredient with the last name and quantity indicated in your command.
-
Format:
recipe INDEX add ingredient i/INGREDIENT q/QUANTITY
-
Examples:
Command | Result |
---|---|
|
Adds 3 cloves of garlic to the first recipe’s list of ingredients. |
|
Adds 2 eggs to the second recipe’s list of ingredients. |
This command allows you to remove ingredients from an existing recipe in the cookbook.
If you wish to remove an ingredient from the recipe entirely, do not indicate any quantity. Cooking Papa will then remove all of the specified ingredient from the recipe.
If you want to reduce the quantity of an ingredient that is already in the recipe, provide a quantity with the same unit as in the recipe. The value must be less than that of the corresponding ingredient in the recipe. Otherwise, Cooking Papa will not remove the ingredient.
-
Format:
recipe INDEX remove ingredient i/INGREDIENT [q/QUANTITY]
-
Examples:
Command | Result |
---|---|
|
Removes all eggs from the list of ingredients in recipe 1. |
|
Removes 200 ml of milk from the list of ingredients in recipe 2, provided that the original quantity of milk in the recipe is greater than 200 ml. |
This command allows you to add a step to an existing recipe in the cookbook.
For this command, you have to specify the index of the step that you wish to add, which must be positive, and at most 1 more than the current number of steps currently in your chosen recipe. For example, if there are currently 5 steps in the recipe you are trying to add to, you can only choose an index from 1 to 6.
This command pushes back the original step at your specified step index and any subsequent steps, if any.
You can use next
as a substitute for the largest possible step index, to add a step to the end of the selected recipe’s list of steps.
-
Format:
recipe INDEX add step x/STEP_INDEX s/STEP_DESCRIPTION
-
Example:
Command | Result |
---|---|
|
Adds "Bring water to boil." to recipe 1 as the first step. |
|
Adds "Serve the pasta topped with the remaining cheese." to recipe 1 as the last step. |
This command allows you to remove a step to an existing recipe in the cookbook.
Similar to the previous command, you have to specify the index of the step that you wish to add, which must be positive, and at most 1 more than the current number of steps currently in your chosen recipe.
In this case, you cannot use next
as a substitute for the largest step index.
-
Format:
recipe INDEX remove step x/STEP_INDEX
-
Example:
Command | Result |
---|---|
|
Removes step 1 in recipe 1. |
This command allows you to add a tag to an existing recipe in the cookbook. Only one tag is accepted at a time. If you provide multiple steps, Cooking Papa will only add the last tag in your command.
-
Format:
recipe INDEX add tag t/TAG
-
Example:
Command | Result |
---|---|
|
Adds a tag "Pasta" to the recipe 1. |
This command allows you to remove a tag from an existing recipe in the cookbook. Only one tag is accepted at a time. If you provide multiple steps, Cooking Papa will only remove the last tag in your command.
-
Format:
recipe INDEX remove tag t/TAG
-
Example:
Command | Result |
---|---|
|
Removes the tag "Spicy" from the recipe 1. |
Example Scenario
With all these recipe commands, you are equipped to modify any recipe in the cookbook to your liking!
Below outlines a scenario where you might find these commands useful.
Imagine that you have just added a new recipe for instant ramen via the cookbook add recipe
command, which now has the
index 3.
You have provided the name and description for the recipe, but have yet to add ingredients and steps to the recipe. Here are the steps you can follow to modify the recipe:
Step 1: To add an ingredient to the instant ramen recipe, type recipe 3 add ingredient i/Instant ramen q/1 packet
into the command box and press Enter on the keyboard.
Cooking Papa indicates that cucumber has been added to the recipe.
Step 2: Repeat step 1 for all the ingredients you need for the instant ramen.
Step 3: To add the first step the instant ramen recipe, type recipe 3 add step x/next s/Add the oil, garlic, and ginger to a small sauce pot and saute over medium for about one minute.
into the command box and press Enter on the keyboard.
Cooking Papa indicates that the new step has been added to the recipe.
Step 4: Repeat step 3 for all the steps, following chronological order.
Step 5: After adding the ingredients and steps, you can also add tags to the recipe so that you can search for it easily in future.
Type recipe 3 add tag t/Easy t/Healthy
to add the tags "Easy" and "Healthy" to the recipe. Upon pressing Enter,
Cooking Papa indicates that the tags have been added.
Step 6: The recipe is finally ready for use. Type cookbook view recipe 3
into the command box to view the recipe and and press Enter.
Cooking Papa shows the full recipe for instant ramen, and you can now use it to prepare your meal.
Step 7: After trying the recipe, if you find that there was too much of ginger for your liking,
type recipe 3 remove ingredient i/Grated ginger q/1/2 tsp
into the command box and press Enter to remove half a teaspoon of grated ginger from the recipe.
Cooking Papa indicates that half a teaspoon of grated ginger has been removed from the recipe.
3.3. Inventory Commands (by Ong Han Sheng)
Inventory commands are commands that update the user’s very own inventory at home. These commands include adding, remove and viewing the current inventory database.
This commands allows you to add ingredients to your inventory. Ingredient names added are case-insensitive. Ingredient names such as 'Bacon' and 'bacon' will be recognised by CookingPapa as 'Bacon'.
-
Format:
inventory add ingredient i/INGREDIENT q/QUANTITY
-
Examples:
Command | Result |
---|---|
|
Adds 10 eggs into your inventory. |
|
Adds 200g of butter into your inventory. |
This command allows you to remove ingredients from the inventory. You can indicate the quantity you want to remove for an ingredient, which should not be greater that than the ingredient’s quantity. Please ensure that the unit of the quantity matches the ingredient’s unit in the inventory.
Note: If you do not indicate any quantity, all entries in the inventory that have the specified ingredient name will be removed regardless of the unit.
-
Format:
inventory remove ingredient i/INGREDIENT [q/QUANTITY]
-
Examples:
Command | Result |
---|---|
|
Removes all bacon from your inventory. |
|
Removes 200g of butter from your inventory. (If your inventory had 500 g of butter, it will be subtracted and updated to 300 g of butter) |
This command allows you to remove all ingredients from the inventory.
-
Format:
inventory clear
-
Example:
Command | Result |
---|---|
|
Removes all ingredients from the inventory |
This command allows you to remove the selected’s recipe ingredients from the inventory after cooking a delicious meal.
-
Format:
inventory cook recipe INDEX
-
Example:
Parameters | Result |
---|---|
|
Removes all ingredients required to cook recipe 3 from the inventory |
3.4. Cart Commands (by Tay Zi Hiang Willis)
Cart commands are commands that allow you to easily add ingredients needed for a recipe into a shopping cart. This provides convenience for your grocery shopping needs.
This command allows you to add all the ingredients in a recipe to the cart.
-
Format:
cart add recipe INDEX
-
Example:
Command | Result |
---|---|
|
Adds all the ingredients required of recipe 1 to the cart. |
This command allows you to add ingredients to the cart.
-
Format:
cart add ingredient i/INGREDIENT q/QUANTITY
-
Example:
Command | Result |
---|---|
|
Adds 5 eggs to the cart. |
This command allows you to remove ingredients from the cart. You can indicate the quantity you want to remove for an ingredient, which should not be greater that than the ingredient’s quantity. Please ensure that the unit of the quantity matches the ingredient’s unit in the cart.
Note: If you do not indicate any quantity, all entries in the cart that have the specified ingredient name will be removed regardless of the unit.
-
Format:
cart remove ingredient i/INGREDIENT [q/QUANTITY]
-
Example:
Command |
Result |
|
Removes all eggs from the cart |
|
Removes 200ml of milk from the cart. (If your cart had 500 ml of milk, it will be subtracted and updated to 300 ml of milk) |
This command allows you to clear all the items in the cart. It can be used to discard an unwanted cart, or to clear the cart after completing the purchase.
-
Format:
cart clear
-
Example:
Command | Result |
---|---|
|
Clears the cart of all items. |
This command allows you to move all the ingredients from the cart into your inventory. This command also empties your cart. This is helpful after the user has finished shopping and wish to conveniently move all the ingredients to the inventory.
-
Format:
cart move
-
Example:
Command | Result |
---|---|
|
Moves all ingredients from the cart into the inventory. Also clears the cart of all items. |
This command allows you to export all the ingredients in the cart to a PDF file. The PDF file will be located in the same folder as Cooking Papa.
Note: if a previous version of the PDF file, cart.pdf
is open in another program (Internet browser, Adobe PDF),
Cooking Papa will not be able to export the cart.
-
Format:
cart export
Command |
Result |
|
3.5. Help Command (by Teo Jun Xiong)
This command shows a popup window with a URL to Cooking Papa’s user guide (what you are reading now). This is for access should you need some help executing a certain action in Cooking Papa.
There are 2 ways a user can access the help window:
-
Type
help
. -
Click on the
Help
button on the top left corner of Cooking Papa, and then click on theHelp
button in the dropdown menu. You can then click theCopy URL
button which can then be pasted into a web browser to access Cooking Papa’s user guide.
3.6. Exit Command (by Teo Jun Xiong)
There are 3 ways a user can exit Cooking Papa:
-
Type
exit
. -
Click on the
x
button on the top right corner of the Cooking Papa. -
Click on the
File
button on the top left corner of Cooking Papa, and then click on theExit
button in the dropdown menu.
These features are not implemented yet, but we plan to do so moving forward with the application.
4.1. Edit Recipe Commands [v2.0] (by Goh Ka Hui)
The following commands allow you to edit the details of the recipes that are currently in the cookbook.
This command allows you to edit an ingredient in an existing recipe in the cookbook. It replaces the original quantity of the ingredient with the new quantity that you specify in the command.
-
Format:
recipe INDEX edit i/INGREDIENT q/QUANTITY
-
Examples:
Command | Result |
---|---|
|
Changes the quantity of eggs to 2 in the first recipe’s list of ingredients. |
|
Changes the quantity of milk to 100 ml in the second recipe’s list of ingredients. |
This command allows you to edit a step in an existing recipe in the cookbook.
-
Format:
recipe INDEX edit step x/STEP_INDEX s/STEP_DESCRIPTION
-
Example:
Command | Result |
---|---|
|
Changes preparation step 2 to 'Fry the eggs' in recipe 1 |
4.2. Calendar commands [v2.0] (by Teo Jun Xiong)
Calendar commands are commands that allow you to set date-related commands, such as reminders and recipe of the day
Reminds the user to cook a certain recipe on a certain day.
-
Format:
calendar set DD-MM-YYYY cook recipe INDEX
-
Example:
Command | Result |
---|---|
|
Adds recipe 1 to your calendar for cooking on 10th October 2020. |
User can view the recipes they were supposed to cook on a certain day. The date input can be replaced with 'today' for the current date, or 'tomorrow' for the next day.
-
Format:
calendar view recipes DD-MM-YYYY
-
Example:
Command | Result |
---|---|
|
Shows the recipes scheduled for cooking on 10th October 2020. |
|
Shows the recipes scheduled for cooking on the current day. |
|
Shows the recipes scheduled for cooking on the day after the current day. |
4.3. Recipe of the day generator [v2.0] (by Ong Han Sheng)
This command allows CookingPapa to recommend a recipe to cook based on the recipes currently in the cookbook.
-
Format:
generate recipe of the day
-
Example:
Command | Result |
---|---|
|
Displays the recipe of the day |
5. Frequently Asked Questions (by Teo Jun Xiong)
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous CookingPapa folder.
Q: Where can I install the latest version of CookingPapa?
A: You can find the latest release here. Please download
the latest version of CookingPapa.jar to enjoy the most udpated features.
Q: Do I need to be connected to the internet to access this application?
A: All information is stored locally in your own computer. No internet connection is required.
Q: Something is not working as expected. Who can I contact?
A: You may report your bugs here here. Bug reports are highly
appreciated!
Q: Is this application free?
A: Yes! This application is open-source under the MIT license. You may feel free to modify, contribute and share
this application with the community!
6. Command Summary (by Tay Zi Hiang Willis)
Category | Addtional Parameters | Result |
---|---|---|
|
|
Shows recipe at given INDEX. |
|
Adds a new empty recipe with the given NAME and DESCRIPTION. |
|
|
Adds a new recipe with the given NAME and DESCRIPTION. INGREDIENT and its QUANTITY, STEP, and TAG are optional parameters and will be added according to input from user. |
|
|
Removes recipe at given INDEX. |
|
|
Searches for recipes by a keyword. |
|
|
Searches for recipes by tags. |
|
|
Searches for recipes whose ingredients are available in the inventory. |
|
|
Views the whole collection of recipes in the cookbook. |
|
|
|
Adds ingredients to a recipe at given INDEX. |
|
Removes the ingredient and the specified quantity from recipe at given INDEX. |
|
|
Adds a step at STEP_INDEX with STEP_DESCRIPTION to the recipe at given INDEX. |
|
|
Removes a step at STEP_INDEX from the recipe at given INDEX. |
|
|
Adds a tag 'TAG' to the recipe at given INDEX. |
|
|
Removes a tag 'TAG' to the recipe at given INDEX. |
|
|
|
Adds QUANTITY of INGREDIENTS into your inventory. |
|
Removes QUANTITY of INGREDIENTS from your inventory. |
|
|
Removes all ingredients from the inventory. |
|
|
Removes the ingredients and its' corresponding quantities of recipe INDEX from the inventory. |
|
|
|
Adds all ingredients required of recipe at given INDEX to the cart. |
|
Adds QUANTITY of INGREDIENTS into your cart. |
|
|
Removes QUANTITY of INGREDIENTS from your cart. |
|
|
Clears the cart of all ingredients. |
|
|
Moves all the ingredients from the cart to the inventory, clearing the cart in the process. |
|
|
Exports current cart into a PDF. |