By: Team SE-EDU
Since: Jun 2016
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Viewing help :
help
- 3.2. System Management
- 3.3. Grocery List Management
- 3.3.1. Adding a food item:
glist add
- 3.3.2. Listing all grocery items:
glist list
- 3.3.3. Deleting a grocery item:
glist delete
- 3.3.4. Use a grocery item:
glist use
- 3.3.5. Edit a grocery item:
glist edit
- 3.3.6. Sort the grocery list:
glist sort
- 3.3.7. Finding items by keywords:
glist find
- 3.3.8. Reminders on expiry dates:
glist rem
- 3.3.9. Undo Grocery List:
glist undo
- 3.3.10. Redo Grocery List:
glist redo
- 3.3.1. Adding a food item:
- 3.4. Waste List Management
- 3.5. Templates List Management
- 3.6. Template Management
- 3.7. Shopping List Management
- 3.7.1. Add new item to shopping list:
slist add
- 3.7.2. Add items in template into shopping list:
slist addTemp
- 3.7.3. Edit item in shopping list:
slist edit
- 3.7.4. Delete item in shopping list:
slist delete
- 3.7.5. Show shopping list:
slist list
- 3.7.6. Mark item as 'bought’:
slist bought
- 3.7.7. Add bought items:
slist mergebought
- 3.7.8. Mark shopping item as Urgent:
slist urgent
- 3.7.9. Undo Shopping List:
slist undo
- 3.7.10. Redo Shopping List:
slist redo
- 3.7.1. Add new item to shopping list:
- 3.8. Exiting the program :
exit
- 3.9. Saving the data
- 3.1. Viewing help :
- 4. Features v2.0
- 5. FAQ
- 6. Command Summary
1. Introduction
In order to encourage and facilitate these consumer behaviours that can reduce food waste,
we have designed iFridge, an easy-to-use application that allows users to keep track and manage
their food inventory in the Grocery List feature, generate shopping lists in Shopping List, and
track their food waste and monthly performance in the Waste List feature. We also allow you to
create Template Lists: If you have a list of staple items you wish to maintain in your fridge,
you can store it as a template list so that you can generate a shopping list based on what is
currently missing from your pantry.
Interested?
Jump to the Section 2, “Quick Start” to get started. Enjoy!
2. Quick Start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
iFridge.jar
here. -
Copy the file to the folder you want to use as the home folder for your iFridge application.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
glist list
: lists all food items in your grocery list -
glist add n/Milk e/23/10/2019 a/1000ml
: adds the food itemMilk
to the iFridge application. -
slist delete 1
deletes the first item shown in the shopping list -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
3. Features
Item types
-
There are two types of items in this application: grocery item (which is a concrete item that you own) and food item (which is an item you think you would like to own in the future).
-
A grocery item is like a purchased/owned item. Thus, it must have a name, an expiry date, and amount. A grocery item can have one or more tags depending on preferences.
-
A food item must have a name and amount. A food item cannot have any expiry date and tag. Food item is usually used to arrange for shopping or template in this application.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inglist add n/ITEM_NAME e/EXPIRY_DATE a/AMOUNT
,ITEM_NAME
,EXPIRY_DATE
, andAMOUNT
are parameters which can be used asglist add n/apple e/23/10/2019 a/3units
. -
Items in square brackets are optional e.g
glist add n/NAME e/EXPIRY_DATE a/AMOUNT [t/TAG]
can be used asn/apple e/23/10/2019 a/3units t/fruit
or asn/apple e/23/10/2019 a/3units
. -
Items with … after them can be used multiple times including zero times e.g.
[t/TAG]…
can be used as ` ` (i.e. 0 times),t/fruit
,t/fruit t/healthy
etc. -
Parameters can be in any order e.g. if the command specifies
n/ITEM_NAME e/EXPIRY_DATE
,e/EXPIRY_DATE n/ITEM_NAME
is also acceptable. -
If multiple arguments of the same type are provided, the last argument for that field will be taken as the input. Eg:
glist add n/FirstName n/Apple a/5units e/28/11/2019
will create a GroceryItem with the name 'Apple'.
About the Name Parameter
-
Name is considered the same if they match exactly while ignoring case sensitivity. For example,
Chicken
is the same asChicken
andchicKEN
.
About the Tag Parameter
-
Tag is considered the same if they match exactly considering case sensitivity. For example,
Chicken
is the same asChicken
but notchiCKEN
,
About the Amount Parameter
-
The iFridge app allows for some flexibility with the units inputted with the amount. The following units are accepted this application: ml, L, oz, lbs, kg, g, units.
-
Whitespace between magnitude and unit is allowed.
-
Several commands involve computation of amounts. Units are classified under three unit types:
-
Volume: ml, L
-
Weight: g, kg, oz, lbs
-
Quantity: units
-
-
Conversion of units can only be applied on the same classification. The conversion implemented in this app is shown in the table below.
-
Cross conversion between units of the same categories is supported.
Amount in the unit specified | Amount in standard form (kg, L, units) |
---|---|
1ml |
0.001L |
1g |
0.001kg |
1oz |
0.00283495kg |
1lbs |
0.453592kg |
-
The amount displayed for each item is rounded off to 4 decimal points to provide a reasonable level of precision.
-
A certain minimum value is imposed on the
Amount
class (0.1ml for Volume, 0.1kg for Weight, and 0.1units for Quantity) to ensure consistency. -
When adding or editing items, the system will only allow items with similar names (checking is non-case-sensitive) to have similar unit types. However, the adding of items with conflicting unit types will not be allowed.
3.1. Viewing help : help
Format: help
3.2. System Management
3.2.1. Loading the file
Upon launching the app, existing lists will be automatically loaded into their respective lists.
3.2.2. Saving the file
Upon exiting the app, updated lists will be automatically saved.
3.2.3. Reminder settings: glist remDefault
Change and saves default number of days (n) which grocery item is expiring in,
to colour code grocery items based on expiry dates.
-
red: has expired
-
orange: is expiring within n days
-
green: not expiring within n days
Format: glist remDefault r/NUMBER_OF_DAYS
Examples:
-
glist remDefault r/3
Default number of days is set to 3 days if not yet specified.
This command cannot be undone/redone.
3.2.4. Waste list clearing
Clearing of waste list is done automatically at the start of every month.
3.3. Grocery List Management
3.3.1. Adding a food item: glist add
Adds a grocery item to the grocery list.
Format: glist add n/ITEM_NAME e/EXPIRY_DATE a/AMOUNT [t/TAG]
Examples:
-
glist add n/Fuji apples e/30/10/2019 t/healthy a/10units
Add Fuji apples of quantity 10 units, tagged as "healthy" and expiring on 30 October 2019. -
glist add n/salad a/3units e/25/09/2019
Add salad of quantity 3 units, untagged and expiring on 25 September 2019. -
glist add n/tea a/200 ml e/18/10/2019 t/fresh t/drink
Add tea of quantity 200 ml, tagged as "fresh" and "drink" and expiring on 18 October 2019.
3.3.2. Listing all grocery items: glist list
Shows a list of grocery items in the grocery list.
Format: glist list
3.3.3. Deleting a grocery item: glist delete
Deletes the specified grocery item from the grocery list when it is done being used.
If the grocery item is not completely used up when deleted (i.e. amount
> 0), the item will be moved to the waste list.
Format: glist delete INDEX
3.3.4. Use a grocery item: glist use
Reduces the amount left of a grocery item by the specified amount.
Format: glist use INDEX a/AMOUNT
Examples:
-
glist use 2 a/300g
Reduces the amount of 2nd item by 300 grams. -
glist use 3 a/5 L
Reduces the amount of 3rd item by 5 liters.
3.3.5. Edit a grocery item: glist edit
Edits an existing item in the grocery list.
Format: glist edit INDEX [n/ITEM_NAME] [e/EXPIRY_DATE] [t/TAG]
Examples:
-
glist edit 1 n/Fuji apple t/healthy
Edits the name and tag of the 1st item to beFuji apple
andhealthy
respectively. -
glist edit 2 n/Olive oil t/
Edits the name of the 2nd item toOlive oil
and clears all existing tags.
3.3.6. Sort the grocery list: glist sort
Sorts the grocery list based on the type of sorting.
Format: glist sort by/TYPE
Sorting is done on the original grocery list. Hence, for example, when sort
is done after find
, both the resultant find
list and the original list will be sorted.
The type of sorting supported is as follows:
Examples:
-
glist sort by/alphabetical
-
glist sort by/expiry
3.3.7. Finding items by keywords: glist find
Finds items whose name or tag contain any of the given keywords.
Format: glist find KEYWORD [MORE_KEYWORDS]
Examples:
-
glist find apple
ReturnsFuji apple
andApple loaf cake
and other items tagged asapple
-
glist find milo doughnut roasted
Returns any grocery item which contains any of the wordmilo
,doughnut
, orroasted
as either name or tag or both
3.3.8. Reminders on expiry dates: glist rem
Display grocery list with all grocery items expiring within n days.
Format: glist rem [r/NUMBER_OF_DAYS]
Display grocery list with all grocery items expiring within default number of days.
Format: glist rem
Examples:
-
glist rem r/3
-
glist rem
Default number of days is set to 3 days if not specified yet.
3.3.9. Undo Grocery List: glist undo
Undo the grocery list and the corresponding waste list (if applicable).
Format: glist undo
3.3.10. Redo Grocery List: glist redo
Redo the grocery list and the corresponding waste list (if applicable).
Format: glist redo
3.4. Waste List Management
3.4.1. Moving an item into waste list
When you delete an item from your grocery list using delete
, the item will automatically be
moved into the waste list if it has not been fully used (the amount of food remaining > 0).
3.4.2. Viewing the waste list: wlist list
Shows a list of the food items which have been wasted
Format: wlist list [m/MONTH_OF_YEAR]
Examples:
-
wlist list
This will list out the current month’s waste list. -
wlist list m/sep 2019
This will list out the waste list for the month of September 2019, if such a record exists in our waste archive (i.e. you have opened our application in the month of September 2019).
3.4.3. Displaying food wastage statistics: wlist report
Shows a charted report detailing your food wastage statistics across a time frame.
Format: wlist report [sm/START_MONTH] [em/END_MONTH]
Examples:
Suppose we have a waste archive with data from Oct 2018 to Oct 2019 (current month).
-
wlist report sm/Mar 2019
Generates a waste report from Mar 2019 to the current month of Oct 2019. -
wlist report sm/Mar 2019 em/Sep 2019
Generates a waste report from Mar 2019 to Sep 2019 -
wlist report sm/Mar 2018
Generates a waste report from Oct 2018 to Mar 2019 (one year from Mar 2018) -
wlist report sm/5 months ago
Generates a waste report from May 2019 to Oct 2019 (current month)
Using the waste report
-
After a successful waste report command, there will be 3 charts displayed in different tabs, one for each of the following:
-
Weight of food wasted (in kg) across the time frame
-
Volume of food wasted (in litres) across the time frame
-
Quantity of food wasted (in units) across the time frame
-
Our charts are interactive, you can get more details about your food wastage by interacting with our charts.
-
Zooming on the chart: If you want to zoom in on a specific region of the graph, you can use your mouse to click and drag on the preferred window.
-
To retrieve more specific details on the food wastage for a particular month, you can choose to:
-
click on the particular point in the chart, which will bring up the grid guidelines, or
-
click on the month name in the horizontal axis, which will zoom in on the exact wastage details for that particular month.
-
-
Returning to the original window: You can easily return to the original window by clicking on the title of the chart.
Below is an example of a waste report with the chart on food wastage in kg:
By clicking on the data point which lies on "March 2019", we can see that our food wastage for Mar 2019 is around 0.45kg.
3.4.4. Obtain feedback based on current food wastage: wlist feedback
Format: wlist feedback
Our prediction algorithm:
We first interpolate your current month’s waste statistics to arrive at an estimate. Following which,
we take a weighted average of your waste statistics across the past couple of months to provide you with
a more reliable prediction.
As with any other application, our prediction algorithm will be more accurate with more frequent usage.
3.5. Templates List Management
3.5.1. Add new template: tlist add
Adding new templates into your template list can help make shopping for groceries easier. For example, you can add an ingredients list for a favourite recipe, or add a template for items you buy on a regular basis. For easy viewing, templates in the template list are sorted automatically by alphabetical order.
Add a new template into template list.
Format: tlist add n/TEMPLATENAME
Examples:
-
tlist add n/Weekly Necessities
-
tlist add n/Birthday Party Prep
-
tlist add n/Beef Goulash
3.5.2. Edit template name: tlist edit
You can also edit the names of existing templates. In the app, you can use the index number of the template to indicate which template you want to edit.
Edit the name of a specified template in template list.
Format: tlist edit INDEX n/TEMPLATENAME
Examples:
-
tlist edit 1 n/Daily Necessities
Edits the name of the 1st template in the template list toDaily Necessities
3.5.3. Deleting a template: tlist delete
If you no longer need a existing template, delete it to keep your template list neat and organised. You can use the index of a template to indicate the template you want to delete.
Deletes a specified template from the template list.
Format: tlist delete INDEX
Examples:
-
tlist delete 1
Deletes the 1st template in the template list
3.5.4. Clear template list: tlist clear
If you find it annoying to have to delete templates one by one, you can clear the template list completely using the clear command.
Clears all template entries from the template list.
Format: tlist clear
3.5.5. Show list of all templates: tlist list
If you need to view the templates in your template list, use the list command to open the template list view.
Shows all entries in the template list
Format: tlist list
3.6. Template Management
3.6.1. Add new template item: tlist template add
You can add a new item to an existing template.
Adds an item into a specified template.
Format: tlist template add TEMPLATEINDEX n/NAME a/AMOUNT
Examples:
-
tlist template add 1 n/Milk a/1L
-
tlist template add 2 n/Eggs a/12units
3.6.2. Edit item name: tlist template edit
You can also edit the name and the amount of existing items.
Edits a specified item in the specified template TEMPLATENAME
.
Format: tlist template edit TEMPLATEINDEX i/ITEMINDEX [n/NAME] [a/AMOUNT]
Examples:
-
tlist template edit 1 i/1 n/Low-Fat Milk
Edits the name of the first food item in the first template toLow-Fat Milk
-
tlist template edit 1 i/1 a/2L
Edits the amount of the first food item in the first template to 2 litres.
3.6.3. Delete food item: tlist template delete
You can also delete items in a specific template.
Deletes the specified item from the specified template.
Format: tlist template delete TEMPLATEINDEX i/ITEMINDEX
Examples:
-
tlist template delete 1 i/1
Deletes the first food item in the first template.
3.6.4. Shows template: tlist template list
You can also view all the items in a specific template currently.
Shows all entries in the specified template.
Format: tlist template list TEMPLATEINDEX
Examples:
-
tlist template list 1
Shows all entries in the first template
3.6.5. Undo Template List: tlist undo
Undo the template list and the corresponding template item list (if applicable).
Format: tlist undo
Undoing a template list will only display template list. Undoing a template item list will display which template is undone.
3.6.6. Redo Template List: tlist redo
Redo the template list and the corresponding template item list (if applicable).
Format: tlist redo
Redoing a template list will only display template list. Redoing a template item list will display which template is redone.
3.7. Shopping List Management
3.7.1. Add new item to shopping list: slist add
Adds a new item to the shopping list.
Format: slist add n/FOOD_ITEM a/AMOUNT
Examples:
-
slist add n/apple a/2units
-
slist add n/milk a/1L
-
slist add n/banana a/3units
3.7.2. Add items in template into shopping list: slist addTemp
If you want to make sure you have all the items in a template, You can automatically generate a shopping list using the template without having to check your grocerylist .
Adds all template items that are not currently found in the grocery list into the shopping list.
Format: slist addTemp INDEX
Examples:
-
slist addTemp 1
3.7.3. Edit item in shopping list: slist edit
Edits the name of a specified item in a shopping list.
Format: slist edit INDEX [n/FOODNAME] [a/AMOUNT]
Examples:
-
slist edit 3 n/pomegranate
Edits the name of the third food item in the shopping list topomegranate
-
slist edit 2 a/2kg
Edits the amount of the second food item in the shopping list to 2 litres.
3.7.4. Delete item in shopping list: slist delete
Delete specified item from shopping list.
Format: slist delete INDEX
Examples:
-
slist delete 1
Deletes the first food item in the shopping list.
3.7.5. Show shopping list: slist list
Lists out all items in the shopping list with bought items first
Format: slist list
Examples:
-
slist list
Shows all entries in the shopping list.
3.7.6. Mark item as 'bought’: slist bought
Marks the specified item as bought and assigns the expiry date and amount to that item
Format: slist bought INDEX e/EXPIRYDATE a/AMOUNT
Examples:
-
slist bought 1 e/03/12/2019 a/3units
Marks the item at index 1 as bought and sets its expiry date as 3rd December, 2019 and amount as 3 units. -
slist bought 2 e/03/11/2019 a/1kg
Marks the item at index 2 as bought and sets its expiry date as 3rd November, 2019 and amount as 1 kilograms.
3.7.7. Add bought items: slist mergebought
This command represents a user moving all the bought items into the fridge.
It adds all items marked as ‘bought’ to the grocery list.
Format: slist mergebought
Important Note: This command cannot be undone/redone.
3.7.8. Mark shopping item as Urgent: slist urgent
Marks the specified item in the shopping list as urgent! When shopping list is displayed, urgent items are shown at the top with an indication that the item is 'urgent!' Items in the shopping list are sorted by urgent status first, alphabetical order next.
Format: slist urgent 1
Examples:
-
slist urgent 1
Marks the shopping item atINDEX
1 as urgent. That item is tagged as 'urgent' and moves to the top of the shopping list.
3.7.9. Undo Shopping List: slist undo
Undo the shopping list.
Format: slist undo
'slist mergebought' command cannot be undone.
3.7.10. Redo Shopping List: slist redo
Redo the shopping list.
Format: slist redo
'slist mergebought' command cannot be redone.
3.8. Exiting the program : exit
Exits the program.
Format: exit
3.9. Saving the data
iFridge data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
4. Features v2.0
4.1. Waste List
4.1.1. View most commonly wasted food items
Generates a word cloud based on user’s most commonly wasted food.
4.1.2. Moving all expired food items from grocery list to waste list
By default, every time the application is launched, iFridge helps you check which items are expired and gives you an option to move them to your waste list.
5. FAQ
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 Address Book folder.
6. Command Summary
Command | Description |
---|---|
|
Adds a grocery item to the grocery list |
|
Shows a list of grocery items in the grocery list |
|
Display list with all food expiring within n days |
|
Filters and displays all items expiring within the default number of days set by the user |
|
Deletes the specified grocery item from the grocery list when it is done being used. If the amount of the food item left > 0, the item will be moved to the waste list. |
|
Reduces the amount left of a grocery item by the specified amount |
|
Edits an existing item in the grocery list |
|
Sorts the grocery list based on the type of sorting |
|
Finds items whose name or tag contain any of the given keywords. |
|
Undoes the grocery list command, if possible |
|
Redoes the grocery list command, if possible |
|
Shows a list of the food items which have been wasted in the specified month |
|
Shows a charted report detailing your food wastage statistics across a time frame |
|
Obtain feedback based on current food wastage |
|
Adds a new template into template list |
|
Updates name of specified template in template list. |
|
Deletes a specified template from the template list |
|
Clears all template entries from the template list |
|
Shows all entries in the template list |
|
Adds an item into a specified template |
|
Edits a specified item in the specified template TEMPLATENAME |
|
Deletes the specified item from the specified template |
|
Shows all entries in the specified template |
|
Undoes the template list command, if possible |
|
Redoes the template list command, if possible |
|
Adds a new item to the shopping list |
|
Adds all template items that are not currently found in the grocery list into the shopping list |
|
Edits the name of a specified item in a shopping list |
|
Delete specified item from shopping list |
|
Marks the specified shopping item as 'urgent!' |
|
Lists out all items in the shopping list with bought items first |
|
Marks an item as bought and assigns a bought status to the ShoppingItem and expiry date and amount to corresponding BoughtItem |
|
Adds all items marked as ‘bought’ to the grocery list |
|
Generates a shopping list from all missing grocery items in the template |
|
Undoes the shopping list command, if possible |
|
Redoes the shopping list command, if possible |
|
Exits the program |
|
Displays help |