User Guide
Table of contents
1. ModCheck
MODCheck 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). If you can type fast, MODCheck can get your contact management tasks done faster than traditional GUI apps.
2. Quick start
- Ensure you have Java
11
or above installed in your Computer. - The first GUI you will encounter is the
ModCheck Login
. - If it is the first time that you are using MODCheck, you will be greeted with the GUI below.
First Time User Welcome GUI
- Enter
yes
if you want to create a password orno
if you want to continue to MODCheck main application. Further explanation on theLogin
feature will be described further down underFeatures
. - You will be greeted with one of GUI shown below that represents the
loading
screen before entering MODCheck’s main application depending on the choice you have made earlier.Default Loading GUI
Password Created Successfully Loading GUI
- A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
MODCheck Main GUI
-
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 d/Friendly
: Adds a contact namedJohn Doe
to ModCheck. -
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 of each command.
3. Features
3.1 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
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
. -
Unrecognised fields such as
b/
orc/
will not be picked up as fields, and will be treated as input.
3.2 Logging in
Login to MODCheck with given passsword that may be empty.
Format: [Password]
[Password]
: Password of user.
Tip: User can leave the textbox empty and press
Enter
to enter inside MODCheck’s main application if user did not create a password to secure MODCheck.
Default Login GUI
3.2.1 Creating Password
Creates a password to secure MODCheck from other unwanted users
Create Password GUI
Format: [Password]
[Password]
: Password of user.
3.3 Viewing help : help
Shows a message explaning how to access the help page.
Format: help
3.4 Adding a person: add
Adds a person contact details to ModCheck.
Compulsory Field:
-
n/
: name of the person
Additional Fields:
-
d/
: description of the person -
e/
: email -
p/
: phone number -
t/
: tags -
m/
: module tags
Tip: A person can have any number of tags or modules (including 0). The order of the fields is not important.
Examples:
add n/John d/Important friend e/leomessi@psg.com p/98101010
add n/Gray d/Coolest Prof ever e/SIUUUUUU@gmail.com p/98070707 t/Prof m/CS2103 m/CS3230
3.4.1 Listing all persons : list
Shows a list of all persons in ModCheck.
Format: list
3.4.2 Viewing a person’s contact details : view
View a person’s contact details.
Format: view <index>
Examples:
-
view 1
returns the contact details of the first person in the list -
view 1 3
returns the contact details of the first and third person in the list
3.4.3 Editing a person : edit
Edits an existing person in ModCheck.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [d/DESCRIPTION] [t/TAG]… [m/MODULE_TAG]…
or edit NAME [n/NAME] [p/PHONE] [e/EMAIL] [a/DESCRIPTION] [t/TAG]… [m/MODULE_TAG]…
- Edits the person at the specified
INDEX
orNAME
. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, … -
edit
followed by a positive integer will be interpreted as an index, and not a name. - 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. - When editing by
NAME
, if there are multiple people with the same specified name, no edit will be done, and a list of people with those specified name will be returned.
Examples:
-
edit Bernice p/91164512
Edits the phone number of the Bernice to be91164512
. -
edit 3 p/90011009 e/bernice512@example.com
Edits the phone number and email address of the 3rd person to be 90011009 and bernice512@example.com respectively -
edit 1 p/91164512
Edits the phone number of the 1st person to be91164512
.
3.4.4 Deleting a person : delete
Deletes the specified person from ModCheck.
Format: delete INDEX
or delete INDEXES
or delete NAME
- Deletes the person at the specified
INDEX
. - The index refers to the index number shown in the displayed person list.
- Any index must be a positive integer …
- When deleting multiple persons with indexes, each index must be separated by a comma, without any whitespace between any index.
-
delete
followed by a positive integer will be interpreted as an index, and not a name. - When deleting by
NAME
, if there are multiple people with the same specified name, no deletion will be done, and a list of people with those specified name will be returned.
Examples:
-
list
followed bydelete Betsy
deletes Betsy if there is only one Betsy in the list. -
list
followed bydelete 1,2,3
deletes the 1st, 2nd and 3rd person in the list. However,list
followed bydelete 1,2, 3
is invalid due to the whitespace between index 2 and 3. -
list
followed bydelete 3
deletes the 3rd person in the list.
3.4.5 Filtering contacts : filter
Filters the contacts based on the arguments provided.
Formats:
filter n/NAME
filter p/PHONE_NUMBER
filter e/EMAIL_ADDRESS
filter d/DESCRIPTION
filter t/TAG
filter m/MODULE_TAG
Examples:
-
filter n/Alex
returns1 contacts listed!
-
filter n/Alex Bernice
returns2 contacts listed!
- The search is case-insensitive. e.g hans will match Hans
- The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
- Only the name is searched.
- Only full words will be matched e.g. Han will not match Hans
- Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang
-
filter p/91031282
returns1 contacts listed!
-
filter e/royb@example.com
returns1 contacts listed!
-
filter d/helpful
returns1 contacts listed!
-
filter d/helpful Newgate
returns2 contacts listed!
- The search is case-sensitive. e.g Helpful will match Helpful and not helpful
- The order of the keywords does not matter. e.g. Helpful Newgate will match Newgate Helpful
- Only the description is searched.
- Only full words will be matched.
- Contacts matching at least one keyword will be returned (i.e. OR search). e.g. Helpful roommate will return Helpful, Helpful friend, lazy roomate
-
filter t/family
returns1 contacts listed
-
filter t/family t/friends t/classmates
returns3 contacts listed!
-
filter m/CS2103
returns1 contacts listed
3.4.6 Undo past commands undo
Undoes previous commands that modified ModCheck.
Undo will only undo commands that have successfully modified the data in ModCheck. For example, a successful add
,
edit
, or delete
command can be undone by the undo command.
Any commands that does not modify the data in ModCheck will NOT be undone. This includes view
, find
, and other
similar commands. Any command that would have modified the data in ModCheck, but was unsuccessful in doing so (eg:
add
duplicate person), will NOT be undone.
Chaining of a few undo commands is supported. Once the undo limit has been reached, the error message No command to
undo!
will be shown. The undo limit is set to 4 by default.
Format: undo
Use redo
to reapply the changes undone by undo.
3.4.7 Redo previously undone commands redo
Redoes previously undone commands.
Redo will reapply any changes previously undone by undo
. The behaviour of redo
when interacting with other
commands is as follows:
- If no
undo
command was previously used, thenredo
will show an error message, and will not change the state of ModCheck. - If a command that changes the data of ModCheck is executed while ModCheck is in an undone state (eg:
undo
->edit 1 t/
), theredo
command will be reset. Using theredo
command will not redo commands that was undone before the modification commands were made. This behaviour ofredo
is consistent with otherundo
andredo
features found in most commercial software today. - Chaining of several
redo
commands, to redo chainedundo
commands, is supported.
Format: redo
3.5 Exporting selected person’s contact details : export
Export a person’s contact details.
Format: export <index>
Examples:
-
export 1
exports the contact details of the first person in the list -
export 1 4
exports the contact details of the first and fourth person in the list
Exported contacts will be stored inside a Json file under the exports
folder found in the same directory as ModCheck
3.5.1 Load another data file load
Load
the contacts in another ModCheck data file into the user’s ModCheck.
Load
will open up a file chooser window, where the user can select the desired json file to be loaded.
Only json files that are generated by ModCheck can be successfully loaded. If a file that ModCheck is unable to read
is loaded, an error will be shown.
The user also has the option to directly specify the absolute file path to be loaded in the text box. The use of the command in this way is not recommended.
The data files that are ModCheck-readable can be obtained through:
- use of
export
command - copying the data file in data/addressbook.json
Note: If there are duplicate persons (ie: persons with the same name but possibly different fields) in ModCheck and the data file to be loaded, the person will be ignored instead of overwritten.
Format: load
OR load <path>
3.6 Dark/Light Mode dark
/ light
Choose your favourite theme !
light
To change to light mode.
dark
To change to dark mode. (default)
3.7 Clearing all entries : clear
Clears all entries from ModCheck.
Format: clear
Examples:
-
list
followed byclear
deletes all the contacts in the list.
3.7.1 Saving the data
MODCheck data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
3.7.2 Editing the data file
MODCheck data are saved as a JSON file. Advanced users are welcome to update data directly by editing that data file.
3.8 Exiting the program : exit
Exits the program.
Format: exit
4. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer. load
the contents of the previous data file into your new ModCheck.
5. Command summary
Action | Format, Examples | |
---|---|---|
Add |
add n/NAME p/PHONE_NUMBER e/EMAIL d/DESCRIPTION [t/TAG]… [m/MODULE_TAG]… e.g., add n/Benedict Tan d/Great Friend e/BenedictTan@gmail.com p/98070707 t/Friend m/CS2103 m/CS3230
|
|
View |
view INDEX e.g., view 2
|
|
Clear | clear |
|
Delete |
delete INDEX or delete INDEXES or delete NAME e.g., delete 3 or delete 1,2,3 or delete James
|
|
Edit |
edit {INDEX or NAME} [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com or edit James e/jameslee@example.com
|
|
List | list |
|
Help | help |
|
Filter |
filter n/NAME filter p/PHONE_NUMBER filter e/EMAIL_ADDRESS filter d/DESCRIPTION filter t/TAG filter m/MODULE_TAG e.g. filter n/Alex e.g. filter p/91031282 e.g. filter e/royb@example.com e.g. filter d/helpful e.g. filter t/family e.g. filter m/CS2103 </br> |
|
Undo | undo |
|
Redo | redo |
|
Load |
load OR load <path>
|
|
Export |
export INDEX e.g., export 2 |
|
Light | light |
|
Dark | dark |