User Guide
SpamEZ is a desktop app for managing contacts, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). For fast typists, SpamEZ can complete contact management tasks faster than traditional GUI apps.
Contents
- Quick start
-
Features
- Viewing help:
help
- Adding a person:
add
- Listing all persons:
list
- Editing a person:
edit
- Adding a remark:
remark
- Blacklisting or un-blacklisting a contact:
blist
- Blacklisting or un-blacklisting multiple contacts:
massblist
- Deleting a contact:
delete
- Deleting multiple contacts:
massdelete
- Clearing all entries:
clear
- Collecting details from contacts:
collect
- Sorting entries by name:
sort
- Finding persons by details:
find
- Changing view type to light mode:
light
- Changing view type to dark mode:
dark
- Undoing previous operations:
undo
- Exiting the program:
exit
- Reviewing previous commands
- Saving the data
- Editing the data file
- Viewing help:
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
spamez.jar
from here. -
Copy the file to the folder you want to use as the home folder for SpamEZ.
-
Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
-
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.
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 m/email
: Adds a contact namedJohn Doe
to the contacts list. -
delete
3
: Deletes the 3rd contact shown in the current list. -
clear
: Deletes all contacts. -
blist
2
: Blacklists the 2nd contact shown in the current list. -
exit
: Exits the app.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times.
e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
,dark
,light
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
. -
Commands will only handle
INDEX
values from 1 to 2147483647 (inclusive). This number represents the largest possible number of contacts that can be stored using the current implementation of SpamEZ. Values out of this valid integer range will be treated as invalid inputs.
Notes about the app limitations:
-
Names can only include alphanumeric characters.
-
Phone numbers can only contain numbers.
-
Uniqueness of each contact is decided by their email. As such, no 2 contacts can share the same email.
-
Tags cannot contain spaces.
-
The following images represent email, phone and address respectively, which are the only 3 modes of contact supported.
Viewing help : help
Shows a message explaining how to access the help page.
Format: help
Adding a person : add
Adds a person to the contacts list.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MODE_OF_CONTACT [t/TAG]…
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 m/email
add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 m/phone t/criminal
Listing all persons : list
Shows a list of all contacts.
Format: list
Editing a person : edit
Edits an existing person in the contacts list.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [m/MODE_OF_CONTACT] [t/TAG]…
- Edits the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a valid positive integer 1, 2, 3, … - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the person will be removed i.e adding of 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 to be91234567
andjohndoe@example.com
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the 2nd person to beBetsy Crower
and clears all existing tags.
Adding a remark : remark
Adds an optional remark to a person in the address book. If the person already has a remark, the existing remark will be replaced.
Format: remark INDEX r/REMARK
- Adds or replaces the remark of the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a valid positive integer 1, 2, 3, … - By default, all newly added contacts will be displayed as having ‘No remark’.
- You can remove a person’s remark by typing
r/
without specifying any remark after it. This will cause the person to be displayed as having ‘No remark’ again.
Example:
remark 3 r/Currently on Stay Home Notice
Blacklisting or un-blacklisting a contact : blist
Blocks specific contacts, to specify that they do not want to be contacted. If the contact is already blacklisted, they will be un-blacklisted. Blacklisted contacts are displayed with a black background, as shown below.
Format: blist INDEX
- Changes the blacklist status of the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a valid positive integer 1, 2, 3, … - By default, all newly added contacts will be displayed as un-blacklisted.
Example:
blist 1
Blacklisting or un-blacklisting multiple contacts : massblist
Blacklist or un-blacklist all contacts within the specified index range (inclusive).
Format: massblist START-END b/BLACKLIST_OR_UNBLACKLIST
- Changes the blacklist status of all contacts whose
INDEX
lies between the specified index range to either ‘blacklist’ or ‘unblacklist’ depending on the input parameter. - The keyword (
blacklist
andunblacklist
) must be in lower case. - The index refers to the index number shown in the displayed person list. Both the start index and end index must be valid positive integers 1, 2, 3, …
- Start index must be strictly smaller than the end index and the end index cannot be larger than the number of contacts currently displayed in the list.
- The index range must be specified before the keyword.
e.g.massblist b/blacklist 4-5
is treated as an invalid input.
Example:
- Suppose you start with the following contact list:
Executing
massblist 1-3 b/blacklist
will blacklist the first three contacts. Since the second contact is already blacklisted, it remains the same.
Deleting a contact : delete
Deletes the specified person from the contacts list.
Format: delete INDEX
- Deletes the person at the specified
INDEX
. - The index refers to the index number shown in the displayed person list.
- The index must be a valid positive integer 1, 2, 3, …
Examples:
-
list
followed bydelete 2
deletes the 2nd person in the contacts list. -
find Betsy
followed bydelete 1
deletes the 1st person in the results of thefind
command.
Deleting multiple contacts : massdelete
Deletes all contacts within the specified index range (inclusive).
Format: massdelete START-END
- Deletes all contacts whose
INDEX
lies between the specified index range. - The index refers to the number shown in the displayed person list. Both the start index and end index must be valid positive integers 1, 2, 3, …
- Start index must be strictly smaller than the end index and the end index cannot be larger than the number of contacts currently displayed in the list.
Example:
massdelete 5-12
Clearing all entries : clear
Clears all entries from the contacts list.
Format: clear
Collecting details from contacts : collect
Collects the specified details of all contacts in the displayed person list. This is for ease of copying contact details into recipient lists. The type of detail is specified by the prefix provided. Details will be separated by the given separator, or by a semicolon if unspecified. Collected details end with the separator to allow further manual addition of details.
Format: collect [n/] or [p/] or [e/] or [a/] [s/SEPARATOR]
- Exactly one of the type of detail prefix must be provided.
The corresponding fields are as follows.
-
n/
: Name -
p/
: Phone -
e/
: Email -
a/
: Address
-
- The separator will ignore leading and trailing spaces. As such, it is not possible to start or end the separator with a space.
- Words following any prefix other than
s/
will be ignored. - Unrelated prefixes will be ignored.
Examples:
collect e/
collect n/ s/,
Sorting entries by name : sort
Sorts the contacts in the entire address book by name in alphabetical order.
Format: sort ASCENDING_OR_DESCENDING
-
ascending
sorts the list in ascending alphabetical order anddescending
sorts the list in descending alphabetical order. - The keyword (
ascending
ordescending
) must be in lower case. - Both the currently displayed list and the entire contact list will be sorted.
Examples:
sort ascending
sort descending
Finding persons by details: find
Finds persons whose attributes (except remark) contain any of the given keywords.
Format: find [n/NAME_KEYWORDS] [t/TAG_KEYWORDS] [a/ADDRESS_KEYWORDS] [e/EMAIL_KEYWORDS] [p/PHONE_NUMBERS] [b/IS_BLACKLISTED] [m/MODE_OF_CONTACT]
- At least one of the parameters must be included as the parameters.
- Parameters, if provided, may not be empty. In other words, commands such as
find n/
orfind n/abc t/
are invalid. - The search is case-insensitive. e.g
hans
will matchHans
. - The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
. - For name, tag and address parameters, only full words will be matched e.g.
Han
will not matchHans
. - For email and phone parameters, partial matches are allowed, e.g. for phone number,
8123
will match81234567
. - Persons matching at least one keyword of each provided attribute will be returned.
e.g.
n/Hans Bo
will returnHans Gruber
,Bo Yang
,Bo Hans
, whilen/Hans Bo t/friends
will only returnHans Gruber
andBo Yang
if onlyHans Gruber
andBo Yang
are tagged withfriends
. - Blacklist parameter (
b/
) only acceptstrue
orfalse
. - Mode of contact parameter (
m/
) only acceptsphone
,email
oraddress
. - Blacklist and mode of contact parameters only take in the first keyword. For example, if
b/true blah blah
is inputted, it will be interpreted asb/true
.
Examples:
-
find n/John
returnsjohn
andJohn Doe
-
find n/alex david
returnsAlex Yeoh
,David Li
-
find n/alex david t/family
returnsDavid Li
-
find n/bernice b/true
returnsBernice Yu
Changing view type to light mode : light
Changes the color theme to a light theme.
Format: light
Changing view type to dark mode : dark
Changes the color theme to a dark theme.
Format: dark
Undoing previous operations: undo
Undo the changes done to the list of contacts.
Format: undo
- This command only applies to the commands that make changes to the list of contacts, e.g.
add
,edit
,delete
etc.
Exiting the program : exit
Exits the program.
Format: exit
Reviewing previous commands
Users can view the commands they have inserted previously using up and down arrow keys. To re-execute the command, users simply need to press enter.
Saving the data
SpamEZ 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
SpamEZ data are saved as a JSON file [JAR file location]/data/addressbook.json
.
Advanced users are welcome to update data directly by editing that data file.
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 SpamEZ home folder.
Command summary
Action | Format, Examples |
---|---|
Add |
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS m/MODE_OF_CONTACT [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 m/email t/friend t/colleague
|
Blacklist |
blist INDEX e.g., blist 2
|
Mass Blacklist |
massblist START-END b/BLACKLIST_OR_UNBLACKLIST e.g., massblist 3-10 b/blacklist
|
Clear | clear |
Collect |
collect [n/] or [p/] or [e/] or [a/] [s/SEPARATOR] e.g., collect e/ s/,
|
Delete |
delete INDEX e.g., delete 3
|
Mass Delete |
massdelete START-END e.g., massdelete 4-12
|
Edit |
edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com
|
Find |
find [n/NAME_KEYWORDS] [t/TAG_KEYWORDS] [a/ADDRESS_KEYWORDS] e.g., find n/James Jake t/classmates a/Singapore
|
Help | help |
List | list |
Remark |
remark INDEX r/REMARK e.g., remark 5 r/Currently on leave of absence
|
Sort |
sort ASCENDING_OR_DESCENDING e.g., sort ascending
|
Light | light |
Dark | dark |
Undo | undo |
Exit | exit |