User Guide
Table of contents
(Contributed by all members)
- 1. Introduction
- 2. About this document
- 3. Quick start
- 4. Application layout
- 5. Features
- 6. Frequently asked questions (FAQs)
- 7. Command summary
- 8. Glossary
1. Introduction
(Contributed by all members)
Welcome to SimplyKitchen!
SimplyKitchen is a desktop application for food inventory management suited for household individuals who manage their kitchens’ food items.
SimplyKitchen is developed by 5 dedicated students who hope to assist and alleviate the problems you might encounter while managing your food inventory. With intuitive and practical features, SimplyKitchen can get your food management tasks done faster and more efficiently!
With a Command Line Interface (CLI), SimplyKitchen is best suited to those who can type fast and prefer using a keyboard. SimplyKitchen also uses a Graphical User Interface (GUI) to provide an aesthetic visualization of your food information for the ideal user experience.
SimplyKitchen hopes to empower you to work towards a Tidy Kitchen, with Tiny Wastage!
2. About this document
(Contributed by all members)
2.1. Main sections
This purpose of this User Guide is to provide you all the information you need when using our application in a clear and concise manner. Our User Guide is structured in a way to help you navigate to relevant sections easily. You may click on the hyperlinks to quickly jump to different sections of this document.
The Quick Start section guides you in setting up and launching the SimplyKitchen application on your computer.
The Application Layout section provides an overview of how the application looks like on your computer.
The Features section describes all the features of SimplyKitchen. It provides the purpose, command format, command conditions and step-by-step examples for each feature.
The FAQs section contains some Frequently Asked Questions about SimplyKitchen.
The Command Summary section acts as a quick reference point for all the features of SimplyKitchen.
Finally, the Glossary section provides explanations for the commonly used terms in this document and in the SimplyKitchen application.
2.2. Symbols
The table below provides the descriptions of the symbols used in this document:
Symbol | Description |
---|---|
- Notes about command format - Additional information that may be relevant to you |
|
- Warning: Information you should pay particular attention about | |
- Tip: Information that may be helpful to you |
3. Quick start
(Contributed by Sagar Sureka)
This section will guide you in setting up and launching SimplyKitchen on your computer.
- Ensure that you have
Java 11
or above installed on your computer. - Download the most recent
SimplyKitchen.jar
file from this link. - Copy the downloaded jar file into a folder which will be your home folder for SimplyKitchen.
-
Double click on the
SimplyKitchen.jar
file to launch the app. The SimplyKitchen main window, similar to the one shown in Figure 1, should appear in a few seconds.Figure 1: SimplyKitchen main window
Problems launching the app?
In case the application does not start after you double-click on the SimplyKitchen.jar
file, try doing the following based on your computer’s Operating System:
For Mac OS users:
- Launch the terminal and navigate to your SimplyKitchen home folder, or right-click on the folder and click on New Terminal at Folder.
- Enter
java -jar SimplyKitchen.jar
into the terminal.
For Windows users:
- Launch the command prompt and navigate to your SimplyKitchen home folder.
- Enter
java -jar SimplyKitchen.jar
into the command prompt.
SimplyKitchen should launch a few seconds after you have entered the command.
-
Notice how the application is populated with some sample data. Some food items from the sample data are expired and displayed in a separate pop-up window as shown in Figure 2.
Figure 2: The SimplyKitchen pop-up window displays all the expired food items.
- Start using the application by typing a command in the command box at the bottom. For example, typing
help
and then pressingEnter
will open the help window. - Refer to the Features section in this guide for help on how to use the app.
4. Application layout
(Contributed by Roland Yu)
This section provides an introduction to SimplyKitchen’s Graphical User Interface (GUI) layout.
Figure 3 details the main components:
Figure 3: Main components of SimplyKitchen
The table below provides the descriptions of the main components of the application:
Component | Description |
---|---|
Menu Bar | A top bar with relevant accessible tabs for you to click on |
Food List | A list of your food items |
Expiring Food List | A list of your expiring food items |
Expired Food Window | A pop-up window containing a list of your expired food items |
Result Box | A panel which displays the response messages relevant to you while using the application |
Command Box | A text field for you to type your commands |
Figure 4 provides a breakdown of the food item components displayed in the food list:
Figure 4: Components of a food item
The table below provides the descriptions of the displayed food item components:
Component | Description |
---|---|
Description | The description of a food item |
Tag | A tag to a food item. Tags are additional information that can be tagged to a food item. (e.g. spicy , for family , vegan ) |
Priority | The priority of a food item (i.e. high , medium or low ) |
Expiry Date | The expiry date of a food item |
Quantity | The quantity of a food item. The quantity consists of 2 entities - value and unit . (e.g. 1 loaf , 3.5 g ) |
5. Features
(Contributed by Jonah Tan)
This section contains information on the features and commands of SimplyKitchen.
Notes about the command format:
-
Items with the format
lower_case/
refer to prefixes. They denote the different parameters.
The table below provides the descriptions of the relevant prefixes.Prefix Description a/
Amount of a food item to change by d/
Description of a food item e/
Expiry date of a food item p/
Priority of a food item q/
Quantity of a food item t/
Tag to a food item -
Words in
UPPER_CASE
refer to information you have to provide.
e.g. Inadd d/DESCRIPTION
,DESCRIPTION
refers to the food description you are adding, such asadd d/cucumber
. -
Items in square brackets are optional.
e.gd/DESCRIPTION e/EXPIRY_DATE [p/PRIORITY]
can be used asd/bread e/30-09-2020
or asd/bread e/30-09-2020 p/low
. -
Parameters can be in any order.
e.g. If the command specifiesp/PRIORITY q/QUANTITY
,q/QUANTITY p/PRIORITY
is accepted. -
Ellipsis after a parameter indicates that multiple entries of that parameter can be given.
e.g. In[t/TAG]...
, the command can have zero or more tags, such ast/spicy t/dog
.
5.1. Basic commands
The commands in this section are the basic commands used to manipulate food items.
5.1.1. Adding a food item: add
(Contributed by Jonah Tan)
The add
command stores a food item in your food inventory, so that you can start tracking it.
You can then access the food item later on for editing, deleting etc.
Format: add d/DESCRIPTION e/EXPIRY_DATE q/QUANTITY [p/PRIORITY] [t/TAG]...
- Duplicates cannot be added to the food inventory. (Please head to the glossary for an explanation for duplicate food items.)
- The description and tag can contain a maximum of 50 and 30 characters respectively, including whitespaces.
- The expiry date must be in the format of
DD-MM-YYYY
orDD/MM/YYYY
. - The quantity consists of 2 entities -
value
andunit
. Thevalue
should come before theunit
.- The
value
is compulsory. The maximum value allowed is 100,000.00. - The
unit
is optional. If not provided, the default unit -unit
- will be given.
- The
- The priority parameter is case insensitive, and can either be
high
,medium
orlow
and is optional. If a priority is not specified, the default priority will be set toLOW
. - A food item can have any number of tags (including 0).
- If multiple of the same tags are entered, only the first tag will be added (i.e For
t/Frozen t/frozen t/FROZEN
, onlyFrozen
will be added to the food item).
- If multiple of the same tags are entered, only the first tag will be added (i.e For
Examples:
-
add d/Canned tuna e/1-1-2021 q/1.5 can p/low
adds an item having descriptionCanned tuna
, expiry date01-01-2021
, quantity1.50 can
and priorityLOW
. -
add d/Banana pie e/20-11-2020 q/2 p/medium t/$15 t/contains nuts
adds an item having descriptionBanana pie
, expiry date20-11-2020
, quantity2.00 unit
, priorityMEDIUM
, and tags$15
andcontains nuts
.
Steps:
- Type
add d/Banana pie e/20-11-2020 q/2 p/medium t/$15 t/contains nuts
in the Command Box. See Figure 5. - Press
Enter
to execute. See Figure 6.
Figure 5: Before the `add` command is executed
Figure 6: After the `add` command is executed
5.1.2. Editing a food item: edit
(Contributed by Roland Yu)
The edit
command edits the details of an existing food item in your food inventory.
If an entry is incorrect, you can easily edit the entry without deleting and re-adding the food item.
Format: edit INDEX [d/DESCRIPTION] [e/EXPIRY_DATE] [q/QUANTITY] [p/PRIORITY] [t/TAG]...
- It edits the food item at the specified
INDEX
.- The index refers to the index number shown in the displayed food list.
- The index must be a positive integer 1, 2, 3, …
- Existing values will be replaced with the values you input.
- When editing tags, the existing tags of the food item will be removed i.e adding of tags is not cumulative.
- You can remove all the tags of a food item by typing
t/
without specifying any tags after it.
- You can remove all the tags of a food item by typing
- You cannot edit a food item into a duplicate. (Please head to the glossary for an explanation for duplicate food items.)
Note about the parameters:
The constraints for the individual parameters of this command (description, expiry date, quantity, priority and tags) are the same as those for the add
command.
Examples:
-
edit 1 d/baked beans e/1-1-2020
edits the food description and expiry date of the 1st food item to bebaked beans
and01-01-2020
respectively. -
edit 2 d/canned tuna q/0.5 can t/
edits the food description of the 2nd food item to becanned tuna
, quantity to0.50 can
and clears all existing tags.
Steps:
- Type
edit 2 p/high e/25-11-2020
in the Command Box. See Figure 7. - Press
Enter
to execute. See Figure 8. Note that the priority has been changed toHIGH
and the expiry date is changed to25-11-2020
.
Figure 7: Before the `edit` command is executed
Figure 8: After the `edit` command is executed
5.1.3. Deleting a food item: delete
(Contributed by Ang Song Yi and Boh Cheng Hin)
The delete
command deletes a specified food item from your food inventory, so that you can stop tracking it.
Format: delete INDEX
- It deletes the food item at the specified
INDEX
.- The index refers to the index number shown in the displayed food list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
list
followed bydelete 2
deletes the 2nd food item in your food inventory. -
find d/tuna
followed bydelete 1
deletes the 1st food item from the result of thefind
command.
Steps:
- Type
delete 2
in the Command Box. See Figure 9. - Press
Enter
to execute. See Figure 10. Note that the banana pie is deleted.
Figure 9: Before the `delete` command is executed
Figure 10: After the `delete` command is executed
5.1.4. Changing the quantity of a food item: changeqty
(Contributed by Ang Song Yi)
The changeqty
command changes the quantity of an existing food item in your food inventory without you having to calculate it yourself.
Use this command if you have bought new food items or used/discarded some existing food items.
Format: changeqty INDEX a/AMOUNT
- It changes the quantity of the food item at the specified
INDEX
.- The index refers to the index number shown in the displayed food list.
- The index must be a positive integer 1, 2, 3, …
- The amount is the quantity of a food item you want to change by.
- The amount is a non-zero signed number with a maximum of 2 decimal places. It should be more than -100,000.00 and less than +100,000.00, but not 0.
- Indicate a positive or negative sign before the value to show increment or decrement respectively.
- Do not specify the unit of the food item. The existing unit will be used instead.
Constraint on the size of amount:
Choose an amount such that the final quantity of the food item is not less than or equal to 0, or more than 100,000.00.
For example, you have already added 50,000.00 grams of flour in your food inventory with the add
command.
You can use the changeqty
command to add 0.01 to 50,000.00 grams of flour or subtract 0.01 to 49,999.99 grams of flour.
If you have used up all the flour, use the delete
command instead.
Examples:
-
list
followed bychangeqty 1 a/+1
increases the quantity of the 1st food item in your food inventory by 1. -
find d/tuna
followed bychangeqty 2 a/-2.50
decreases the quantity of the 2nd food item from the result of thefind
command by 2.50.
Steps:
- Type
changeqty 3 a/-0.5
in the Command Box. See Figure 11. - Press
Enter
to execute. See Figure 12. Note that the quantity of the chocolate cake is decreased by0.50 lb
.
Figure 11: Before the `changeqty` command is executed
Figure 12: After the `changeqty` command is executed
5.2. Sorting commands
(Contributed by Roland Yu)
The commands in this section can be used to sort your food list. The variety of sorting commands below allows you to be flexible with the ordering of your food list, for a better user experience.
Note that sorting is permanent. Thus, the sorting order of your food list will remain after restarting the application.
Before the list of food items is sorted for the first time, it will be ordered by description
by default.
Refer to the Sorting food items by description section for a detailed explanation of sorting by description.
5.2.1. Sorting food items by description: sortdesc
(Contributed by Roland Yu)
The sortdesc
command sorts the list of food items by description in an intuitive alphabetical order.
Format: sortdesc
- Food items of the same description will be sorted by expiry date from oldest to newest.
- Food items of the same description and same expiry date will be sorted by priority from high to low.
Steps:
- Type
sortdesc
in the Command Box. See Figure 13. - Press
Enter
to execute. See Figure 14.
Figure 13: Before the `sortdesc` command is executed
Figure 14: After the `sortdesc` command is executed
5.2.2. Sorting food items by expiry date: sortexpiry
(Contributed by Roland Yu)
The sortexpiry
command sorts the list of food items by expiry date from oldest to newest. With this, you can easily tell which food items are expiring first.
Format: sortexpiry
- Food items of the same expiry date will be sorted by priority from high to low.
- Food items of the same expiry date and same priority will be sorted by description.
Steps:
- Type
sortexpiry
in the Command Box. See Figure 15. - Press
Enter
to execute. See Figure 16.
Figure 15: Before the `sortexpiry` command is executed
Figure 16: After the `sortexpiry` command is executed
5.2.3. Sorting food items by priority: sortpriority
(Contributed by Roland Yu)
The sortpriority
command sorts the list of food items by priority from high to low. With this, you can easily tell which food items have higher priorities.
This feature allows you to order your food items according to your preference! Simply ensure that food items you want ordered higher in the food list are of higher priorities. You may do so when adding food items using the add command, or editing the
priority
of food items using the edit command.
Format: sortpriority
- Food items of the same priority will be sorted by expiry date from oldest to newest.
- Food items of the same priority and same expiry date will be sorted by description.
Steps:
- Type
sortpriority
in the Command Box. See Figure 17. - Press
Enter
to execute. See Figure 18.
Figure 17: Before the `sortpriority` command is executed
Figure 18: After the `sortpriority` command is executed
5.3. Viewing commands
The commands in this section are used when navigating food item information on the application.
5.3.1. Listing all food items: list
(Contributed by all members)
The list
command shows the complete list of food items in your food inventory.
This command is suitable if you want to get a glimpse of all your food items currently in your kitchen.
Format: list
Steps:
- Type
list
in the Command Box. See Figure 19. - Press
Enter
to execute. See Figure 20.
Figure 19: Before the `list` command is executed
Figure 20: After the `list` command is executed
5.3.2. Finding food items: find
(Contributed by Jonah Tan and Boh Cheng Hin)
The find
command searches for food items in your food inventory that match the search query and displays the result on your food list. You can easily find a specific food item, or a group of food items.
Format: find [d/DESCRIPTION [MORE_DESCRIPTIONS]...] [e/EXPIRY DATE] [p/PRIORITY] [t/TAG]...
- The search is case-insensitive (e.g
fish
will matchFish
). - Only full words in description will be matched (e.g.
fis
will not matchfish
). - Food items with description matching at least one keyword (i.e
OR
search) will be returned (e.g.fish
will returnFish Cake
,Tuna Fish
). - Only full tags will be matched e.g.
nuts
will not matchcontains nuts
. - Food items with tags matching at least one of the search tags (i.e
OR
search) will be returned (e.g.frozen
will return all food items with tagsfrozen
regardless of their other tags).
Note about the parameters:
The constraints for the individual parameters of this command (each description in the descriptions parameter, expiry date, quantity, priority and tags) are the same as those for the add
command.
Examples:
-
find d/apple tuna
can returnApple Pie
andTuna Can
. -
find e/30-12-2020
returns all food items with expiry date on30-12-2020
. -
find d/apple p/high
can returnApple Pie
andApple Jam
if both items have aHIGH
priority.
-
find t/cat t/dog
returns all food items with the tagcat
ordog
. -
find d/biscuits p/medium e/30-12-2020 t/cat t/dog
returns food items withbiscuits
in their descriptions,MEDIUM
priorities, expiry dates of30-12-2020
and have eithercat
ordog
as tags.
Steps:
- Type
find e/1-11-2021
in the Command Box. See Figure 21. - Press
Enter
to execute. See Figure 22.
Figure 21: Before the `find` command is executed
Figure 22: After the `find` command is executed
5.3.3. Viewing expired food items: expired
(Contributed by Ang Song Yi and Jonah Tan)
When you launch the application, it checks for any expired food items present in your food inventory. This lets you easily see what food items have expired.
If there are any expired food items, a pop-up window similar to the one shown in Figure 24 will appear with the list of expired food item(s).
If you want to see the pop-up window while using the application, you can use the expired
command.
Format: expired
Steps:
- Type
expired
in the Command Box. See Figure 23. - Press
Enter
to execute. See Figure 24.
Figure 23: Before the `expired` command is executed
Figure 24: After the `expired` command is executed
Updating your food inventory:
If you have discarded the expired food item, please remember to delete the associated food item from the application using the delete
command.
5.4. Miscellaneous commands
These are additional commands you can use to enhance your experience with SimplyKitchen.
5.4.1. Undoing previous command: undo
(Contributed by Boh Cheng Hin)
The undo
command restores your food inventory to a state before an undoable command was executed. This lets you easily correct mistakes made on your food inventory.
Undoable commands are commands that modify your food inventory’s content (add
, edit
, delete
, changeqty
and clear
) and commands that sort food items (sortdesc
, sortexpiry
, sortpriority
).
Format: undo
Note that the undo/redo history will be cleared when you exit the application!
Examples:
-
delete 1
followed byundo
will reverse thedelete
command. -
delete 1
followed byclear
thenundo
will reverse theclear
command.
Steps:
- Type
undo
in the Command Box. See Figure 25. - Press
Enter
to execute. See Figure 26.
Figure 25: Before the `undo` command is executed
Figure 26: After the `undo` command is executed
5.4.2. Redoing previously undone command: redo
(Contributed by Boh Cheng Hin)
The redo
command restores your food inventory to a state before an undo
command was executed. This lets you easily redo commands that were incorrectly undone.
Format: redo
Note that the undo/redo history will be cleared when you exit the application!
Examples:
-
add d/Donut p/medium e/21-2-2021
followed byundo
thenredo
will reverse the state to when the food item was added. -
clear
followed byundo
thenredo
will redo theclear
command.
Steps:
- Type
redo
in the Command Box. See Figure 27. - Press
Enter
to execute. See Figure 28. Note that the apple pie has been re-deleted.
Figure 27: Before the `redo` command is executed
Figure 28: After the `redo` command is executed
5.4.3. Clearing all entries: clear
(Contributed by Ang Song Yi)
The clear
command clears all entries from your food inventory. This lets you easily clear the sample data, or start on a clean food inventory.
Format: clear
Steps:
- Type
clear
in the Command Box. See Figure 29. - Press
Enter
to execute. See Figure 30.
Figure 29: Before the `clear` command is executed
Figure 30: After the `clear` command is executed
Note that the data saved in your hard disk will be cleared when you use this command!
5.4.4. Viewing help: help
(Contributed by Ang Song Yi and Boh Cheng Hin)
The help
command shows a help message explaining how to access the user guide.
After entering this command, you should see a pop-up window similar to the one shown in Figure 32.
Format: help
Steps:
- Type
help
in the Command Box. See Figure 31. - Press
Enter
to execute. See Figure 32.
Figure 31: Before the `help` command is executed
Figure 32: After the `help` command is executed
5.4.5. Exiting the program: exit
(Contributed by all members)
The exit
command closes the application. This lets you easily exit the application from the CLI.
Format: exit
Steps:
- Type
exit
in the Command Box. See Figure 33. - Press
Enter
to execute.
Figure 33: Before the `exit` command is executed
5.5. Saving the data
(Contributed by all members)
Your food inventory data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
6. Frequently asked questions (FAQs)
(Contributed by all members)
Q: How do I transfer my data to another computer?
A: Install the application in the other computer and overwrite the empty data file it creates with the data file in your previous SimplyKitchen home folder.
Q: What are the design and implementation considerations behind SimplyKitchen’s code?
A: You may find this information at our Developer Guide.
Q: How do I report a bug?
A: You may do so by creating a new issue in our GitHub Repository.
Q: What does SimplyKitchen consider as a duplicate food item?
A: In SimplyKitchen, two food items are duplicates if they have the same description
, expiry date
and tags
.
- All the
tags
must be the same. - The capitalisation of the characters in the
description
ortag
is ignored while checking for duplicates. - The
priority
andquantity
of food items are not considered while checking for duplicates.
Figure 34 shows what the application will look like if you try to add a duplicate food item.
In this case, the description
, expiry date
and tag
of the food item to be added is the same as the food item already inside the food inventory.
Therefore, the food item to be added is considered a duplicate.
Figure 34: The result box displays an error message when adding a duplicate food item.
7. Command summary
(Contributed by all members)
Action | Format, Examples |
---|---|
Add |
add d/DESCRIPTION e/EXPIRY_DATE q/QUANTITY [p/PRIORITY] [t/TAG]... e.g. add d/cereal e/31-10-2020 q/2 p/medium t/corn flakes
|
Edit |
edit INDEX [d/DESCRIPTION] [e/EXPIRY_DATE] [q/QUANTITY] [p/PRIORITY] [t/TAG]... e.g. edit 1 d/baked beans e/1-1-2020 q/1.5 can
|
Delete |
delete INDEX e.g. delete 3
|
Change quantity |
changeqty INDEX a/AMOUNT e.g. changeqty 1 a/+1.50
|
Sort by description | sortdesc |
Sort by expiry date | sortexpiry |
Sort by priority | sortpriority |
List | list |
Find |
find [d/DESCRIPTION [MORE_DESCRIPTIONS]...] [e/EXPIRY DATE] [p/PRIORITY] [t/TAG]... e.g. find d/biscuits e/30-12-2020 p/medium t/cat t/dog
|
View expired food items | expired |
Undo | undo |
Redo | redo |
Clear | clear |
Help | help |
Exit | exit |
8. Glossary
(Contributed by all members)
Term | Definition/Description |
---|---|
Case insensitive | Treating or interpreting uppercase and lowercase letters as being the same. |
CLI | Command Line Interface. It is a form of user and computer interaction where the user inputs commands in the form of text. Users will utilise a CLI to input commands into SimplyKitchen. |
Command prompt | A CLI system for Windows which allows users to control their Operating System by entering commands. |
Duplicate food item | A food item is considered a duplicate if its description, expiry date and tags are all the same as another food item in the food inventory. |
Expiring food item | A food item is “expiring” if its expiry date is from today, to 7 days after today. For instance, if today is 7-11-2020, food items that expire from 7-11-2020 to 14-11-2020 are deemed as “expiring”. |
Food inventory | A complete list of food items stored in Simply Kitchen. |
GUI | Graphical User Interface. It is a form of user and computer interaction that allows the user to interact via graphical icons such as buttons, scroll bars and windows. SimplyKitchen has a GUI for the user to interact with. |
Mainstream OS | Windows, Linux, Unix, OS-X. |
Terminal | A CLI system for Mac OS which allows users to control their Operating System by entering commands. |