User Guide
Welcome to the NomNomNotifier User Guide, your essential toolkit for mastering customer management in a fast-paced restaurant environment. This guide is crafted for all members of the restaurant team—from front-of-house staff to receptionists—equipping you with everything you need to manage customer information effortlessly. You don’t need any prior technical expertise; this guide is designed with simplicity and ease in mind, making it accessible even for those completely new to digital customer management tools.
NomNomNotifier brings powerful features right to your desktop, enabling quick and accurate access to customer data like names, addresses, contact details, and dietary preferences. Our app enhances the speed of customer service while helping teams manage VIPs and special requests with ease. Combining a Command Line Interface (CLI) with a user-friendly Graphical Interface (GUI), NomNomNotifier offers the flexibility to work however you prefer—type commands to streamline actions or navigate visually to find exactly what you need.
- Table of Contents
- Quick start
- Command summary
- Features
- Add Customer:
add
- List Customers:
list
- Edit Customer:
edit
- Find Customers:
find
- Delete Customer:
delete
- Delete Customers by Postal Code:
deletePC
- Clear all Customers:
clear
- Add Order:
order
- Delete Order:
deleteOrder
- List Orders:
listOrder
- Assign Order to Customer:
put
- View Order History for Customer:
history
- Create Shortcut for Tags:
addShortCut
- Delete Shortcut for Tags:
delShortCut
- List All Shortcuts:
listShortCut
- Using Shortcuts for Tagging
- Filter Customers by Tags:
filter
- Archive Customer:
archive
- View Archived Customers:
listarchive
- Unarchive Customer:
unarchive
- Download Customer Data:
download
- Exit Command:
exit
- Add Customer:
- FAQ
- Known Issues
Quick start
- Ensure you have Java
17
or above installed on your computer.-
To check: Open a command terminal (Terminal for macOS, Command Prompt for Windows), and type
java -version
to check if Java is installed and which version is installed. - To install: Visit Oracle’s Java 17 download page. Download the version for your operating system (Windows, macOS, or Linux). Follow the instructions provided by Oracle to install Java 17.
-
To check: Open a command terminal (Terminal for macOS, Command Prompt for Windows), and type
-
Download the latest
.jar
file from here. -
Copy the file to the folder you want to use as the home folder for your AddressBook.
-
Open a command terminal,
cd
into the folder where you placed the jar file, and use thejava -jar NomNomNotifier.jar
command to run the application.
A GUI similar to the one below should appear in a few seconds, containing some sample data.
Figure 1: Shows what the application should look like - Type a command in the command box and press Enter to execute it. For example, typing
help
and pressing Enter will open the help window.
Some example commands you can try:-
list
: Lists all contacts. -
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 pc/567333
: Adds a contact namedJohn Doe
to the contact list. -
delete 3
: Deletes the 3rd contact shown in the current list. -
clear
: Deletes all contacts. -
exit
: Exits the app.
-
- Refer to the Features below for details on each command.
Command summary
Action | Format, Examples |
---|---|
Add |
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pc/POSTAL_CODE [t/TAG]… e.g., add n/James Ho p/88737204 e/jamesho@example.com a/Blk 310, Clementi Rd pc/123456 t/friend t/colleague
|
Add Order to Application |
order ORDER e.g., order pizza
|
Add Order to Customer |
put ORDER n/NAME e.g., put cake n/Alex
|
Add Shortcut |
addShortCut al/ALIAS tn/TAG_NAME e.g., addShortCut al/v tn/Vegan
|
Archive |
archive INDEX e.g., archive 3
|
Clear | clear |
Delete |
delete INDEX e.g., delete 3
|
Delete Order |
deleteOrder ORDER e.g., deleteOrder pizza
|
Delete by postal code |
deletePC POSTAL_CODE e.g., deletePC 118303
|
Download |
download [t/TAG1] [t/TAG2] … e.g., download t/vegan
|
Edit |
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [pc/POSTAL_CODE] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com
|
Exit | exit |
Find |
find KEYWORD [MORE_KEYWORDS] e.g., find James 81234567 S123456
|
Help | help |
History of a Customer |
history NAME e.g., history Alex
|
Delete Shortcut |
delShortCut al/ALIAS tn/TAG_NAME e.g., delShortCut al/v tn/Vegan
|
List | list |
List Order | listOrder |
List Shortcuts | listShortCut |
List Archived | listarchive |
Filter |
filter e.g., filter Vegan Vegetarian
|
Unarchive |
unarchive INDEX e.g., unarchive 2
|
Disclaimer: NomNomNotifier only accepts inputs in english without any emojis, any inputs in other languages could cause unexpected behaviour
Features
Notes about the command format:
- Words in
UPPER_CASE
are parameters to be supplied by the user.
e.g., inadd n/NAME
,NAME
is a parameter that can be used asadd n/John Doe
. - Items in square brackets are optional.
e.g.,n/NAME [t/TAG]
can be used asn/John Doe t/Vegan
or simply asn/John Doe
. - 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/Vegan
, ort/Vegetarian t/VIP
. - Parameters can be in any order.
e.g., if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. - Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
, andclear
) will be ignored.
e.g., if the command specifieshelp 123
, it will be interpreted ashelp
. - If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines, as spaces surrounding line breaks may be omitted when copied over to the application.
Viewing help : help
Shows a message explaining how to access the help page.

Figure 1: Shows help message displayed
Format: help
Adding a customer: add
Adds a customer to the contact list.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS pc/POSTAL_CODE [t/TAG]…
- Phone number (with
p/
prefix) should be an 8-digit mainstream Singaporean phone number starting with 9, 8, 7, or 6. - Postal code (with
pc/
prefix) should be a 6-digit number.
Note: Leading and trailing spaces in
NAME
inputs will be automatically removed.


Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 pc/666234
add n/Betsy Crowe t/Vegetarian e/betsycrowe@example.com a/Clementi Ave 5 #02-03 p/72345673 t/VIP pc/123123

Figure 2: Shows customer named Sarah being added
Listing all customers : list
Shows a list of all customers in the contact list.
Format: list

Figure 3: Shows all customers listed
Editing a customer : edit
Edits an existing customer in the contact list.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [pc/POSTAL_CODE] [t/TAG]…
- Edits the person at the specified
INDEX
. The index refers to the number shown in the displayed person list. The index must be a positive integer 1, 2, 3, … - At least one of the optional fields must be provided.
- Each field still needs to follow the restrictions as specified in Add Command.
- Existing values will be updated to the new input values.
- When editing tags, all existing tags for the person will be removed; i.e., adding tags is not cumulative.
- You can remove all the person’s tags by typing
t/
without specifying any tags after it.
Examples:
-
edit 1 p/91234567 e/johndoe@example.com
— Edits the phone number and email address of the 1st person to91234567
andjohndoe@example.com
, respectively. -
edit 2 n/Betsy Crower t/
— Edits the name of the 2nd person toBetsy Crower
and clears all existing tags.

Figure 4: Shows customer details being edited
Locating customers by name: find
The find
command allows users to search for customers by name, phone number, or postal code, with flexible prefix search and multi-criteria functionality.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive.
- Users can search by name, phone number, and postal code simultaneously.
- Partial matches are allowed for names, phone numbers, and postal codes.
- Each keyword can represent a part of a name, phone number, or postal code, allowing flexible search criteria in any order.
Prefix Search by Name
Users can locate customers by entering the beginning letters (prefix) of their names. Multiple people can be located in a single search command by specifying additional prefixes.
Examples:
-
find al
— Finds all customers with names starting with “al”. -
find al ch
— Finds all customers with names starting with “al” or “ch”.
Search by Phone Number
Users can search for customers by entering part or all of their phone number.
Examples:
-
find 9123
— Finds any customers with phone numbers containing “9123”. -
find 98124572
— Finds any customers with the exact phone number “98124572”.
Search by Postal Code
Users can search for customers by entering part or all of their postal code. Postal code inputs for find command should follow the format prefixed by “S” followed by a number.
Examples:
-
find S560123
— Finds any customers with the postal code “560123”. -
find S560
— Finds any customers with postal codes containing “560”.
Simultaneous Search with Multiple Criteria
Users can combine multiple criteria—name, phone number, and postal code—in a single search command for flexible and efficient searching.
Examples:
-
find Alice 9876
— Finds all customers with the name “Alice” or a phone number containing “9876”. -
find 9456 S630123
— Finds all customers with phone numbers containing “9456” or postal code “630123”. -
find S550 Bob
— Finds all customers with postal codes containing “550” or the name “Bob”. -
find S789123 Carl 97621010
— Finds all customers with postal code “789123” or name “Carl” or phone number “97621010”.

Figure 5: Shows multiple people found using prefix search of name, number and postal code
Note: The find
command performs an OR
search across the criteria, meaning that customers matching any of the provided keywords will be returned.
Deleting a customer : delete
Deletes the specified customer from the contact list.
Format: delete INDEX
- Deletes the person at the specified
INDEX
. - The index refers to the number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
list
followed bydelete 2
deletes the 2nd person in the contact list. -
find Betsy
followed bydelete 1
deletes the 1st person in the results of thefind
command.

Figure 6: Shows customer being deleted using the delete command
Deleting customers by postal code: deletePC
- Delete all persons from the contact list with the given postal code.
Format: deletePC POSTAL_CODE
- Delete all persons with the specified
POSTAL_CODE
. - The postal code must be 6 digits
Examples:
-
list
followed bydeletePC 560102
deletes all persons with postal code560102
in the contact list.

Figure 7: Customer being deleted using deletePC command
Clearing all entries : clear
Clears all entries from the contact list.
Format: clear
Adding an order: order
Adds an order to NomNomNotifier.
Format: order ORDER
-
ORDER
must be in lowercase. - If
ORDER
contains uppercase characters, they will be converted to lowercase automatically. -
ORDER
can only contain alphanumeric characters and whitespace.
Note: Leading and trailing spaces in
ORDER
inputs will be automatically removed.
Examples:
-
order cake
— Adds an order called “cake” to NomNomNotifier.

Figure 8: Shows new order being added
Deleting an order: deleteOrder
Deletes an order from NomNomNotifier.
Format: deleteOrder ORDER
-
ORDER
must be in lowercase. - If
ORDER
contains uppercase characters, they will be converted to lowercase automatically. -
ORDER
can only contain alphanumeric characters and whitespace.
Note: Leading and trailing spaces in
ORDER
inputs will be automatically removed.
Examples:
-
deleteOrder cake
— Deletes an order called “cake” from NomNomNotifier.

Figure 9: Shows order being deleted
Listing all orders: listOrder
Shows a list of all orders in NomNomNotifier.
Format: listOrder

Figure 10: Shows all orders being listed
Adding an order history to a customer: put
Adds an order history to a customer.
Format: put ORDER n/NAME
-
ORDER
must be in lowercase. - If
ORDER
contains uppercase characters, they will be converted to lowercase automatically. -
ORDER
can only contain alphanumeric characters and whitespace. - The time recorded by the order history is the time the
put
command is run.
Note: Leading and trailing spaces in
ORDER
inputs will be automatically removed.
Examples:
-
put pizza n/Alex Yeoh
— Adds an order called “pizza” to a customer named “Alex Yeoh”.

Figure 11: Shows order being associated with customer
Listing all order histories of a customer: history
Lists all order histories of a customer, including the time of each order.
Format: history NAME
Note: Leading and trailing spaces in
NAME
inputs will be automatically removed.
Examples:
-
history Alex Yeoh
— Lists order histories of a customer namedAlex Yeoh
.

Figure 12: Shows order history of John Doe
Creating Shortcuts for Tags: addShortCut
Tag shortcuts allow you to create aliases for commonly used tags, saving you time when tagging contacts.
Format: addShortCut al/ALIAS tn/TAG_NAME
- Aliases and Tag Names must be unique. You cannot create two shortcuts with the same alias or tag name for different tags.
- Aliases and Tag Names are not case-sensitive when adding shortcuts.
- Attempting to add an alias or tag name that already exists will display an error.
Examples:
-
addShortCut al/v tn/Vegan
— Adds a shortcut with the alias “v” for the tag name “Vegan”. - Following the previous example:
-
addShortCut al/vn tn/VeGan
— Shows an error, as “Vegan” is already used. -
addShortCut al/v tn/Vegetarian
— Shows an error, as “v” is already an alias.
-

Figure 13: Shows shortcut being added
Deleting Shortcuts for Tags: delShortCut
You can delete an existing shortcut by specifying its alias and tag name.
Format: delShortCut al/ALIAS tn/TAG_NAME
Example:
-
delShortCut al/v tn/Vegan
— Deletes the shortcut for alias “v” and tag name “Vegan”.

Figure 14: Shows shortcut being deleted
Listing Existing Shortcuts: listShortCut
View all current shortcuts to see the mappings of aliases to tag names.
Format: listShortCut

Figure 15: Shows shortcuts being listed
Using Shortcuts for Tagging:
After setting shortcuts, you can tag contacts using these aliases.
Usage:
-
In Edit Command:
edit INDEX t/ALIAS
— Edits the tag for the contact at the specified index with the tag name associated with specified alias. -
In Add Command:
add ... t/ALIAS
— Adds a new contact with the tag name associated with specified alias.
Examples:
- Assuming “v” (Vegan) and “vg” (Vegetarian) shortcuts have been set:
-
edit 1 t/vg
— Tags the contact at index 1 with “Vegetarian”. -
edit 1 t/vg t/v
— Tags the contact at index 1 with “Vegetarian” and “Vegan”. -
add n/John Doe p/98765432 e/johnd@example.com a/311 Clementi Ave 2, #02-25 pc/123456 t/v
— Creates a contact tagged as “Vegan”.
-

Figure 16: Shows shortcut being used to edit tags
Note: While adding shortcuts, aliases and tag names are case-insensitive. However, when using tags (
t/
) in commands, they are case-sensitive.This means that when the shortcut, “v” (alias) is set to “Vegan” (tag name), the shortcut, “V” (alias) cannot be set “VEGAN”.
However, when using the command
edit 1 t/Vegan t/VEGAN
, where the tags of contact at index 1 is being replaced with “Vegan” and “VEGAN”, those two tags are considered different
Example:
- Assuming the shortcut “v” maps to “Vegan”:
-
add ... t/v
— Tags Person with “Vegan”. -
add ... t/V
— Tags Person with “V”.
-
Filtering by Tags: filter
You can filter the customer list by tags or shortcuts to view only the relevant contacts. The filter command supports prefix searches, is case-insensitive, and allows multiple keywords.
Format: filter [TAG1] [TAG2] ...
- Filters the list by the specified tags.
Examples:
-
filter Vegan Vegetarian
— Shows all customers with tags containing keywords listed, “Vegan” or “Vegetarian” (e.g., “VeganPlus”).

Figure 17: Shows filter based on tag: Vegan
Archive customer: archive
Archive a customer so that it doesn’t show when we run list
Format:
archive INDEX
Warning
You must run list
before running archive
Details
-
INDEX
must be positive integer
Assuming there’s at least one person that is unarchived.
list
archive 1
List archived customer: listarchive
Shows all archived customers only in contact list
Format:
listarchive
How to run command:
Assuming there’s at least one person that is archived.
listarchive
Unarchive customer: unarchive
Unarchive a customer so that it shows when we run list
Format:
unarchive INDEX
Warning
You must run listarchive
before running unarchive
Detail
-
INDEX
must be positive integer
Assuming there’s at least one person that is archived.
listarchive
unarchive 1
Downloading Customer Data: download
Exports the currently displayed contact list data as a CSV file with optional tag-based filtering.
Format:
download [t/TAG1] [t/TAG2] ...
Details:
- The command will export only the currently displayed data in the contact list (based on active filters or views) and not the absolute data stored in the contact list.
- Creates a CSV file containing the people that match the specified tags.
- The exported file will be saved in the
./data
subdirectory. - Tags can be specified using the
t/
prefix to filter the download results, allowing for a more customized data export. - If no tags are specified, all currently displayed data will be exported.
- If the filtered result is empty (no matching entries), an error will be returned, and no file will be generated.
Examples:
-
download
— Exports all contacts that exists in displayed list. -
download t/Vegan
— Exports only the contacts tagged as “Vegan” within the displayed list. -
download t/Vegan t/Vegetarian
— Exports contacts tagged as “Vegan” and “Vegetarian” within the displayed list.

Figure 18: Shows entire contact list being downloaded

Figure 19: Shows only people with vegan tag being downloaded
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
NomNomNotifier data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
NomNomNotifier data are saved automatically as a JSON file [JAR file location]/data/addressbook.json
. Advanced users are welcome to update data directly by editing that data file.

Furthermore, certain edits can cause the NoNomNotifier application to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Archiving data files [coming in v2.0]
Details coming soon …
FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the addressbook.json
under data
directory it creates with the addressbook.json
file from the original computer.
Known issues
-
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the
preferences.json
file created by the application before running the application again. -
If you minimize the Help Window and then run the
help
command (or use theHelp
menu, or the keyboard shortcutF1
) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.