User Guide
E-Lister is a comprehensive desktop app, specially designed for insurance agents and other financial professionals to streamline the management of their customers’ contact information. This powerful tool provides users with:
- Basic operations (e.g. add, edit, delete, tag, find) to work on contact details via CLI (Command Line Interface) and user-customized tags for labeling.
- Other useful operations (e.g. filter, mass operation, freeze) for advanced users to handle data in meaningful ways.
- Ability to import and work on existing CSV files.
- Additional commands (e.g. undo, shortcut) for a smooth, personalised experience.
- An extensive yet friendly user interface.
- Quick start
- Interface Navigation
- Features
- Additional Info on the User Interface
-
Exiting the program :
exit - FAQ
- Command use cases
- Command summary
Quick start
-
Ensure you have Java
11or above installed on your Computer. -
Download the latest
eLister.jarfrom here. -
Copy the file to the folder you want to use as the home folder for E-Lister.
-
Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar eLister.jarcommand to run the application.
A GUI similar to the picture 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
helpand 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 i/10000: Adds a contact namedJohn Doeto the E-Lister. -
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.
Interface Navigation

The user interface consists of five parts: input and output, along with three view boxes for the person list, applying filters, and input log. You can see these sections’ descriptions below:
| Section | Description |
|---|---|
| Input box | This is where you key in your command for E-Lister. |
| Output box | This box displays E-Lister’s responses to your input. |
| Person list | This is a panel containing the list of people and their information. |
| Filter box | This box displays all currently applying filters on the person list. See more |
| Input log | This is where you can see all your successfully executed commands. See more |
Inside the Person list, each person has a Person Card, this is the breakdown of a person card:

Features
Some notices before going through this guide:
-
Any notation with a letter followed by a
/is referred to as a input field for user to key in.
e.g.t/TAG,n/NAME,p/PHONE_NUMBER, etc -
Words in
UPPER_CASEare the input values for you to supply.
e.g. inadd n/NAME,NAMEis an input value which can be used asadd n/John Doe. -
Words separated by
|indicate that you should only pick one of the keywords.
e.g.all|shownindicates that you may enter eitherallorshown. -
Items in square brackets are optional.
e.g.n/NAME [t/TAG]can be used asn/John Doe t/friendor 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/friend,t/friend t/familyetc. -
Input can be in any order.
e.g. both the commands followingn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEare acceptable with the same effect. -
If a input field is expected only once in the command but you specified it multiple times, only the last occurrence of the input field will be taken.
e.g. if you specifyp/12341234 p/56785678, onlyp/56785678will be taken. -
Extraneous input values for commands that do not take in input values (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp.
Viewing help : help
Shows a help message detailing the various commands available in E-Lister. It also includes a link to this user guide so you do not need to remember this website’s address!
Format: help

Basic Operations
Adding a person: add
Adds a person to E-Lister.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS i/INCOME [t/TAG] [t/MORE_TAGS]…
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/10000add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Avenue p/1234567 t/LOWERCLASS i/10000add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 i/400add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Avenue p/1234567 i/200 t/LOWERCLASS

Deleting a person : delete
Deletes the specified person from E-Lister.
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 positive integer 1, 2, 3, …
Examples:
-
listfollowed bydelete 2deletes the 2nd person in E-Lister. -
find Betsyfollowed bydelete 1deletes the 1st person in the results of thefindcommand. -
delete 6will delete the 6th person in E-Lister (which is Betsy Crowe in this example).
Editing a person : edit
Edits an existing person in the E-Lister.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [i/INCOME] [t/TAG] [t/MORE_TAGS]…
- 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 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. - Income field can only have 5 decimals and smaller than 1 Trillion.
Examples:
-
edit 1 p/91234567 e/alex_clone@example.comEdits the phone number and email address of the 1st person to be91234567andalex_clone@example.comrespectively.
-
edit 2 n/Betsy Crower t/Edits the name of the 2nd person to beBetsy Crowerand clears all existing tags.
Locating persons by name: find
Finds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive.
e.g.
hanswill matchHans - The order of the keywords does not matter.
e.g.
Hans Bowill matchBo Hans - Only the name is searched.
- Partial words will also be matched.
e.g.
Hanwill matchHans - Persons matching at least one keyword will be returned (i.e.
ORsearch). e.g.Grub Yawill returnHans Gruber,Bo Yang
Examples:
-
find JohnreturnsjohnandJohn Doe -
find alex davidreturnsAlex Yeoh,David Li
-
find mart OnreturnsMartin Henz,Ong Wai Kit
Listing all persons : list
Shows a list of all persons in the E-Lister.
Format: list

Why do we need this command? This is mostly used to refresh the whole list of contacts stored in the app so far after you use filter command (see later).
Clearing all entries : clear
Clears all entries from E-Lister.
Format: clear
Tag Operations
Adding a tag : tag
Adds a tag to any given person stored in E-Lister.
Format: tag INDEX TAG
- Adds
TAGto the person at the specifiedINDEX. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
listfollowed bytag 2 bankeradds the tag “banker” to the 2nd person. -
tag 1 billionairewill add the tag “billionaire” to the 1st person (which is Alex in this example).
Deleting a tag : delete_tag
Deletes a tag on a person.
Format: delete_tag INDEX TAG
- Deletes
TAGfrom the person at the specifiedINDEX. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
- The tag must exist.
Examples:
-
listfollowed bydelete_tag 3 teacherdeletes the tag “teacher” from the 3rd person(only if there’s a person with index 3 and carrying tag “teacher”). -
delete_tag 1 t/billionairewill delete the tag “billionaire” from the 1st person (which is Alex in this example).
Advanced Operations
Filter by fields : filter
Search for persons whose fields all match one or more keywords.
- Note that these keywords are case-sensitive, unlike
find.
Format: filter [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [i/INCOME] [t/TAG] [n/MORE_NAMES] ...
- Displays the data of persons who:
- For every field you entered one or more keywords for,
- that person’s field matches at least one of those keywords.
- For every field you entered one or more keywords for,
Examples:
-
filter t/bankwill list all persons with a tag containing “bank”, such asbanker,bankrupt, orriverbanks. -
filter p/8765 e/hotmailwill list all persons with a phone number containing “8765”, and an email address containing “hotmail”. -
filter e/org e/netwill list all persons with email addresses containing “org” or “net”.
Freezing the display : freeze
Freezes the current selection of persons displayed.
- By default, persons which no longer satisfy the conditions of the most recent
find/filterare automatically dropped from the visible list.- This can happen e.g. if you
filteredfor a tagx, but then deletedxfrom a displayed Person. -
freezetemporarily prevents persons from being hidden from view in such a scenario.
- This can happen e.g. if you
The visible details within each person will still be updated, if modified.
Format: freeze
- Commands that reference indices / the list of persons being displayed will be subject to
freeze, and will act on the display as it appears to you. - The effects of a
freezeare withdrawn when a newlist,find, orfiltercommand is entered.
Unfreezing the display : unfreeze
Unfreezes the current selection of persons displayed. Any changes to the selection which were previously withheld
due to a freeze will now be applied.
Format: unfreeze
Mass operations : mass
Takes in a command typically applied to a single target index, and applies it to all displayed persons.
Format: mass COMMAND [ARGS_WITHOUT_INDEX]
Examples:
-
mass tag Noticedwill tag all displayed persons with “Noticed”. -
mass edit p/7773354will edit all displayed persons to have the phone “7773354”. -
mass deletewill delete all displayed persons.- Contrast with
clear, which deletes all persons, whether displayed or not.
- Contrast with
Undoing a command : undo
Undo one or more of the most recent commands done.
Format: undo [NUM]
- Undoes
NUMof the most recent commands, or the 1 most recent ifNUMis not specified.- If specified,
NUMmust be a positive integer less than 2^31 ≈ 2 billion.
- If specified,
- Only undoes commands which affect data or the display. For example:
-
edit,filter,freeze, andimportcan be undone -
helpandexportcannot be undone;undowill skip them for the next most recent command.
-
- Only undoes commands executed within the current session.
- If the program is closed and relaunched, commands performed before the relaunch will no longer be undoable, even if they remain visible on the Input Log.
Examples:
-
undo 3will undo the last 3 commands.
Redoing a command : redo
Redo one or more of the most recent commands undone.
Format: redo [NUM]
- Redoes
NUMof the most recent undone commands, or the 1 most recent ifNUMis not specified.- If specified,
NUMmust be a positive integer less than 2^31 ≈ 2 billion.
- If specified,
- Only redoes commands undone within the current session.
- If the program is closed and relaunched, commands undone before the relaunch will no longer be redoable, even if they remain visible on the Input Log.
Examples:
-
redo 3will redo 3 commands.
Creating a shortcut : shortcut
Allows the user to create a shortcut for a command; this shortcut can be used in place of the command.
The shortcut will be saved and can still be used when the user exits E-Lister and re-opens it.
Format: shortcut ORIGINAL_COMMAND SHORTCUT
- The shortcut cannot be the same as any existing command or shortcut.
- The shortcut should only consist of alphanumeric characters.
Examples:
-
shortcut list lstwill allow the user to inputlstin place oflist.
Importing and Exporting CSV Files
Import data from CSV : import
Opens a file chooser to import a CSV file containing contact information.
Format: import [combine|reset]
- If
combineis entered, the existing data will be combined with the imported dataset. - If
resetis entered, the existing data will be removed and replaced with the imported dataset. - If neither keyword is entered, the behaviour will be the same as
combine.
Note: Your CSV file must have the following headers in this order: Name, Phone, Email, Address, Income, Tags

Export data to CSV : export
Opens a file chooser which allows you to save the data to a CSV file.
If you wish to export to a new file, you may type its intended name in the File Name box and click Save. This will create a new CSV file with the exported data. Otherwise, you can select an existing CSV file to overwrite.
Format: export [shown|all]
- If
shownis entered, only the current selection of persons will be exported. - If
allis entered, all persons will be exported, including those who are not displayed due to filters. - If neither keyword is entered, the behaviour will be the same as
shown.

Additional Info on the User Interface
Filter Box
On the top-right corner of the display, you can see a small box where all the filters that were used on your persons list will be displayed.

Why do we need this? Imagine having to obtain a specific list of contacts with the tags upperClass, healthy, premiumPlanCandidates, healthPlanCandidates, and returningCustomers. It’ll be useful to have all the current filters displayed so that you know which ones you have already applied!
Input Log
Below the Filter Box, an Input Log box displays commands you have previously entered.

Why do we need this? Keeping a record of all commands executed has several advantages.
- It provides a historical log of all actions taken by you, which can be useful in case of any disputes or discrepancies that may arise in the future.
- It allows you to keep track of your current progress, which is especially helpful when managing a large number of tasks so you don’t lose track of your current task!
- You may also use your input history to identify areas for improvement in your approach to handling contact data, allowing you optimize productivity over time!
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
E-Lister data is saved on the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
E-Lister data is saved as a JSON file [JAR file location]/data/elister.json. Advanced users are welcome to update data directly by editing that data file.
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 on the another computer and overwrite the empty data file it creates with the file that contains the data of your previous E-Lister home folder.
Command use cases
| Action | use case |
|---|---|
| Help | When you need to access the user guide for assistance on using the application or to learn more about its features. |
| Add | When you want to add a new client or contact with their details, such as name, phone number, email, address, income, and tags. |
| Delete | When you need to delete a client or contact from your list, either because they are no longer relevant or you have entered their information incorrectly. |
| Edit | When you need to update a contact's information, such as their name, phone number, email, address, income, or tags. |
| Find | When you want to find a specific contact or group of contacts using one or more keywords, such as their name, tag, or other attributes. |
| List | When you want to view your entire list of contacts, either for reference or to find a specific contact. |
| Clear | When you want to delete all contacts in your list, such as when starting a new project or when you need to remove all outdated information. |
| Tag | When you want to label a contact with a specific tag, such as "friend", "client", or "prospect", to help categorize and organize your contacts. |
| Delete Tag | When you need to remove a tag from a contact, either because it is no longer relevant or was assigned incorrectly. |
| Filter | When you want to view a specific subset of contacts based on their attributes, such as name, email, address, income, or tags. |
| Freeze |
When you are modifying your contact list and you have a filtered applied using the filter command, you can use freeze to prevent the contacts from being removed. For example, if you used filter t/friend and you execute delete_tag 2 friend, the contact with index 2 will no longer show up in your list as it no longer has the tag friend . However freeze will make it such that it will continue to show up in the list.
|
| Unfreeze | When you want the contact list to be updated. |
| Mass | When you want to perform a bulk action, such as assigning a tag or deleting multiple contacts simultaneously. |
| Undo | When you have made a mistake or want to reverse a recent change to your contact list. |
| Redo | When you have undone an action and later decide that you want to reapply the change. |
| Shortcut | When you want to create a keyboard shortcut for a command you use often, making it faster and more convenient to execute. |
| Import | When you have contact information stored in a CSV file and want to import it into the application. |
| Export | When you want to export your contact list to a CSV file for backup, sharing, or use in another application. |
Command summary
| Action | Format, Examples |
|---|---|
| Help | help |
| Add |
add n/NAME p/PHONE_NUMBER e/EMAIL i/INCOME a/ADDRESS [t/TAG]… e.g. add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague i/10000
|
| Delete |
delete INDEXe.g. delete 3
|
| Edit |
edit INDEX [n/NAME] [p/PHONE_NUMBER] [i/INCOME] [e/EMAIL] [a/ADDRESS] [t/TAG]…e.g. edit 2 n/James Lee e/jameslee@example.com
|
| Find |
find KEYWORD [MORE_KEYWORDS]e.g. find James Jake
|
| List | list |
| Clear | clear |
| Tag |
tag INDEX TAG e.g. tag 2 MIDDLE_CLASS, tag 5 teacher
|
| Delete Tag |
delete_tag INDEX TAG e.g. delete_tag 2 MIDDLE_CLASS, delete_tag 5 teacher
|
| Filter |
filter [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [i/INCOME] [t/TAG] [n/MORE_NAMES] ...e.g. filter e/.*\.org$ n/rin e/.*\.net$
|
| Freeze | freeze |
| Unfreeze | unfreeze |
| Mass |
mass COMMAND [ARGS_WITHOUT_INDEX]e.g. mass tag Noticed
|
| Undo | undo [NUM] |
| Redo | redo [NUM] |
| Shortcut | shortcut |
| Import | import [combine|reset] |
| Export | export [shown|all] |