Are you an avid chef with an overwhelming collection of delicious recipes? Or perhaps you just want a convenient way to store, access and share your recipes easily?

We understand that for brilliant and creative individuals like yourself, it is essential to properly manage your recipes, which is why RIZZipe is designed and built just for chefs like YOU to organize your recipes at the touch of a finger!

Using this Guide

  • If you want to run RIZZipe for the first time, check out our handy Quick Start guide.
  • If you want to learn how to use RIZZipe, refer to our Commands section for a detailed guide on how to run each command.
  • For experienced developers interested in our design decisions, please refer to our Developer Guide.
  • For experienced users, you may refer to the Command summary and Keyboard shortcuts summary for a summarised table of all the commands and keyboard shortcuts available.

Table of Contents


Overview

The following subsections detail the functionality of RIZZipe and explain the various terminology and colour coding we will be using in this guide.

What is RIZZipe?

RIZZipe is a command-based recipe database that operates primarily on commands and behaves like a Command Line Interface (CLI).

RIZZipe comes equipped with numerous features, but we particularly love these three:

  1. Versatile tagging and powerful search function
  2. Recipe sharing
  3. Ingredient substitution searching

Give RIZZipe a try and utilise its many features to achieve your culinary rizz today!

Common colour codes in this guide

This is used to display :bulb: tips to enhance your experience using RIZZipe!

This is used to display :information_source: additional information that you may find useful!

This is used to display :computer: keyboard shortcuts that can help make your journey using RIZZipe more smooth sailing!
This is used to display :exclamation: warnings for you to heed in order for RIZZipe to work as intended!

Glossary

  • Command terminal: A terminal is a text input and output environment. It is a program that acts as a wrapper and allows us to enter commands that the computer processes. Open your terminal by:
    • Searching and opening Command Prompt on Windows
    • Searching and opening Terminal on Mac
  • cd: Command to change directory
  • Command Line Interface (CLI): A text-based user interface (UI) used to run programs, manage computer files and interact with the computer
  • JSON: JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects

Quick Start

Let’s get you rizzed up in the fastest way possible!

  1. Ensure you have Java 11 or above installed in your computer.
  2. Download the latest rizzipe.jar here
  3. Copy the file to the folder you want to use as the home folder for RIZZipe.
  4. Open a command terminal, cd into the folder you put the jar file in, and input the java -jar rizzipe.jar command to run the application.
  5. A GUI similar to the below should appear in a few seconds. Note that our experienced chefs have already crafted some sample recipes for you!

    UI QuickStart

  6. Navigate through the main window easily using just your keyboard! Toggle between recipes simply by using the ↑ Up and ↓ Down arrow keys!
  7. Type commands within the command line interface (CLI) and press Enter to execute it. For a list of executable commands, refer to the Commands Section.
  8. Some of the previously mentioned executable commands may have keyboard shortcuts to make your life easier! Refer to each command within the Commands Section, or take a look at the Keyboard Shortcuts summary to learn more about how to use them!

Commands

RIZZipe is a command-driven application, which means its various features and functionalities can be accessed by executing various commands.

How to interpret the command format

:information_source: Notes about the command format:

  • The first word is the type of command you are running.
    i.e. for the input delete 5, we are running the delete command.

  • We use prefixes such as n/ to label our arguments for the command.

  • Words in UPPER_CASE are the parameters to be supplied by you.
    i.e. in add n/RECIPE_NAME, RECIPE_NAME is a parameter which can be used as add Grilled Salmon.

  • Parameters in square brackets [] refer to optional parameters that can be omitted. i.e. n/RECIPE_NAME [d/RECIPE_DURATION] can be used as n/Cheese Sandwich d/10 minutes or n/Cheese Sandwich.

  • Parameters with ... behind them can be used multiple times, including 0. i.e. [t/TAGS]... can be used as <nothing> (zero times), t/HALAL, t/HALAL t/BREAKFAST etc.

  • Parameters can be in any order i.e. if a command specifies n/RECIPE_NAME d/RECIPE_DURATION, then d/RECIPE_DURATION n/RECIPE_NAME is also acceptable.

  • Excess parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored.
    e.g. if the command specifies help 123, it will be interpreted as help.

:bulb: Tip:

For better readability, we have included an optional multi-line command format for commands that may require multiple inputs (add, edit). After each input, you can include a line break by simply entering a backslash \ to move on to the next line to continue writing the next part of your command input! Note that you will not have to delete the backslash that appears before continuing to type!

Attributes

What is a recipe?

Recipes are the building blocks of RIZZipe! Each recipe consists of multiple attributes, which are listed in the recipe attributes table.

Pay close attention to these attributes, for they are crucial inputs to some of our commands mentioned below!

Recipe attributes table

Field Prefix Accepted Format Compulsory? Example
Name n/ NAME
NAME can contain these characters: A-Z a-z 0-9 - \ ' " and space.
Yes Chicken Rice,
Broccoli Stir-Fry
Duration d/ DURATION UNIT
DURATION is a positive integer, decimal number, or fraction
UNIT can contain these characters: A-Z a-z and space
No 3 hours,
30.5 minutes,
2/5 Time Intervals
Portion p/ AMOUNT UNIT or AMOUNT "-" or "to" AMOUNT UNIT
AMOUNT is a positive integer
UNIT can contain these characters: A-Z a-z and space
No 1 person,
3-5 people,
4 to 6 hungry individuals
Ingredients i/ -n INGREDIENT_NAME [-a INGREDIENT_AMOUNT] [-e ESTIMATED_AMOUNT] [-cn COMMON_NAME] [-r REMARKS]...[-s SUBSTITUTION]... No Refer to the “Ingredients” section below!
Steps s/ STEP
STEP consists of 2 or more space-separated words, and can contain these characters: A-Z a-z 0-9 . , : ; ( ) - and space
No Serve well.,
Bring 3 quarts water to a boil in a 5-qt. pot.,
Season with salt; add pasta and cook, stirring occasionally.
Tags t/ TAG
TAG can contain these characters: A-Z a-z 0-9 and space
No Italian,
Comfort Food,
Gluten Free

What is an ingredient?

Ingredients are at the heart of recipes, and also comprise multiple attributes. The specification for recipe ingredients are listed in the table below:

Ingredient attributes table

Field Prefix Accepted Format Compulsory? Example
Name -n INGREDIENT_NAME
INGREDIENT_NAME can contain these characters: A-Z a-z - and space
Yes Salt,
Soy Sauce,
Barley-Wheat Bread
Amount -a AMOUNT UNIT
AMOUNT is a positive integer, decimal number, fraction, “a”, or “one”
UNIT can contain these characters: A-Z a-z and space
No a pinch of,
one pint,
3 fl oz,
4.5 grams,
2/3 cup
Estimated Amount -e ESTIMATED_AMOUNT
No restrictions on ESTIMATED_AMOUNT
No Around 3 tablespoons
Common Name -cn COMMON_NAME
COMMON_NAME can contain these characters: A-Z a-z - and space
No Eggplant,
Saiyote
Remarks -r REMARK
REMARK can contain these characters: A-Z a-z and space
No Optional,
Diced,
thinly sliced
Substitutions -s SUBSTITUTION
SUBSTITUTION can contain these characters: A-Z a-z - and space
No Seaweed Flakes,
Capsicum

Adding a recipe: add

Come up with a new innovative recipe and afraid that you’ll forget about it in the future, or just want to share it with your friends? Simply run the add command, and follow the prompts to save different information about your recipe such as ingredients and steps!

Format: add n/RECIPE_NAME [d/RECIPE_DURATION] [p/RECIPE_PORTION] [t/RECIPE_TAGS]... [i/-n INGREDIENT_NAME [-a INGREDIENT_AMOUNT] [-e ESTIMATED AMOUNT] [-cn COMMON NAME] [-r REMARKS]... [-s SUBSTITUTION]...]... [s/RECIPE_STEPS]...

Example(s) of usage:

  • add n/Honey Chicken Rice

    AddCommandUI

  • add n/Chicken Noodles d/20 minutes p/1-2 people i/-n chicken thigh -a 300 g i/-n noodles i/-n soy sauce -a 2 tablespoons -s salt
  • add n/Peanut Butter Sandwich t/breakfast s/Prepare bread and spread s/Using a knife, spread 2-3 scoops of peanut butter s/Serve and enjoy.

:information_source: Additional information:

  • A recipe can have any number of steps, tags and ingredients (including 0)!

  • It is only compulsory to include the recipe name when you first add the recipe into recipe book!

  • Although optional, we do however suggest adding in the other fields if possible for your own future reference.

  • If you have multiple inputs for tags, steps or ingredients, treat each input as a separate field (i.e. s/Step1 s/step2).

  • Similar to parameters, ingredient fields do not have to be input in order (-a can come before -n etc.).

  • However, for steps, please input the steps in the order that they are intended to be performed.

:bulb: Tip:

When adding an ingredient, it is only compulsory to include the ingredient name. However, you can also add in additional details such as amount (RECOMMENDED) and substitutions etc.!

Adding a recipe through form: addf

Want to add a delicious new recipe but don’t want to type the whole long string of inputs at one go? Use our interactive form feature to add your favorite recipe to the recipe book today!

Format: addf

:information_source: Additional information:

  • An empty pop-up form as shown in the image below will appear!

AddCommandWindow

  • Tab to move on to the next input field, and shift+tab to go to the previous field!

  • A new row automatically pops up when you reach the last row for ingredients and steps. Once you’re done just click to the next field!

  • Note that multiple tags can be added with commas separators. (e.g. Vegetarian, Halal)

  • Click on Save to add your recipe to the recipe book!

Listing all recipes: list

Ever forget how many recipes you have in your storage? Want to view ‘em all? Or simply want to pick a recipe at random? Just run the list command!

Format: list

:information_source: Additional information:

  • Lists all recipes that are in the storage, in the chronological order they were added.

  • Depending on the size of the window, the user may add multiple columns to display more recipes.

  • In order to zoom in on a particular recipe in the list, user can double-click on the corresponding recipe.

:bulb: Tip:

The list command can be used to reset the most recently searched list to the full recipe list after performing a find command!

:computer: Keyboard Shortcut:
To navigate the list, you can use the ↑ Up and ↓ Down arrow keys (as previously mentioned in the QuickStart). While the recipe you want to zoom in on is selected, simply press P to view that particular recipe’s details!

Editing a recipe: edit

Made a mistake or just omitted some important details when you first stored your recipe in the recipe book? Don’t fret, for the edit command is here for you to supplement these new details to increase the rizz on your recipes!

Format: edit INDEX [n/RECIPE_NAME] [d/RECIPE_DURATION] [p/RECIPE_PORTION] [t/RECIPE_TAGS]... [i/-n INGREDIENT_NAME [-a INGREDIENT_AMOUNT] [-e ESTIMATED AMOUNT] [-cn COMMON NAME] [-r REMARKS]... [-s SUBSTITUTION]...]... [s/RECIPE_STEPS]...

:information_source: Additional information:

  • Edits the recipe at the specified index. The index refers to the index number shown in the displayed recipe list.

  • The index must be a positive integer 1,2,3,…

  • All existing values will be updated to the new input values!

  • When editing tags, ingredients and steps, all the existing values for these fields will be removed (i.e. adding of tags, ingredients and steps is not cumulative!)

  • You can remove the optional fields (all fields except for name) by simply typing the prefix without specifying any details after it (i.e. typing i/ removes all ingredients)

:bulb: Tips:

  • Alternatively, you can use the edit popup form to edit recipes (see below).

  • Note that the tags specified in the fields above still apply for ingredients, like -n.

:computer: Keyboard shortcut:
As an alternative to typing the full command, we provide a popup form to edit a recipe! While the recipe you want to edit is being selected, simply press F to display the popup form for that particular recipe!

Finding a recipe by name: find

Have a certain recipe at the back of your mind that you want to refer to? Or want to look up all recipes associated with a specific tag or those containing a specific ingredient that you’re desperate to clear but have no idea what to pair it with?

find helps to save your time scrolling through your whole list of recipes by displaying only those that match any of your specified keywords straight away!

Format: find [PROPERTY] KEYWORD [ADDITIONAL KEYWORDS]...
Supported properties: name, tag and ingredient

i.e. find name KEYWORD [ADDITIONAL KEYWORDS]..., find tag KEYWORD [ADDITIONAL KEYWORDS]..., find ingredient KEYWORD [ADDITIONAL KEYWORDS]...

Example(s) of usage:

  • find cheese returns all recipes with the keyword cheese in their recipe name
  • find name pancakes sandwich returns all recipes with the keyword pancakes and/or sandwich in their names

FindCommandUI

  • find tag western returns all recipes with the tag western
  • find ingredient tofu returns all recipes with the ingredient tofu

:information_source: Additional information:

  • Adding a property behind find is optional, and if no property is specified, find defaults to filtering by name.

  • All keyword queries are case-insensitive. e.g. chicken will match Chicken

  • Recipes matching at least one keyword will be returned, e.g. searching sandwich fries will match recipes named cheese fries and ham sandwich

  • Recipes are listed in the chronological order that they were added.

  • The order of the keywords does not matter. e.g. ham sandwich will match a recipe named sandwich ham

  • Only complete words will be matched. e.g. chick will not match chicken

Deleting a recipe: delete

No longer like a certain recipe? Simply delete it from the database by its index!

Format: delete INDEX

Example(s) of usage:

  • list followed by delete 2 deletes the 2nd item stored in the recipe book.
  • find chicken, followed by delete 1 will delete the 1st recipe in the displayed results of the find command.

:information_source: Additional information:

  • Deletes the dish at the specified INDEX of the current list that is displayed.

  • The index must be a positive integer 1, 2, 3, …

:computer: Keyboard shortcut:
While the recipe you want to delete is selected, simply press the Delete or Backspace key and click on confirm to delete that particular recipe!

Searching for substitutions for an ingredient: sub

Short of a particular condiment or ingredient to complete your favourite recipe? Have no fear, for the sub command provides you with a hassle-free way to solve your problem by suggesting some common substitutions so that you can complete your dish with an alternative ingredient!

Format: sub INGREDIENT_NAME

Example(s) of usage:

  • sub chicken returns a list of suggested substitutions for the ingredient chicken

:information_source: Additional information:

  • sub searches across your stored recipes and a preloaded suggested substitutions list to provide you with the most accurate and extensive list of substitutions!

  • The search is case-insensitive, i.e. sub salt will return all stored substitutions for Salt and salt across recipes.

  • Only full words will be matched i.e. sub chick will not return stored substitutes for chicken

  • For inputs with multiple words, it will only match stored ingredients with the same full multi-word input (case-insensitive) i.e. sub golden syrup does not return substitutes for syrup

  • The returned list of ingredients returned will not contain any duplicates.

:bulb: Tip:

Adding a substitution together with an ingredient is recommended since it will boost the number of substitutions listed when that ingredient is queried in the future!

Asking for assistance: help

Unsure or unable to remember our list of commands and how to format your inputs? Fret not, as simply inputting help will save you from your woes!

Format: help

:information_source: Additional information:

  • help links to this user guide, which is a quick way to refresh your memory on any command that might have slipped your mind!

    HelpCommandUI

Clearing the recipe book: clear

Want to change things up and start a new recipe book afresh? Simply run the clear command to wipe the memory and start afresh!

Format: clear

:exclamation: Caution: Running clear will clear your entire recipe book and there’s no going back!

:bulb: Tip:

If you wish to save your data elsewhere first and then start afresh, consider using the Export feature first!

Exiting the program: exit

Done with cooking for the day? Running exit exits the program and closes the window!

Format: exit

:bulb: Tip:

Wondering if you have to save your data before exiting? Don’t worry, RIZZipe automatically saves your data whenever a command is executed, so any changes to your recipes will be saved immediately!


Managing the Data

Saving the data

Recipe data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Recipe data is saved as a JSON file in the following directory:

(Location where your Recipe Book JAR File `rizzipe.jar` is)
├── data
│   └── recipebook.json <== Your saved recipe JSON file
├── preferences.json
└── rizzipe.jar

For advanced users, you can change the default location which the recipebook data file is saved to. This can be done by creating a preferences.json file in the base directory where the app is stored, and specifying userPrefsFilePath in preferences.json with the desired file path.

Editing the data file

Advanced users are welcome to update data directly by editing that data file located at the address above.

:exclamation: Caution: If your changes to the data file result in an invalid format, RIZZipe will discard all data and start with an empty data file at the next run.

Importing data

Pressing F3 will open an import window from the main window (as shown in the image below). From there, select the JSON file to be imported using the selector.

ImportDataWindow

:information_source: Additional information:

  • Only files with recipes that pass our formatting checks, and files with no duplicate recipes will be imported
  • Any imported recipes will be added to your current recipe book!

:bulb: Tip:

Alternatively, you can access the import function from the File tab in the top left corner of the main window.

ImportExportFromTopLeftOfWindow

Exporting data

The keyboard input F4 will open an export window from the main window (as shown in the image below). From there, input the file name of the JSON file to be exported and select the desired location for it to be saved!

ExportDataWindow

:bulb: Tip:

Alternatively, like the import function, you can access the export function via the File tab in the top left corner of the main window.


FAQ

Q: How do I transfer my data to another computer?
A: Export the current recipe book with our Export function and send the JSON file to the other computer. On the other computer, run RIZZipe and use the Import function to import all previously saved recipe files!


Command summary

Action Format, Examples
Add add n/RECIPE_NAME [d/RECIPE_DURATION] [p/RECIPE_PORTION] [t/RECIPE_TAGS]... [i/-n INGREDIENT_NAME [-a INGREDIENT_AMOUNT] [-e ESTIMATED AMOUNT] [-cn COMMON NAME] [-r REMARKS]... [-s SUBSTITUTION]...]... [s/RECIPE_STEPS]...
e.g. add n/Chicken Noodles d/20 minutes p/1-2 people i/-n chicken thigh -a 300 g i/-n noodles i/-n soy sauce -a 2 tablespoons -s salt
List list
Edit edit INDEX [n/RECIPE_NAME] [d/RECIPE_DURATION] [p/RECIPE_PORTION] [t/RECIPE_TAGS]... [i/-n INGREDIENT_NAME [-a INGREDIENT_AMOUNT] [-e ESTIMATED AMOUNT] [-cn COMMON NAME] [-r REMARKS]... [-s SUBSTITUTION]...]... [s/RECIPE_STEPS]...
e.g. edit 2 n/Duck Rice p/1 person
Find find [PROPERTY] KEYWORD [ADDITIONAL KEYWORDS]...
Valid properties: name, tag, ingredient
e.g. find cheese rice, find name popcorn, find tag western, find ingredient tofu
Delete delete INDEX
e.g. delete 2
Sub sub INGREDIENT_NAME
e.g. sub salt
Clear clear
Help help
Exit exit

Keyboard shortcuts summary

Shortcut Functionality
↑ Up and ↓ Down arrow keys in Main Window Navigate through different recipes
\ while inputting a long command Provide line break for increased readability
P while a recipe is selected Open recipe details of selected recipe
F while a recipe is selected Open edit recipe form to edit the selected recipe
Delete/Backspace while a recipe is selected Delete the selected recipe (requires confirmation)
F3 while in Main Window Import a recipe book
F4 while in Main Window Export the current recipe book