About FoodRem

FoodRem is an Inventory Management System that empowers small food and beverage (F&B) restaurant managers to manage inventory and obtain insights from inventory data. As a restaurant manager, you can easily view and edit your inventory during your daily operations. Utilize FoodRem’s flexible tagging system to help you organize your inventory according to your business needs. Finally, streamline your business decisions by deriving insights from your inventory usage through FoodRem’s statistics – you can keep track of metrics such as food wastage amount if you wish!

TIP

For a more detailed view of FoodRem’s features, you can refer to the Features section below!

With a focus on efficiency, you can interact with FoodRem without ever reaching for your mouse or moving away from your keyboard! With a focus on user-friendliness, FoodRem is easy to learn!

This User Guide provides an in-depth documentation so you can easily use and integrate FoodRem into your day-to-day inventory management operations. It covers how to launch FoodRem, core FoodRem features and commands, common terms and definitions used in FoodRem, and some troubleshooting recommendations. Head over to How to use the User Guide to get started!

Table of Contents

  1. About FoodRem
  2. Table of Contents
  3. Features
    1. Inventory Management System
    2. Inventory Analysis
  4. How to use the User Guide
    1. Admonition Boxes
    2. Other Notation
  5. Installation
  6. Quick Reference Guide
    1. Layout
    2. Key Definitions
      1. Item
      2. Tag
      3. Flags
      4. Placeholders
    3. Command Format
    4. Trying your first command
  7. Commands
    1. Item Commands
      1. Create a new item: new
      2. Search for an item: find
      3. List all items: list
      4. Sort all items by an attribute: sort
      5. View the information of an item: view
      6. Increment the quantity of an item: inc
      7. Decrement the quantity of an item: dec
      8. Edit the information of an item: edit
      9. Add a remark to an item: rmk
      10. Delete an item: del
    2. Tag Commands
      1. Create a new tag: newtag
      2. List all tags: listtag
      3. Tag an item: tag
      4. Untag an item: untag
      5. Rename a tag: renametag
      6. Filter by a tag: filtertag
      7. Delete a tag: deletetag
    3. Statistics Command
      1. Display statistics: stats
    4. General Commands
      1. Receive help during usage: help
      2. Reset the application: reset
      3. Exit FoodRem: exit
  8. Command Summary
    1. Item Commands
    2. Tag Commands
    3. Statistics Command
    4. General Commands
  9. Troubleshooting
  10. FAQ
  11. Acknowledgements
  12. Glossary

Features

There are two core features that FoodRem provides:

  • Inventory Management System
  • Inventory Analysis Tool

Inventory Management System

FoodRem allows you to track your inventory during your daily operations.

  1. Quickly create, view, edit, and remove your available inventory.
  2. Sort your inventory items by name, quantity The amount/count of item(s) kept track by FoodRem.
    Click to view glossary
    , unit, bought date Date where an item was purchased. Bought date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.
    Click to view glossary
    , expiry date Date where an item spoils, expires, or becomes unusable. Expiry date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.
    Click to view glossary
    , price and remarks.
  3. Tag items Represents a thing that is stored and kept track by FoodRem.
    Click to view glossary
    in your inventory using an efficient tagging system where you can create, rename and delete existing tags The main method of categorizing items in FoodRem. A tag may be attached to zero or more items.
    Click to view glossary
    .
  4. Filter your inventory items by item name and tag.

WARNING

FoodRem can only hold up to 10,000 items and 100 tags!

Inventory Analysis

FoodRem tracks data that helps you streamline your business decisions through statistics:

  1. Find out how much cost was incurred due to food wastage.
  2. Track your top 3 most expensive items.
  3. View your items that are expiring soon.

How to use the User Guide

Thank you for choosing FoodRem! We are delighted to have you as a user and we aim to serve you and your business well!

INFO

We highly recommend that you read through the User Guide in a sequential order. Please note the importance of the Quick Reference Guide section, which covers how to use FoodRem!

TIP

This User Guide is highly navigable; simply click on any item in the Table of Contents and be directed to it! Clicking on the respective headings will bring you back to the Table of Contents, so it’s easy to jump across sections!

If you have not installed FoodRem head over to the Installation section.

Once FoodRem is installed, you can head over to the section Quick Reference Guide which covers the basics of using FoodRem. This includes:

If you are an experienced user, you can refer to the Command Summary for a quick overview of all of FoodRem’s commands.

If you are stuck, refer to the section on Troubleshooting or FAQ.

You can also refer to the Glossary for definitions of commonly used terms in FoodRem.

Admonition Boxes

Throughout this guide, you may find coloured boxes containing highlighted pieces of text. These are known as admonition boxes, or simply, admonitions Admonition boxes (or simply “admonitions”) are coloured boxes containing highlighted pieces of text.
Click to view glossary
. Please take note of the content within.

Icon Meaning
Note Something you should keep in mind.
Tip Something you might find useful.
Info Something that provides information useful in that context.
Warning Something you should be cautious about.
Danger Something you should pay a lot of attention to.

Other Notation

Besides icons, there are also some special notations that are used in this guide:

  • Links in blue point to other sections in this document, or places on the internet.
  • Words with a dotted underlineA summary of the glossary entry will appear here. represent terms, which when clicked, take you to the corresponding entry in the glossary section at the end of this guide.

Installation

If you haven’t installed FoodRem, simply follow these steps to set it up:

  1. Download and install Java 11 on your computer
  2. Download the latest foodrem.jar file from our releases page
  3. Copy the jar file to an empty folder. This will be your home folder for FoodRem
  4. Double-click on the jar file to launch FoodRem

WARNING

Remember to add foodrem.jar into an empty folder as additional data and configuration files will be created when launching FoodRem for the first time!

Congratulations! You now have FoodRem set up.

DANGER

When you launch FoodRem, notice that you will have a folder called “data” that is created in the same folder as foodrem.jar. Editing the file might corrupt your data, avoid doing this unless you know what you are doing!

Quick Reference Guide

This section covers all you should know about FoodRem, as well as a guided tutorial. Of special note is the Key Definitions and Command Format sections, which covers essential knowledge to using FoodRem’s features.

Layout

When you launch FoodRem, FoodRem appears on your screen as a Graphical User Interface A Graphical User Interface is a graphics-based interface that uses icons, menus and a mouse (to click on the icon or pull down the menus) to manage interaction with the system. In FoodRem, this presents as the window that appears when launching it.
Click to view glossary
, or GUI. Let’s look at the layout of the different components of FoodRem.

FoodRem’s GUI consists of a single main window, as well as the Help Window A pop-up window containing help information, shown only after calling a help command.
Click to view glossary
. The main window consists of three components:

  1. Command Input Box
  2. Item List Box
  3. Command Output Box

The following picture of the main window shows the three components, numbered accordingly:

FoodRem UI

Besides the main window, FoodRem also has the Help Window. It is not part of the main GUI and is only shown after a Help Command is run.

The Help Window looks like the following:

Help Window

Key Definitions

Item

An Item Represents a thing that is stored and kept track by FoodRem.
Click to view glossary
in FoodRem represents something in your inventory. This can be an ingredient, a piece of equipment, and more. Feel free to include or exclude certain attributes for each item, although you must minimally provide a name for the item.

The following are the attributes stored for each item:

  • Item name
  • Item quantity The amount/count of item(s) kept track by FoodRem.
    Click to view glossary
  • Item unit (unit of measurement e.g. kg, packets)
  • Item bought date Date where an item was purchased. Bought date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.
    Click to view glossary
  • Item expiry date Date where an item spoils, expires, or becomes unusable. Expiry date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.
    Click to view glossary
  • Item price
  • Item remarks
  • Item tags The main method of categorizing items in FoodRem. A tag may be attached to zero or more items.
    Click to view glossary

FoodRem Items are unique by name and case-sensitive. This means you cannot add two or more items of the same name.

Restrictions for all attributes can be found in the Placeholders section.

Tag

A Tag in FoodRem serves as a means to categorise and filter items. These tags are also unique and case-sensitive.

We can tag multiple items with the same tag and each item can have multiple tags. These Tags are optional.

Feel free to add tags as you see fit to organize your inventory. Examples of how you may use a tag can include:

  • Categorizing food items, e.g. Vegetable, Herb, Condiment, Meat
  • Marking where the item is stored, e.g. Fridge, Cupboard, Shelf
  • Noting its perishability, e.g. Perishable, Non-Perishable

Tags can be renamed and these changes would be reflected on all items immediately.

FoodRem Tags are unique by name and case-sensitive. This means you cannot add two or more tags of the same name.

Flags

Flags are delimiters A sequence of one or more characters for specifying the boundary between separate, independent regions in plain text.
Click to view glossary
that enable FoodRem to distinguish different parameters Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
Click to view glossary
without ambiguity.

You would put in the corresponding Placeholder immediately after each flag.

TIP

You may find the following image taken from the subsequent Command Format section helpful:

CommandExample

Please refer to the subsequent Command Format section to see how Flags and Placeholders are used together.

Flag Corresponding Placeholder
n/ ITEM_NAME
TAG_NAME
qty/ QUANTITY
u/ UNIT
bgt/ BOUGHT_DATE
exp/ EXPIRY_DATE
p/ PRICE
r/ REMARKS

Placeholders

Placeholders in this User Guide refers to the UPPER_CASE words that can be replaced by valid user input supplied. These placeholders follow immediately after a Flag.

Please refer to the subsequent Command Format section to see how Flags and Placeholders are used together.

NOTE

The placeholders INDEX, COMMAND_WORD, and KEYWORD do not have any corresponding flags. They are marked as “Not Applicable” in the table below.

Placeholder Corresponding Flag Description
INDEX (Not Applicable)

The INDEX of an item is the number to the left of the item name in the Item List Box.

INFO

  • INDEX is a whole number larger than 0
  • INDEX is dependent on the item list currently displayed in the Item List Box
  • Do not include a thousands-separator (e.g. ,) in INDEX

Valid Examples:

  • 1
  • 124

Invalid Examples:

  • -1
  • 1.5
  • 1,132
  • 1 132
ITEM_NAME n/

The ITEM_NAME is the name we use to identify an item.

INFO

  • ITEM_NAME is a short text with a limit of 200 characters
  • ITEM_NAME can contain alphanumeric characters, spaces, and the following symbols: ? ' . " [ ] { } ( ) + ^ $ * - , : ; @ ! # % & _ =
  • ITEM_NAME is unique and case-sensitive
  • ITEM_NAME will have leading and trailing spaces trimmed
  • ITEM_NAME cannot be blank

Valid Examples:

  • Potatoes
  • Tomatoes 8

Invalid Examples:

  • огурец
TAG_NAME n/

The TAG_NAME is the term we use to identify an item.

INFO

  • TAG_NAME is a short text with a limit of 20 characters
  • TAG_NAME can contain alphanumeric characters, spaces, and the following symbols: ? ' . " [ ] { } ( ) + ^ $ * - , : ; @ ! # % & _ =
  • TAG_NAME is unique and case-sensitive
  • TAG_NAME will have leading and trailing spaces trimmed
  • TAG_NAME cannot be blank

Valid Examples:

  • Vegetables
  • Fruits 8

Invalid Examples:

  • Одноразовый
QUANTITY qty/

The QUANTITY is the number representing the amount of an item.

INFO

  • QUANTITY is a non-negative number
  • QUANTITY has an accuracy of 4 decimal places
  • QUANTITY has a limit of 1,000,000
  • Do not include thousands separators (e.g. ,) and mathematical symbols in QUANTITY

Valid Examples:

  • 12
  • 12.1234
  • 123456

Invalid Examples:

  • 12.12345
  • 1,234,567
  • 1 + 1
  • 1/2
  • π
UNIT u/

The UNIT is a text indicating the unit-of-measurement of an item.

INFO

  • UNIT is a short text with a limit of 10 characters
  • UNIT can contain alphanumeric characters, spaces, and the following symbols: ? ' . " [ ] { } ( ) + ^ $ * - , : ; @ ! # % & _ =
  • UNIT will have leading and trailing spaces trimmed

Valid Examples:

  • KG
  • Packets 8

Invalid Examples:

  • огурец
BOUGHT_DATE bgt/

The BOUGHT_DATE is the date indicating when an item was bought.

INFO

  • BOUGHT_DATE must be in the following format (dd-mm-yyyy)
  • BOUGHT_DATE can only have years between 1900 and 2300 inclusive

Valid Examples:

  • 01-01-2022
  • 28-09-2022
  • 11-11-2022

Invalid Examples:

  • 11-11-2400
  • 11-11-1899
  • 1-1-2022
  • 01-1-2022
  • 1-01-2022
  • 01/09/2022
  • 40-40-2022
  • 1-9-22
  • 1-nov-2202
EXPIRY_DATE exp/

The EXPIRY_DATE is the date indicating when an item will expire.

INFO

  • EXPIRY_DATE must be in the following format (dd-mm-yyyy)
  • EXPIRY_DATE can only have years between 1900 and 2300 inclusive

Valid Examples:

  • 01-01-2022
  • 28-09-2022
  • 11-11-2022

Invalid Examples:

  • 11-11-2400
  • 11-11-1899
  • 1-1-2022
  • 01-1-2022
  • 1-01-2022
  • 01/09/2022
  • 40-40-2022
  • 1-9-22
  • 1-nov-2202
PRICE p/

The PRICE is the number representing the cost of one unit of an item.

INFO

  • PRICE is a non-negative number
  • PRICE has an accuracy of 2 decimal places
  • PRICE has a limit of 1,000,000
  • PRICE allows leading zeros
  • Do not include thousands separators (e.g. ,) and currency symbols in PRICE

Valid Examples:

  • 10
  • 10.50
  • 105060
  • 001.10

Invalid Examples:

  • 10.506
  • 1,050,507
  • 1 + 1
  • 1/2
  • $10
REMARKS r/

The REMARKS of an item is a note that you can add to an item.

INFO

  • REMARKS is a long text with a limit of 10,000 chracters
  • REMARKS can contain alphanumeric characters, spaces, and the following symbols: ? ' . " [ ] { } ( ) + ^ $ * - , : ; @ ! # % & _ =
  • REMARKS will have leading and trailing spaces trimmed

Valid Examples:

  • Expiring soon
  • Need 10 more

INVALID EXAMPLES:

  • Одноразовый
COMMAND_WORD (Not Applicable)

The COMMAND_WORD is a text indicating a command word of a command. Refer to the Command Format for more info.

INFO

  • COMMAND_WORD is strictly any of the following valid examples.

Valid Examples:

  • exit
  • help
  • reset
  • dec
  • del
  • edit
  • find
  • inc
  • list
  • new
  • rmk
  • sort
  • view
  • deletetag
  • filtertag
  • listtag
  • newtag
  • renametag
  • tag
  • untag

Invalid Examples:

  • Anything else
KEYWORD (Not Applicable)

The KEYWORD is the text we use to search for an item.

INFO

  • KEYWORD is a short text
  • KEYWORD can contain alphanumeric characters, spaces, and the following symbols: ? ' . " [ ] { } ( ) + ^ $ * - , : ; @ ! # % & _ =
  • KEYWORD will have leading and trailing spaces trimmed

Valid Examples:

  • Potatoes
  • Tomatoes

Invalid Examples:

  • Одноразовый

Command Format

You will encounter FoodRem commands A feature or function that FoodRem can perform.
Click to view glossary
throughout this User Guide. Before you delve into the different commands in Commands, let’s learn what a command consists of.

Here is an example:

CommandExample

A command consists of:

  1. Command Word: Tells FoodRem what action you wish to execute. These actions are covered in Commands.
  2. Flags: Distinguishes between inputs. A flag is usually followed by a placeholder.
  3. Placeholders: Represents data that you wish to input. Replace this with valid data. For example, ITEM_NAME in n/ITEM_NAME can be replaced with n/Potato.

Trying your first command

To let you become more familiar with FoodRem, let’s practice executing some commands A feature or function that FoodRem can perform.
Click to view glossary
.

To start off, let’s try out the new command! This command lets you add an Item to FoodRem.

One of the available commands in FoodRem is the command to create a new item.

Format: new n/ITEM_NAME [qty/QUANTITY] [u/UNIT] [bgt/BOUGHT_DATE] [exp/EXPIRY_DATE] [p/PRICE] [r/REMARKS]

What does the format mean?

The first word of every command allows FoodRem to distinguish different commands.

  • new tells FoodRem that this is the command to create a new item
  • Flags such as n/ and qty/ are delimiters A sequence of one or more characters for specifying the boundary between separate, independent regions in plain text.
    Click to view glossary
    that enable FoodRem to distinguish different parameters Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    supplied by you without ambiguity
  • Placeholders such as ITEM_NAME and QUANTITY shows you what you should place in each portion of the command

Notice that there is a pair of square brackets [] surrounding some parameters Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
Click to view glossary
like qty/QUANTITY in the format. This indicates that the parameter is optional. Each of these placeholders Placeholders in FoodRem refers to the UPPER_CASE words that appear after flags in commands that can be replaced by user input supplied. For example in n/ITEM_NAME, ITEM_NAME is a placeholder.
Click to view glossary
in the parameters Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
Click to view glossary
have a default value based on the commands. These are documented in the Commands section for each command.

NOTE

The Placeholder section covers the restrictions for respective placeholders. For example, the date format of BOUGHT_DATE, certain characters you cannot use and the limit and precision of numbers.

Let’s try an example!

Suppose you just bought 30 kg worth of potatoes, today is 5th September 2022, and you do not feel the need to record an expiry date Date where an item spoils, expires, or becomes unusable. Expiry date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.
Click to view glossary
, price or remarks for this item.

ITEM_NAME: Potatoes

QUANTITY: 30

UNIT: kg

BOUGHT_DATE: 05-09-2022

The command you would like to enter into the command box would be:

new n/Potatoes qty/30 u/kg bgt/05-09-2022

Alternatively, executing these would do the same thing:

  • new qty/30 n/Potatoes bgt/05-09-2022 u/kg

    This is because the order of the flags does not matter.

  • new qty/100 n/Carrots qty/30 n/Potatoes bgt/05-09-2022 u/kg

    If two or more values of the same parameter Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    are provided, only the last value for that parameter will be taken. In this case, the name “Carrots” will be overridden by “Potatoes”, and the quantity “100” will be overridden by “30”.

However, note that the following executions are invalid:

  • newn/Potatoesqty/30u/kgbgt/05-09-2022

    There must be between the placeholders and flags.

  • new qty/-48 n/PÖtátÖes bgt/05/09/22 u/|kg|

    The restrictions of placeholders are not followed.

  • new

    There is insufficient information provided; you must minimally provide a name.

Find out more about restrictions in the sections Flags, Placeholders and Commands.


Let’s try out another command – the inc command! inc lets you increment the quantity of an item.

WARNING

The format for different commands are not always identical. For example, executing the new command and the inc command will have different formats!

For example, after creating the potatoes item, you decided to buy 40 kg more of potatoes.

Format: inc INDEX [qty/QUANTITY]

Suppose the INDEX for potatoes is 1 in the application, the command you would like to enter into the Command Input Box would be:

inc 1 qty/40

You should now have a better understanding of how commands are formatted and used. All commands are consolidated in the Command Summary.

Here is a checklist you can use before running a command A feature or function that FoodRem can perform.
Click to view glossary
:

  • I know the restrictions of the command
  • I know what parameters Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    are supplied to the command
  • I know the flags A marker or delimiter signifying a potentially optional argument to a command. For example on FoodRem, in the syntax n/ITEM_NAME , n/ is the flag.
    Click to view glossary
    for each parameter to be supplied
  • I know the restrictions of each parameter
  • I know the effects of not specifying each optional flag.

Commands

This section shares with you on how to use each command A feature or function that FoodRem can perform.
Click to view glossary
in detail.

Before continuing, ensure you have read the section on Flags and Placeholders.

What you should expect to find:

  • A description of the command
  • The format of the command
  • The expected behaviour of the command
  • A few valid and invalid examples of the command
  • Important points to note

NOTE

  • For each command, “Format” indicates the syntax of the command.
  • Square brackets indicates an optional parameter Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    .
  • In most commands, if the same parameter is repeated and only one is required, we take the last value provided.

Item Commands

Example of an Item:

Item

Create a new item: new

Format: new n/ITEM_NAME [qty/QUANTITY] [u/UNIT] [bgt/BOUGHT_DATE] [exp/EXPIRY_DATE] [p/PRICE] [r/REMARKS]

Creates a new item with the provided information

INFO

  • All fields apart from ITEM_NAME are optional.
  • The BOUGHT_DATE should not be after the EXPIRY_DATE.
  • The format for BOUGHT_DATE and EXPIRY_DATE should follow: “dd-mm-yyyy”.
    • “dd”: Day of the month. For example, “10” would represent the 10th day of the month.
    • “mm”: Month of the year, ranging from 1 to 12 for January to December respectively. For example, “05” would represent May.
    • “yyyy”: A 4-digit year. For example, “2019” would represent the year 2019.
  • The value of BOUGHT_DATE, EXPIRY_DATE will be Not Set if it is not provided.
  • The default value for QUANTITY and PRICE is 0.
  • The default value for UNIT is blank.
  • The value of REMARKS will be - if is it not provided.
  • PRICE does not require you to include the currency. Only include the value.

NOTE

  • You cannot create an item and tag it at the same time.
  • If two or more values of the same parameter Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    are provided, only the last value for that parameter will be taken.

Example:

Command Input Box:

new n/Potato qty/70 u/kg bgt/22-02-2022 exp/22-03-2022

Assumption:

FoodRem does not already contain an item with the name “Potato”.


Search for an item: find

Format: find KEYWORD [KEYWORDS]...

Finds all items in FoodRem whose names contain substrings A contiguous sequence of characters (letters) that form a part (or a whole) string of text.
Click to view glossary
of the KEYWORDS

INFO

  • The notation [KEYWORDS]... means that we can take in multiple keywords. In this case, at least one KEYWORD is required.
  • The KEYWORDS are case-insensitive. (e.g. “apples” will match “Apples”).
  • The result will be items where each of the KEYWORDS are present in the ITEM_NAME as a substring. (e.g. “c e” will match “Carrot Cake”, “cereal”, “Cold Escargo” and “eclairs”)

TIP

  • You can use the List Command in the next section to display all items again!

NOTE

  • The find command only finds Items which has a name that partially or fully matches the specified search by name!
  • This means that if the Items Brown Sugar and White Sugar is in FoodRem, executing find Sugar will find these two Items.
  • However, if you try to find an Item Potato by executing the command find potatoes carrots celery, it will not work!

Example:

Command Input Box:

find b sug

Assumption:

Initially, FoodRem only contains the following items:

  1. Sugarcane Juice Box
  2. Brown Sugar
  3. Tomato
  4. Carrot


List all items: list

Format: list

List all items in FoodRem

INFO

  • This command is useful to view all items again after using the Find Command.

Example:

Command Input Box:

list

Assumption:

FoodRem contains the following items, each with their own attributes:

  1. Sugarcane Juice Box
  2. Brown Sugar
  3. Tomato
  4. Carrot


Sort all items by an attribute: sort

Format: sort [n/] [qty/] [u/] [bgt/] [exp/] [p/] [r/]

Sorts the list of currently displayed items by the provided criteria

NOTE

  • sort n/ : Sort by item name
  • sort qty/ : Sort by item quantity
  • sort u/ : Sort by item unit
  • sort bgt/ : Sort by item bought date
  • sort exp/ : Sort by item expiry date
  • sort p/ : Sort by item price
  • sort r/ : Sort by item remarks

TIP

You may find this command useful when you need to quickly dispose of expiring items or to check item stocks, but the sky is the limit! You can use FoodRem in creative ways to take advantage of this! For example, if you use the PRICE field to store each item’s profit per unit sold, you can use this command to see which items are giving you the most profits!

WARNING

  • You should only provide one sorting criteria.
  • The sort can only be done in ascending order.

Example:

Command Input Box:

sort n/

Assumption:

FoodRem contains the following items:

  1. Sugarcane Juice Box
  2. Brown Sugar
  3. Tomato
  4. Carrot


View the information of an item: view

Format: view INDEX

Displays the item at the specified index

INFO

  • Displayed information includes the name, quantity, unit, bought date, expiry date, price, remarks and tags of items.

Example:

Command Input Box:

view 1

Assumption:

The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
Click to view glossary
in FoodRem shows the item named “Onion” at INDEX value 1.

The command will produce a detailed view of this item.


Increment the quantity of an item: inc

Format:: inc INDEX [qty/QUANTITY]

Increments the quantity of the item at the specified index

INFO

  • If a quantity is not provided, the item quantity will be incremented by 1.
  • If two or more QUANTITY values are provided, only the last QUANTITY will be taken.

Example:

Command Input Box:

inc 1 qty/3

Assumptions:

  • The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
    Click to view glossary
    in FoodRem shows the item named “Onion” at INDEX value 1.
  • Initially, the “Onion” item has a “Quantity” of 8.


Decrement the quantity of an item: dec

Format:: dec INDEX [qty/QUANTITY]

Decrements the quantity of the item at the specified index

INFO

  • If a quantity is not provided, the item quantity will be decremented by 1.
  • If two or more QUANTITY values are provided, only the last QUANTITY will be taken.

Example:

Command Input Box:

dec 1 qty/4

Assumptions:

  • The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
    Click to view glossary
    in FoodRem shows the item named “Onion” at INDEX value 1.
  • Initially, the “Onion” item has a “Quantity” of 11.


Edit the information of an item: edit

Format: edit INDEX [n/ITEM_NAME] [qty/QUANTITY] [u/UNIT] [bgt/BOUGHT_DATE] [exp/EXPIRY_DATE] [p/PRICE] [r/REMARKS]

Updates the details of the item at the specified index

INFO

  • All fields are optional. However, you need to include at least one parameter.
  • The BOUGHT_DATE should not be after the EXPIRY_DATE.
  • The format for BOUGHT_DATE and EXPIRY_DATE should follow: “dd-mm-yyyy”.
    • “dd”: Day of the month. For example, “10” would represent the 10th day of the month.
    • “mm”: Month of the year, ranging from 1 to 12 for January to December respectively. For example, “05” would represent May.
    • “yyyy”: A 4-digit year. For example, “2019” would represent the year 2019.
  • PRICE does not require you to include the currency. Only include the value.

NOTE

  • If two or more values of the same parameter Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.
    Click to view glossary
    are provided, only the last value for that parameter will be taken.

Example:

Command Input Box:

edit 1 qty/100 n/Spring Onion

Assumptions:

  • The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
    Click to view glossary
    in FoodRem shows the item named “Onion” at INDEX value 1.
  • Initially, the “Onion” item has the following values:
    • Unit: kg
    • Bought Date: 10-10-2022
    • Expiry Date: 10-11-2022
    • Price: 6.00
    • Remarks: -
    • Tags: Vegetables


Add a remark to an item: rmk

Format: rmk INDEX [r/REMARKS]

Add a remark to the item at the specified index

INFO

  • If no remark is provided, the current remark will be cleared.
  • If two or more REMARKS values are provided, only the last REMARKS value will be taken.
  • If an item already has a remark, this command will overwrite the old remark with the new remark.
  • The new remark can overwrite the old remark even if they are the same. This is to give the user flexibility in editing remarks.

Example:

Command Input Box:

rmk 1 r/For party!

Assumption:

The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
Click to view glossary
in FoodRem shows the item named “Onion” at INDEX value 1.


Delete an item: del

Format: del INDEX

Deletes the item at the specified index

Example:

Command Input Box:

del 1

Assumption:

The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
Click to view glossary
in FoodRem shows the item named “Onion” at INDEX value 1.


Tag Commands

Example of a Tag:

Tags

Create a new tag: newtag

Format: newtag n/TAG_NAME

Creates a new tag with the provided tag name

Example:

Command Input Box:

newtag n/Vegetables

Assumption:

FoodRem does not already contain a tag called “Vegetables”.


List all tags: listtag

Format: listtag

List all tags in FoodRem

Example:

Command Input Box:

listtag

Assumption:

Initially, FoodRem contains only the following three tags:

  • Fruits
  • Meat
  • Vegetables


Tag an item: tag

Format: tag INDEX n/TAG_NAME

Tags the item at the specified index

Example:

Command Input Box:

tag 1 n/Vegetables

Assumptions:

  • The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
    Click to view glossary
    in FoodRem shows the item named “Carrot” at INDEX value 1.
  • There exists a tag called “Vegetables”.
  • The “Carrot” item has not already been tagged under “Vegetables”.


Untag an item: untag

Format: untag INDEX n/TAG_NAME

Untags the item at the specified index

Example:

Command Input Box:

untag 1 n/Vegetables

Assumptions:

  • The currently displayed Item List Box The region located at the bottom-left of FoodRem’s main window.
    Click to view glossary
    in FoodRem shows the item named “Carrot” at INDEX value 1.
  • The “Carrot” item is currently tagged under “Vegetables”.


Rename a tag: renametag

Format: renametag n/TAG_NAME n/TAG_NAME

Renames a tag currently in FoodRem

INFO

The first TAG_NAME in the command refers to the current tag you wish to rename while the second TAG_NAME refers to the new name you wish to rename the current tag to.

NOTE

If you encounter an error message saying “This tag name already exists in FoodRem,” it means that the new name you wish to rename the current tag to is already taken by another tag in FoodRem.

Example:

Command Input Box:

renametag n/Vegetables n/Veggies

Assumptions:

  • Initially, there exists a tag called “Vegetables”.
  • FoodRem does not already contain a tag called “Veggies”.


Filter by a tag: filtertag

Format: filtertag n/TAG_NAME

Filters and shows items that contain a specific tag

Example:

Command Input Box:

filtertag n/Fruits

Assumption:

Initially, FoodRem only contains the following items:

  1. Banana (tagged as “Fruits”)
  2. Carrot (tagged as “Vegetables”)
  3. Papaya (tagged as “Fruits”)
  4. Tomato (tagged as “Vegetables”)


Delete a tag: deletetag

Format: deletetag n/TAG_NAME

Deletes a tag that exists in FoodRem

WARNING

  • There is no additional confirmation for deleting a tag that is in use
  • Deleting a tag that is already in use will also untag the items under that tag

TIP

You might find the abovementioned Filtertag Command useful to check that a tag is not in use before deleting it.

Example:

Command Input Box:

deletetag n/Veggies

Assumption:

Initially, there already exists a tag called “Veggies”.


Statistics Command

Display statistics: stats

Format: stats

Displays all statistics collected by FoodRem

NOTE

These statistics include:

  • Total cost of wasted items Represents a thing that is stored and kept track by FoodRem.
    Click to view glossary
  • Top 3 most commonly used tags The main method of categorizing items in FoodRem. A tag may be attached to zero or more items.
    Click to view glossary
    in your inventory
  • Top 3 most costly items in your inventory

The cost of an item is the price of the item multiplied by the quantity of the item in your inventory.

TIP

You can use tags in creative ways to take advantage of these statistics! For example, by tagging items by their suppliers, you can use this command to find out which supplier you rely most on, which may be useful for your business negotiations or decisions!

Example:

Command Input Box:

stats

Assumptions:

  • Initially, FoodRem has a few items, one of which is:
    • Tomato
  • Initially, FoodRem has a few tags, three of which are:
    • Fruits
    • Meat
    • Vegetables

INFO

The above picture only shows a partial view of the Command Output Box. On FoodRem, you can simply scroll down to see the full output! This is the one instance where you need to use a mouse to interact with FoodRem.


General Commands

Receive help during usage: help

Format: help [COMMAND_WORD]

Displays help for FoodRem

NOTE

COMMAND_WORD is strictly any of the following:

  • exit
  • help
  • reset
  • dec
  • del
  • edit
  • find
  • inc
  • list
  • new
  • rmk
  • sort
  • view
  • deletetag
  • filtertag
  • listtag
  • newtag
  • renametag
  • tag
  • untag

Example:

Command Input Box:

Possible inputs:

help
help del
help help

Help Window:

The Help Window A pop-up window containing help information, shown only after calling a help command.
Click to view glossary
will open showing the instructions.

If no COMMAND_WORD was specified, only a general help message will be provided. The general help message shows a list of commands available to the user and a URL A hyperlink to a website.
Click to view glossary
to this User Guide.

If a COMMAND_WORD was specified, additional help for that command will be provided.


Reset the application: reset

Format: reset

Clears all items and tags in FoodRem

TIP

You may find this command useful when you start FoodRem for the first time. Initially, FoodRem starts up with some sample data, which, once you have figured out how to use FoodRem, may want to clear so that you can start using it for your own business!

Example:

Command Input Box:

reset

Assumptions:

None


Exit FoodRem: exit

Format: exit

Exits FoodRem

WARNING

This command is the only guaranteed way for the data file to be saved when you exit the application To prevent, always exit the application using this command instead of any other way.

Example:

Command Input Box:

Possible inputs:

exit

Expected Outcomes:

  • All FoodRem application windows will close
  • Your inventory data is saved.

NOTE

If your inventory data cannot be saved successfully, FoodRem will not close in order to prevent data loss.

Command Summary

Item Commands

Action Format Example
Create a new item

new n/ITEM_NAME [qty/QUANTITY] [u/UNIT] [bgt/BOUGHT_DATE] [exp/EXPIRY_DATE] [p/PRICE] [r/REMARKS]

new n/Potato qty/70 u/kg bgt/01-02-2022 exp/01-03-2022

List all items

list

list

Search for an item

find KEYWORD [KEYWORD...] (Minimally one KEYWORD must be provided)

Note: You can provide multiple keywords to find an item. For example, find potato chips yellow.

find Potato

Sort all items by name, quantity, unit, bought date, expiry date, price or remark

sort [n/] [qty/] [u/] [bgt/] [exp/] [p/] [r/]

sort n/

View the information of an item

view INDEX

view 1

Increase the quantity of an item

inc INDEX [qty/QUANTITY]

inc 1 qty/100

Decrease the quantity of an item

dec INDEX [qty/QUANTITY]

dec 1 qty/100

Edit the information of an item

edit INDEX [n/ITEM_NAME] [qty/QUANTITY] [u/UNIT] [bgt/BOUGHT_DATE] [exp/EXPIRY_DATE] [p/PRICE] [R/REMARKS]

edit 1 n/Potatoes qty/60 u/kg

Add a remark to an item

rmk INDEX [r/REMARKS]

rmk 1 r/For Party

Delete an item

del INDEX

del 1

Tag Commands

Action Format Example
Create a new tag

newtag n/TAG_NAME

newtag n/Food

List all tags

listtag

listtag

Tag an item

tag INDEX n/TAG_NAME

tag 1 n/Condiments

Untag an item

untag INDEX n/TAG_NAME

untag 1 n/Condiments

Rename a tag

renametag n/TAG_NAME n/TAG_NAME

renametag n/Condiments n/Condiment

Delete a tag

deletetag n/TAG_NAME

deletetag n/Food

Filter items by tag

filtertag n/TAG_NAME

filtertag n/Fruits

Statistics Command

Action Format Example
Displays all statistics collected by FoodRem

stats

stats

General Commands

Action Format Example
Shows a help dialog with a list of available commands

help

help

Clears all items and tags in FoodRem

reset

reset

Exits FoodRem

exit

exit

Troubleshooting

Problem:

The JAR file not launching even after double-clicking the file.

Solution:

  1. Open your terminal
    • Windows:
      • The default key combination to launch your terminal is Ctrl+Shift+P
    • Mac:
      • Use Cmd+Space to open Spotlight Search
      • Search for “terminal” and click it to launch.
  2. Navigate to the location where “foodrem.jar” is stored within your terminal.
  3. On your terminal, run java -jar "foodrem.jar"

Problem:

The JAR file not launching in Windows Subsystem for Linux (WSL).

NOTE

WSL does not support GUI applications by default.

Solution:

  1. Our recommendation is to run FoodRem on Windows and not on WSL.

Problem:

The JAR file not launching in Linux machines running Wayland.

Solution:

INFO

Under the hood, FoodRem uses JavaFX 11 to render the UI for the GUI. Unfortunately, JavaFX 11 has poor support for Wayland which is why FoodRem is unable to support Wayland currently.

  1. FoodRem is only supported on machines with the following operating systems: Windows, macOS and Linux11. Please use a computer running on these operating systems.

Problem:

Unable to exit/save FoodRem to data file

Solution:

  1. This error is due to foodrem.jar being started in a protected folder. (Examples of write-protected folders include C:\WINDOWS\System32 in windows and the /etc dir in linux)
    Please move the foodrem.jar file into another folder in your computer and start FoodRem from that folder.

FAQ

Q: If I do not have Java 11, how do I install it on my computer?
A: You can navigate to this site here and download Java 11 according to your system’s specifications.

Q: Do I need an internet connection to run FoodRem?
A: No, FoodRem can boot up and run all functionalities without an internet connection.

Q: Can I use FoodRem on my mobile device?
A: Unfortunately, FoodRem is only designed to run on your desktop/laptop such that you can use the command line interface.

Q: How do I transfer my data to another computer?
A: Install FoodRem on the other computer and overwrite the empty data file with the data file created by FoodRem in your current computer.

Acknowledgements

FoodRem is a brownfield software project based off AddressBook Level-3, taken under the CS2103T Software Engineering module held by the School of Computing at the National University of Singapore.

Java dependencies:

Documentation dependencies:

Fonts used in FoodRem:

Other acknowledgments:

Glossary

Quick Reference
Admonitions BOUGHT_DATE (Placeholder) Bought Date COMMAND_WORD (Placeholder) Command Command Input Box Command Line Command Output Box Delimiter EXPIRY_DATE (Placeholder) Expiry Date Flag Graphical User Interface Help Window INDEX (Placeholder) ITEM_NAME (Placeholder) Input Item Item List Box KEYWORD (Placeholder) Operating System (OS) Output PRICE (Placeholder) Parameter Placeholder Purchasing Manager QUANTITY (Placeholder) Quantity REMARKS (Placeholder) Substring Syntax TAG_NAME (Placeholder) Tag UNIT (Placeholder) URL

A

Admonitions

Admonition boxes (or simply “admonitions”) are coloured boxes containing highlighted pieces of text.

For details on the various types of various types of admonitions used in FoodRem, see the section on Admonition Boxes.

B

BOUGHT_DATE (Placeholder)

The BOUGHT_DATE is the date indicating when an item was bought.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Bought Date

Date where an item was purchased. Bought date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.

C

COMMAND_WORD (Placeholder)

The COMMAND_WORD is a text indicating a command word of a command

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Command

A feature or function that FoodRem can perform.

Command Input Box

The region located at the top-left of FoodRem’s main window.

To view more information, refer to the Layout section of the User Guide.

Command Line

The typing interface that you use to interact with FoodRem. It is represented as the box where you type in commands.

Command Output Box

The region located at the right half of FoodRem’s main window.

To view more information, refer to the Layout section of the User Guide.

D

Delimiter

A sequence of one or more characters for specifying the boundary between separate, independent regions in plain text.

E

EXPIRY_DATE (Placeholder)

The EXPIRY_DATE is the date indicating when an item will expire.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Expiry Date

Date where an item spoils, expires, or becomes unusable. Expiry date is in the format “day-month-year”, represented in the “dd-mm-yyyy” format.

F

Flag

A marker or delimiter signifying a potentially optional argument to a command. For example on FoodRem, in the syntax n/ITEM_NAME , n/ is the flag.

G

Graphical User Interface

A Graphical User Interface is a graphics-based interface that uses icons, menus and a mouse (to click on the icon or pull down the menus) to manage interaction with the system. In FoodRem, this presents as the window that appears when launching it.

H

Help Window

A pop-up window containing help information, shown only after calling a help command.

To view more information, refer to the Layout section of the User Guide.

I

INDEX (Placeholder)

The INDEX of an item is the number to the left of the item name in the List Component.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

ITEM_NAME (Placeholder)

The ITEM_NAME is the name we use to identify an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Input

The text that a user would enter into FoodRem.

Item

Represents a thing that is stored and kept track by FoodRem.

Example: Creating a potato item new n/potato

Item List Box

The region located at the bottom-left of FoodRem’s main window.

To view more information, refer to the Layout section of the User Guide.

K

KEYWORD (Placeholder)

The KEYWORD is the text we use search for an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

O

Operating System (OS)

Operating System (OS) of the computer which manages the software and hardware on the computer.

Output

The result of calling a Command. Results are displayed in the GUI, here: (ADD SCREENSHOT)

P

PRICE (Placeholder)

The PRICE is the number representing the cost of one unit of an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Parameter

Parameters identify values passed into your Commands. For example, when calling add n/ItemName, the parameter here is n/ItemName.

Placeholder

Placeholders in FoodRem refers to the UPPER_CASE words that appear after flags in commands that can be replaced by user input supplied. For example in n/ITEM_NAME, ITEM_NAME is a placeholder.

Purchasing Manager

A purchasing manager, also known as a purchasing director or supply manager, heads a team responsible for procuring goods and services for resale or company use.

Q

QUANTITY (Placeholder)

The QUANTITY is the number representing the amount of an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Quantity

The amount/count of item(s) kept track by FoodRem.

R

REMARKS (Placeholder)

The REMARKS of an item is a note that you can add to an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

S

Substring

A contiguous sequence of characters (letters) that form a part (or a whole) string of text.

Example: “ca” is a substring of “ca”, “cat” and “thecat”, but not “ac”.

Syntax

The structure of statements users type into the Command Line.

T

TAG_NAME (Placeholder)

The TAG_NAME is the term we use to identify an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

Tag

The main method of categorizing items in FoodRem. A tag may be attached to zero or more items.

U

UNIT (Placeholder)

The UNIT is a text indicating the unit of an item.

To view more information (constraints, examples, etc.), refer to the Placeholders table.

URL

A hyperlink to a website.