By: Team SE-EDU Since: Jun 2016 Licence: MIT

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

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest iFridge.jar here.

  3. Copy the file to the folder you want to use as the home folder for your iFridge application.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. 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 item Milk to the iFridge application.

    • slist delete 1 deletes the first item shown in the shopping list

    • exit : exits the app

  7. 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. in glist add n/ITEM_NAME e/EXPIRY_DATE a/AMOUNT, ITEM_NAME, EXPIRY_DATE, and AMOUNT are parameters which can be used as glist 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 as n/apple e/23/10/2019 a/3units t/fruit or as n/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 as Chicken and chicKEN.

About the Tag Parameter

  • Tag is considered the same if they match exactly considering case sensitivity. For example, Chicken is the same as Chicken but not chiCKEN,

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.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]

  • e/EXPIRY_DATE must follow the format dd/MM/yyyy.

  • a/AMOUNT must have a magnitude i.e. measurable quantity and a unit. Magnitude and unit can be separated by spaces. Refer here for more info.

  • There may be more than one tag field.

  • The input fields can be in any order.

  • Item with either same name or expiry date as the existing ones can be added.

  • Item with same name and expiry date as the existing ones cannot be added.

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

  • The amount left of a grocery item must be more than or equal to the specified amount to use.

  • If the unit of input amount is different from the unit of item, the resultant amount would follow the unit of the original item. e.g. If an item of 1kg is used by 300g, it would become 0.7kg and not 700g.

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]

  • Edits an item at the specified INDEX. The index refers to the number shown in the displayed list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided. At least one of the provided fields must be different from the original item’s field.

  • Amount cannot be edited, but can only be modified through use.

  • Existing values will be updated to input values.

  • When editing tags, the existing tags of the item will be removed. i.e. adding of tags is not cumulative.

  • You can remove all the item’s tags by typing t/ without specifying any tags after it.

  • As the grocery list does not allow duplicates (items with same name and expiry date), any attempt of edit to achieve duplication is not allowed and would result in an error.

  • User is encouraged to practise discretion when editing an item as iFridge is unable to recognise items based on its name and compare between the name and amount of an item. For example, if an item named Milk with amount 2L is edited to have the name Beef, iFridge would allow the edit, even though Beef with amount 2L does not sound logical.

Examples:

  • glist edit 1 n/Fuji apple t/healthy
    Edits the name and tag of the 1st item to be Fuji apple and healthy respectively.

  • glist edit 2 n/Olive oil t/
    Edits the name of the 2nd item to Olive 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:

  • alphabetical: Sort the grocery list based on the item’s name in ascending alphabetical order

  • expiry: Sort the grocery list in ascending expiry date. i.e. from oldest to newest.

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]

  • The search is case insensitive. e.g apple will match Apple

  • The order of the keywords does not matter. e.g. apple milk will match milk apple

  • Only the item name and tag are searched.

  • Only full words will be matched e.g. appl will not match apple

  • Grocery items matching at least one keyword will be returned (i.e. it uses an OR search). e.g. apple dinner will return Apple juice, Pizza tagged with dinner, and Apple pie tagged with dinner.

Examples:

  • glist find apple
    Returns Fuji apple and Apple loaf cake and other items tagged as apple

  • glist find milo doughnut roasted
    Returns any grocery item which contains any of the word milo, doughnut, or roasted 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]

  • If a particular month is specified, the food waste of the particular month will be displayed. Otherwise, the food waste of the current month is displayed.

  • The MONTH_OF_YEAR is the natural language month and year expression in English. To avoid ambiguity, we recommend specifying the month and year in a relaxed date format, e.g. Aug 2019. We also provide some flexibility by allowing you to specify relative date formats, e.g. last month.

    To view the exact specification on supported formats, we kindly refer you to Natty Library Documentation. Note that if you have inadvertently specified a year longer than 4 digits, e.g. Oct 20198, we will only take the first 4 digits, which in this case will be 2019. Alternatively, if you have keyed in Feb Jan 2019, the first month will be taken as the month, which will be Feb 2019.

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]

  • The report will display 3 charts: kg, litres and units of food wasted per month across the time frame.

  • The dates can be specified in any format permissible by the Natty library. If you only wish to see your waste report starting 5 months ago, you can consider the command wlist report sm/5 months ago. To avoid ambiguity, you are advised to specify the dates in the relaxed date format (e.g. Sep 2019).

Start Month End Month Start Month Used End Month Used

The start month follows that specified by the user, or the earliest record found in our waste archive, whichever is later.

The end month follows that specified by the user, or the current month, whichever is earlier.

The start month follows that specified by the user, or the earliest record found in our waste archive, whichever is later.

The end month will be one year from the specified start month or the current month, whichever is earlier.

The start month will be one year before the end month specified, or the earliest month found in our waste archive, whichever is later.

The end month follows that specified by the user, or the current month, whichever is earlier.

The start month would be one year ago from the current month, or the earliest month found in your waste archive, whichever is later.

The end month would be the current month.

To illustrate an example, suppose we have a waste archive with waste data from the months of Oct 2018, Nov 2018, …​, Oct 2019 (the current month). We specify Aug 2018 as a start month and Jun 2019 as an end month, as shown below:

WasteReportTimeFrame

iFridge will generate the report using all available data within the time period, which will be Oct 2018 to Jun 2019, highlighted in the yellow box.

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:

WasteReportWindow

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

Shows the current month’s wastage statistics:

  • How many kg, litres, and units wasted so far

  • Predicted wastage for the month

  • Feedback on how user is managing food waste compared to the average food waste management across the past year

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

  • All templates in the template list must have a unique name. You will not be able to add a template that has the same name as another existing template. Checking of names is case-insensitive.

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

  • Edits the template at the specified INDEX. The index refers to the index number shown in the displayed template list. The index must be a positive integer 1, 2, 3, …​

  • All templates in the template list must have a unique name. You will not be able to edit a template with the name of another existing template.

Examples:

  • tlist edit 1 n/Daily Necessities Edits the name of the 1st template in the template list to Daily 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

  • Deletes the template at the specified INDEX. The index refers to the index number shown in the displayed template list. The index must be a positive integer 1, 2, 3, …​

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

  • Adds item into the template under the specified INDEX as shown in the displayed template list.

  • All items in the template must be unique. Checking of similar names is case-insensitive.

  • Amount must have both magnitude and unit.

  • The system only recognises metric units. e.g. kilogram, liter. Items with the same name (check is non-case-sensitive and across templatelist, grocerylist and shoppinglist) can have different units as long as the unit belongs in the same unit category.

  • Only the units in the following unit categories are supported:

    • Weight: kg, g, oz, lbs

    • Volume: L, ml

    • Quantity: units

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]

  • Edits the food item at the specified ITEMINDEX in template at specified TEMPLATEINDEX. The index refers to the index number shown in the displayed template. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • Amount must have both magnitude and unit.

  • The system only recognises metric units. e.g. kilogram, liter. Note that unit type in the amount field must belong to the same unit category of the item specified and pre-existing items with the same name (check for names is non case-sensitive).

  • Only the units in the following unit categories are supported:

    • Weight: kg, g, oz, lbs

    • Volume: L, ml

    • Quantity: units

Examples:

  • tlist template edit 1 i/1 n/Low-Fat Milk Edits the name of the first food item in the first template to Low-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

  • Deletes the food item at the specified ITEMINDEX. The index refers to the index number shown in the displayed template. The index must be a positive integer 1, 2, 3, …​

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

  • Cannot add item with duplicate name.

  • Cannot add item with unit that does not match with some other pre-existing item with same name.

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]

  • Edits the food item at the specified INDEX. The index refers to the index number shown in the shopping list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • Unit type in the amount field must match that of the item specified and pre-existing items with same name.

Examples:

  • slist edit 3 n/pomegranate Edits the name of the third food item in the shopping list to pomegranate

  • 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

  • Deletes the food item at the specified INDEX. The index refers to the index number shown in the shopping list. The index must be a positive integer 1, 2, 3, …​

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

  • Marks the shopping item at the specified INDEX as bought. The index refers to the index number shown in the shopping list. The index must be a positive integer 1, 2, 3, …​

  • Both EXPIRYDATE and AMOUNT of items bought must be specified. AMOUNT 's unit type must match with that of the item in the shopping list.

  • There is flexibility in the amount of items that are bought. You can indicate more or less quantity of items bought than the number indicated in the shopping list.

  • When an item is completely bought, it is moved to the bottom of the list with a 'Fully Bought' tag.

  • Once an item is completely bought, it loses its 'urgent!' status if it has one.

  • If an item is partially bought, it gets a 'Partially Bought' tag.

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

  • Adds all the items marked as bought in shopping list into the grocery list.

  • If the item with same expiry date is already present in the shopping list, just add the amount to the amount already present in the grocery list.

  • For each bought item, if the amount bought is less than the amount of that item in the shopping list, the amount of that item in the shopping list is now the remaining amount to be bought.

    • Eg: Consider a shopping item 'NAME: Orange, AMOUNT: 2units' in the shopping list.

    • Then, when marking the item as bought, you indicate the amount of 'Orange' that is bought is 1unit.

    • If now you call slist mergebought, shopping list will still have 'NAME: Orange, AMOUNT: 1units', i.e., the amount in shopping list is subtracted to reflect the remaining amount to be bought.

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

  • Marks the shopping item at the specified INDEX as urgent. The index refers to the index number shown in the shopping list. The index must be a positive integer 1, 2, 3, …​

  • Does not allow a completely bought shopping item to be marked as urgent.

Examples:

  • slist urgent 1 Marks the shopping item at INDEX 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

glist add n/ITEM_NAME e/EXPIRY_DATE a/AMOUNT [t/TAG]

Adds a grocery item to the grocery list

glist list

Shows a list of grocery items in the grocery list

glist remDefault r/NUMBER_OF_DAYS

Display list with all food expiring within n days

glist rem [r/NUMBER_OF_DAYS]

Filters and displays all items expiring within the default number of days set by the user

glist delete INDEX

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.

glist use INDEX a/AMOUNT

Reduces the amount left of a grocery item by the specified amount

glist edit INDEX [n/ITEM_NAME] [e/EXPIRY_DATE] [t/TAG]

Edits an existing item in the grocery list

glist sort by/TYPE

Sorts the grocery list based on the type of sorting

glist find KEYWORD [MORE_KEYWORDS]

Finds items whose name or tag contain any of the given keywords.

glist undo

Undoes the grocery list command, if possible

glist redo

Redoes the grocery list command, if possible

wlist list [m/MONTH_OF_YEAR]

Shows a list of the food items which have been wasted in the specified month

wlist report [sm/START_MONTH] [em/END_MONTH]

Shows a charted report detailing your food wastage statistics across a time frame

wlist feedback

Obtain feedback based on current food wastage

tlist add n/TEMPLATENAME

Adds a new template into template list

tlist edit INDEX n/TEMPLATENAME

Updates name of specified template in template list.

tlist delete INDEX

Deletes a specified template from the template list

tlist clear

Clears all template entries from the template list

tlist list

Shows all entries in the template list

tlist template add TEMPLATEINDEX [n/NAME] [a/AMOUNT]

Adds an item into a specified template

tlist template edit TEMPLATEINDEX i/ITEMINDEX [n/FOODITEM] [a/AMOUNT]

Edits a specified item in the specified template TEMPLATENAME

tlist template delete TEMPLATEINDEX i/ITEMINDEX

Deletes the specified item from the specified template

tlist template list TEMPLATEINDEX

Shows all entries in the specified template

tlist undo

Undoes the template list command, if possible

tlist redo

Redoes the template list command, if possible

slist add n/FOOD_ITEM a/AMOUNT

Adds a new item to the shopping list

slist addTemp INDEX

Adds all template items that are not currently found in the grocery list into the shopping list

slist edit INDEX [n/FOODNAME] [a/AMOUNT]

Edits the name of a specified item in a shopping list

slist delete INDEX

Delete specified item from shopping list

slist urgent INDEX

Marks the specified shopping item as 'urgent!'

slist list

Lists out all items in the shopping list with bought items first

slist bought INDEX e/EXPIRYDATE a/AMOUNT

Marks an item as bought and assigns a bought status to the ShoppingItem and expiry date and amount to corresponding BoughtItem

slist mergebought

Adds all items marked as ‘bought’ to the grocery list

slist addTemp TEMPLATEINDEX

Generates a shopping list from all missing grocery items in the template

slist undo

Undoes the shopping list command, if possible

slist redo

Redoes the shopping list command, if possible

exit

Exits the program

help

Displays help