Greetings! Students from the Halls of NUS, are you tired of the hassle of managing your contacts?
Welcome to LookMeUp, your one-stop desktop app that revolutionizes contacts management for NUS students like YOU, with multiple commitments and multiple groups of friends to keep track of! Liking the speed and effectiveness of Command Line Interface (CLI) or visual simplicity of Graphical User Interface (GUI)? LookMeUp caters to your needs, it ensures that managing your contacts is quicker and more efficient than ever before.
So say goodbye to traditional address book applications and say hello to the future of contact management with LookMeUp!
Ensure you have Java 11 or above installed in your Computer.
Download the latest [CS2103T-T12-2][LookMeUp].jar from here.
Copy the file to the folder you want to use as the home folder for the LookMeUp app.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar [CS2103T-T12-2][LookMeUp].jar command
to run the application.
A 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.
For users who are familiar with our app, or simply wish to get a quick reference to our commands, feel free to refer to the Command Summary below! Else, you can refer to the Features section for a detailed explanation of each command.
TIP:
Syntax of Commands:
Words in UPPER_CASE are the parameters to be supplied by the user.
e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.
Items in square brackets are optional.
e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/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/friend, t/friend t/family etc.
Parameters can be in any order.
e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.
Extraneous parameters for commands that do not take in parameters (such as addbystep, help, list, exit and clear) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
TIP:
swot will be interpreted as sortaddystep will be interpreted as addbystepUp and Down arrow keys to navigate through the commands that you have previously entered.WARNING:
help
Shows a message explaining how to access the help page.

Format: help
addAdds a person to the address book.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
Examples:
add n/Taylor Sheesh p/98765432 e/taytay@taylor.com a/Rhode Islandadd n/Ariana Grenade t/friend e/Arianator@ari.com a/Washington D.C. p/88883333 t/EternalSunshineTip:
Important:
@).Note:
Why are there alphanumeric restrictions on the Email and Tag inputs, and how does it help YOU?
All NUS student emails are restricted to alphanumeric characters as with both the default NUSNET email and the FriendlyMail guidelines. This restriction ensures additional safety that the email entered is an NUS student email, catching any accidental typos of non-alphanumeric characters.
Similarly, tags (in the context of classifying by interest groups, committees etc.) are expected to be alphanumeric, thus serves as another safety net.
Warning:
addbystep
To streamline the process of adding contacts, addbystep command offers user-friendly interface that prompts you for each required field
in the address book entry.
While this simplifies the data entry process, you will still need to manually copy cp and paste the final result into the command box.
Format: addbystep
Note:
addbystep does not support the filling of tags when adding a new contact.add command.addbystep only helps you to format the command correctly, it does not help to check if the person that you are
adding is a duplicate. You have to copy the command to your clipboard and paste it into LookMeUp to verify if the
person is non-duplicate.listShows a list of all persons in the address book.
Format: list
editEdits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive number 1, 2, 3, …t/ without
specifying any tags after it.Examples:
edit 1 p/83838383 e/Arianana@nana.com Edits the phone number and email address of the 1st person to be 83838383 and Arianana@nana.com respectively.edit 2 n/Billie Eyelashes t/ Edits the name of the 2nd person to be Billie Eyelashes and clears all existing tags.Note:
Editing a contact with the same value will still be considered a successful edit, and LookMeUp will prompt a "successful" message.
LookMeUp will display the entire contact fields in the "successful" message (shown below).

findFinds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
ariana will match ArianaAriana Eyelash will match Eyelash ArianaAria will not match ArianaOR search).
e.g. Ariana Sheesh will return Ariana Grenade, Taylor SheeshExamples:
find Taylor returns Taylor Sheesh and Taylor Laundryfind Billie Sheesh returns Billie Eyelash, Taylor Sheesh
removeRemoves a person based on index, and confirms removal of the spotlighted contact before actual removal.
Format in 2 steps:
remove INDEX
example: remove 3

INDEX refers to the index number shown in the displayed person list.positive number 1, 2, 3, … and can only be as large as the index of the last contact in
the current list (be it the default or filtered).

Note:
If you'd like to remove a different contact, e.g. at index 2 of the original list, you cannot enter
remove 2 since the current list is shortlisted to only the single contact at the original index 3 to prepare for safe removal.
You should abort the removal process directly with a no confirmation first, then proceed with remove 2 to remove.
Confirmation: yes/no
If yes:
Expected result:

If no:
Expected result:

Important:
How to deal with wrong/unknown command(s) entered in between the workflow of remove INDEX and yes/no
confirmation?
NOTE: LookMeUp will NOT return to the default list upon this invalid command entry, due to uncertainty of whether user wishes to continue with removal process or change to perform another command!
Some common scenarios:
remove 1 again, it serves as a safety check telling LookMeUp that you still wish to remove
the current shortlisted contact, and then proceed with yes / no confirmationlist to return to the default list, and then proceed with your next desired commandTip:
What if you wish to execute a different command after the remove INDEX, before yes / no confirmation?
You may enter another VALID command in between the remove INDEX and the yes / no confirmation
(e.g. after remove 2, you can enter add n/John p/98765432 e/j@gmail.com a/677405)
then the add command will be executed, while the removal will be aborted.
However, it is ADVISED to abort the removal process directly with a no confirmation first, as that
would return you the full default list of contacts, where you may then proceed with your desired command(s).
Tip:
How to potentially SPEED UP the contact removal process, especially when LookMeUp gets populated with MANY contacts?
Make use of the contact filtering feature of find and use it together with the remove commands!
For example: find rachel (which shortlists all contact(s) matching "rachel") followed by remove 1 will prompt a
confirmation message to confirm the removal of the 1st contact in the filtered results of the find command.
This is especially useful if you wish to remove a contact without having to scroll for its index, or if you have multiple contacts with the same part(s) of a name and wish to shortlist e.g. all "rachel"s first before deciding which to remove by the index of the filtered list.
undoFor any command that changes the universal list of contacts e.g. add, remove, clear, overwrite, duplicate
and edit, the undo command will revert the state of the contact list prior to the execution of a command.
Format: undo
For example, referring to the previous command, assuming you have removed a contact, you can type undo to recover the
removed contact:

The removed contact will then be restored, even to its original index.

Similarly, undoing after adding a contact would mean reverting the contact list's state back to before the contact
was added.
Important: Once you closed the application, all your changes will be saved and all your past command history will be erased.
redoRedo the most recent undo command.
Format: redo
For example, entering redo after previous undo example will revert the contacts to before undo was being executed.
Important: redo only works when undo was called.
If there were no commands undone, entering redo will prompt an error.
copyCopies a person’s information such as name, phone number, address and email into your OS clipboard. This feature allows you to copy more than one piece of a contact’s information, and allows you to specify the order of a person’s information to be copied. If multiple fields are provided, results are separated by a single whitespace.
Note: Duplicated fields that are specified are safely process and copied
Format: copy INDEX FIELD(s)
Example:

Based on the sample contact above:
| Sample Commands | Details | Results |
|---|---|---|
copy 4 name | Copies the name of contact indexed 4 | Taylor Sheesh |
copy 4 name address | Copies the name and address of contact indexed 4 | Taylor Sheesh Rhode Island |
copy 4 phone email | Copies the phone and email of contact indexed 4 | 98765432 taytay@taylor.com |
copy 4 email email | Copies the email of contact indexed 4 (Duplicated fields are ignored) | taytay@taylor.com |
copy 4 nnamee phone | Incorrect field detected | N.A. |
sortSorts the entries in the address book based on the given condition.
Format: sort KEYWORD
KEYWORDs : name, tag Name: Sorts the entries based on lexicographical order of names.Tag: Sorts the entries based on lexicographical order of tags.Note:
When sort tag is executed, LookMeUp sorts tags by
numbering, followed by contacts without tags, and finally alphabetically

filterShows a list of persons in the address book, filtered by specified tag(s).
Format: filter TAGNAME
Example: filter 13

duplicateAdds the new contact to the address book, assuming that a contact with an identical name already exists.
Format: duplicate n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
Example:
Say you have a list of contacts like the following, and you wish to add a contact with an identical name to the first entry Taylor Sheesh

You will encounter the following error using the add command

To duplicate the contact, run the following duplicate command and enter to see the results.


overwriteOverwrites an existing contact in the address book, provided that a contact with an identical identity already exists in the address book.
Format: overwrite INDEX n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
INDEX refers to the index number shown in the displayed person list, that represents the target contact to be overwrite.Example:
Say you tried to add a contact with an identical name to the first entry Taylor Sheesh

You will encounter the following error using the add command

In the case where you actually intended to overwrite the contact instead, run the following overwrite command and enter to see the results.


clearClears all entries from the address book.
Format: clear
exitA pop-up would be shown that prompts you for confirmation to exit the address book.
Note:
Windows users, you may press ENTER/SPACE to confirm your choice.
MacOS users, please press only SPACE to confirm your choice.
For more info, kindly refer to here.
Format: exit
AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
AddressBook 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.
Caution:
If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the AddressBook to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
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 AddressBook home folder.
preferences.json file created by the application before running the application again.| Command | Details |
|---|---|
add n/… p/… e/… a/… [t/TAG]… | Adds a contact into the Address Book. Example: add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 |
addbystep | Prompts each required field in the address book entry |
list | List all contacts |
filter TAGNAME(s) | Shows a list of persons in the address book, filtered by specified tags. Example: filter friends family |
find KEYWORD(s) | Finds persons whose names contain any of the given keywords. Example: find John |
sort KEYWORD | Sorts contacts based on the input condition. KEYWORDS: NAME,TAG |
remove INDEXyes/no | Safe removal of contact based on the index of the contact keyed in, followed by confirmation step before actual removal. Example: remove 3 name |
edit INDEX [n/…] [p/…] [e/…] [a/…] [t/TAG]… | Adds a contact into the Address Book. Example: add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 |
duplicate n/… p/… e/… a/… | Adds the new contact to the address book, assuming that a contact with identical identity already exists. Example: duplicate n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 |
overwrite INDEX n/… p/… e/… a/… [tTAG]… | Overwrites an existing contact in the address book, assuming that a contact with an identical identity already exists. Example: overwrite 2 n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 |
copy INDEX FIELD(s) | Copies a contact's information e.g. name, phone, email and address into OS clipboard. Example: copy 4 name |
undo | Undo the previous command entered. |
redo | Reverses the previous undo command. |
clear | Deletes all contacts |
exit | Exits and closes the program. |