Welcome new bakers! If you're feeling overwhelmed by the chaos of baking, fret not because [Ba]king [Br]ead is here to save the day! We're here to help you manage the overwhelming number of ingredients in your kitchen and the endless recipes you have stored, making your baking experience a lot smoother!
[Ba]king [Br]ead will help you to:
Our application's command-line interface, coupled with your fast fingers, makes baking a whole lot more seamless and relaxing!
Long gone are the days when you have to rummage through your cupboards to see what you have. Now with [Ba]king [Br]ead, you will never forget what ingredient you need to stock up on during your next trip to the supermarket. And now, you will never have to flip through endless heavy physical recipe books just to find a recipe you like.
So, what are you waiting for? Master [Ba]king [Br]ead and fast-track your baking journey now!
This user guide contains all the information you will need in order to use [Ba]king [Br]ead. For new users, this document will also guide you in using the application, starting with the more essential features.
For new users:
For experienced users:
Listed below are the definitions of the terminology used throughout the User Guide
| Term | Definition |
|---|---|
| GUI (Graphical User Interface) | The visual interface of [Ba]king [Br]ead |
| Command | A set of words that execute a certain operation |
| Parameter | Key information that a user specifies in a command |
| UUID (Universally Unique IDentifier) | A unique number that is used to identify the recipes |
| Case-insensitive | Parameters are not treated differently if they are in capitals or lower-case text. Eg. MILK is the same as milk |
Do also take note of the following highlighted information panels as we will be using this throughout the User Guide.
Note: Used to highlight essential information
Tip: Used to highlight helpful tips
Caution: Used to highlight errors to look out for
New to [Ba]king [Br]ead? Not to worry, simply follow the instructions below to get started!
Ensure you have Java 11 or above installed in your Computer.
Download the latest bakingbread.jar from here.
Copy the file to the folder you want to use as the home folder for [Ba]king [Br]ead.
Double-click on the jar and a GUI similar to the one below should appear in a few seconds. If this does not work for you, check the FAQ
Some sample data has been preloaded into the application
The GUI may be confusing if you are a first time user of our application. Here is the breakdown of the GUI for [Ba]king [Br]ead.

Input box: This is where you will be inputting your commands.
Command result box: Where the application will return a message regarding the outcome of command inputted.
Ingredients list: Contain a list view of all your ingredients with their specified quantity and unit.
Recipe list: Contains a list view of all your recipes.
Time to add your first ingredient! Take any ingredient from your kitchen, weigh the quantity of that ingredient and let's get started!

Recipe adding is a little more complicated! But don't worry, you will get the hang of it in no time! Refer to the infographic below for step-by-step instructions on adding your first recipe.
And there you have it, your first recipe added to [Ba]king [Br]ead!
If you are stuck at any point, typing help and pressing Enter will open the help window to guide you along.
Refer to the Features below for details of the other commands available!
Notes about the command format:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in add n/NAME, NAME is a parameter which can be specified, like so:
add n/Milk.
Items with … after them can be used multiple times including zero times.
e.g. [NAME]… can be used as (i.e. 0 times), milk, milk flour etc.
Parameters can be in any order.
e.g. if the command specifies n/NAME q/QUANTITY, q/QUANTITY n/NAME is also acceptable.
Parameters are case-insensitive.
e.g. A parameter specified as n/Milk is functionally identical to n/MILK or n/milk.
Extraneous parameters for commands that do not require parameters (such as help, exit , list and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
| Parameter | Description | Constraints | Valid examples | Invalid examples |
|---|---|---|---|---|
n/ | Name of the ingredient | Alphanumeric characters (a to z, A to Z, 0 to 9) | Flour, Chocolate Chip | Chocolate-Chip |
q/ | Quantity of the ingredient | Must be numeric and more than 0 | 1000, 1, 200 | -100, hundred, 0 |
u/ | Unit used to measure the ingredient | Must be one of the supported units | GRAM, KILOGRAM, PIECE | ML, L, TSP |
i/ | UUID of recipe | UUID must be at least 1 | 1, 2, 3 | 0, -1, 0.1 |
| Unit | Alias |
|---|---|
| GRAM | g, gram, GRAM |
| KILOGRAM | kg, kilogram, KILOGRAM |
| PIECE | pc, pcs, piece, pieces, PIECE, PIECES |
helpIf you are not sure how to use [Ba]king [Br]ead, this command will show a pop-up with a link to access the help page.
Format: help

addAdds an ingredient to the stock.
Format: add n/NAME q/QUANTITY u/UNIT
Restrictions:
add n/flour q/50 u/PIECE
would throw an error.Examples:
add n/Flour q/1 u/kg adds 1kg of Flour to the stock.add n/Milk q/600 u/g adds 600g of Milk to the stock.Example Used: add n/Flour q/1 u/kg Note: Sample started with 3kg of Flour in the stock.

Example Used: add n/Milk q/600 u/g Note: Sample did not have any Milk in the stock.

useDepletes a specified quantity of an ingredient from the stock.
Format: use n/NAME [q/QUANTITY] [u/UNIT]
use n/butters will not work if the ingredient list contains butter.Restrictions:
use n/flour q/50 u/PIECE
would throw an error.Examples:
use n/Milk q/600 u/g Depletes the current quantity of milk by 600g.use n/Egg Fully depletes the current quantity of egg.Example Used: use n/Milk q/600 u/g Note: Sample started with 1kg of Milk in the stock.
stockFilters the list of ingredients to only the specified ingredient(s).
Format: stock [NAME]…
stock Flour Butter will list the quantities of both ingredients.Flou will not match Flour.stock butter will display both butter and butter stick.Examples:
stock Butter will show the Butter ingredient in the list.stock Butter flour will show both the Butter and Flour ingredient in the list.stock lists all ingredients.Example used: stock butter

clearClears all ingredients from the ingredient stock.
Format: clear
Example used: clear

listLists all recipes that are currently stored in [Ba]king [Br]ead.
Format: list
Example Used: list

viewViews a specific recipe in [Ba]king [Br]ead.
Format: view UUID
UUID must be an integer greater than or equal to 1.list command.Examples:
view 1 views the recipe with UUID of 1.view 21 views the recipe with UUID of 21.Example Used: view 1

Note: Only recipes that are currently in the recipe list can be viewed.
addrecipeAdds a new recipe to the recipe book. Each line in this command should be entered one by one.
Format:
addrecipe
NAME
(INGREDIENT_NAME) (INGREDIENT_QUANTITY)(INGREDIENT_UNIT)
⋮
steps start
1. STEP 1
2. STEP 2
⋮
complete recipe
(NAME) (QUANTITY)(UNIT), such as flour 100g.(STEP_NUMBER). (STEP) such as 1. Mix Water and Flour.Note: There is no error message when inputting negative quantities for ingredients. As such, it is up to the user to ensure that a positive quantity is specified.
Example:
addrecipe
Bread
Water 100g
Flour 1kg
steps start
1. Mix Water and Flour
2. Bake at 180C
complete recipe
modifyModifies the ingredients in a recipe.
Format: modify i/UUID n/NAME q/QUANTITY u/UNIT
UUID must be an integer greater than or equal to 1.Example:
modify i/1 n/Flour q/100 u/g modifies the Flour ingredient in the recipe to 100 grams of flour.modify i/1 n/Flour q/100 u/g adds the 100 grams of the Flour ingredient to the recipe.Example Used: modify i/1 n/Flour q/100 u/g
Note: Recipe being modified has 200g of flour as part of the ingredient list
Example Used: modify i/1 n/Cream q/100 u/g Note: Recipe being modified does not have cream in its ingredient list

Note: Only recipes that are currently in the recipe list can be modified.
Note: After a recipe has been modified, it will be pushed to the bottom of the recipe list.
deleteDeletes a specific recipe from [Ba]king [Br]ead when you longer need it.
Format: delete UUID
UUID must be an integer greater than or equal to 1.UUID should match one of the UUIDs of the existing recipes.Examples:
delete 1 deletes the recipe with UUID of 1.delete 21 deletes the recipe with UUID of 21.Note: Only recipes that are currently in the recipe list can be deleted.
searchSearches for recipes that include a specific ingredient.
Format: search NAME
NAME cannot be empty.NAME is case-insensitive.NAME must be an exact match. As such, search chocolate will not display recipes
that contain chocolate chips.Examples:
search flour searches for all recipes that use floursearch butter searches for all recipes that use butterExample used: search flour Note: Multiple recipes use the ingredient flour

Example used: search blueberry Note: Only one recipe uses the ingredient blueberry

exitExits the program.
Format: exit
Inventory and Recipe data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Note: When the application loads for the first time and no command is run, no inventory or recipe data will be saved.
Inventory data are saved automatically as a JSON file [JAR file location]/data/inventory.json. Advanced users are welcome to update data directly by editing that data file.
Caution: If your changes to the data file makes its format invalid, all data will be discarded and you will start with an empty data file the next run. Hence, it is recommended to take a backup of the file before editing it.
| Error Message | What to do |
|---|---|
| Unknown command | Ensure that the command specified is one of the commands mentioned within this document |
| Invalid Command Format | Ensure that all parameters have specified and that none are left empty |
| Names should only contain alphanumeric characters and spaces, and it should not be blank | Ensure that only letters and numbers are used for names |
| Quantity has to be positive | Ensure that the quantity value specified is greater than 0 |
| There is no recipe with the recipe UUID provided in the recipe book | Check the UUID of recipe attempting to use and ensure that it is correct |
| The recipe UUID provided is invalid | Ensure that the UUID you have entered is valid (ie. it is a positive integer) |
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 [Ba]king [Br]ead home folder.
Q: The application does not run when I double-click it!
A: First, check if you have Java 11 installed in your computer. If you do and still have issues, try this: Open a command terminal, cd into the
folder you put the jar file in, and use the java -jar bakingbread.jar command to run the application.
Note: For AddRecipe, each command is to be run line by line.
| Action | Format, Examples |
|---|---|
| Add | add n/NAME q/QUANTITY u/UNIT e.g., add n/milk q/600 u/g |
| Clear | clear |
| Use | use n/NAME [q/QUANTITY] [u/UNIT]e.g., use n/milk q/200 u/g |
| Stock | stock [NAME]…e.g., stock milk egg |
| List | list |
| View | view UUIDe.g., view 1 |
| AddRecipe | addrecipe NAME(INGREDIENT_NAME) (INGREDIENT_QUANTITY)(INGREDIENT_UNIT) steps start 1. STEP 1 complete recipee.g., addrecipe Bread Water 100g Flour 1kg steps start 1. Mix Water with Flour complete recipe |
| Delete | delete UUIDe.g., delete 1 |
| Search | search NAMEe.g., search flour |
| Modify | modify i/UUID n/NAME q/QUANTITY u/UNITe.g., modify i/1 n/Flour q/100 u/g |
| Help | help |
| Exit | exit |