User Guide
Address Book Command Line Interface (ABCLI) is a desktop application tailored for real estate agents who value the speed and efficiency of managing workflows through a Command Line Interface (CLI). With the added support of a Graphical User Interface (GUI) for visual clarity, ABCLI empowers agents to handle contacts, schedule meetings, and organize property details significantly faster than traditional GUI-only applications. If you are a fast-typing real estate agent, ABCLI is designed to keep up with your speed, boosting your productivity.
- How to use the User Guide
- Application Overview
- Quick Start
- Features
- General
- Buyers
- Meet Ups
- Properties
- FAQ
- Known issues
- Glossary of Terms
- Command summary
- Acceptable Value Ranges for Parameters
This User Guide is designed to help you navigate and make the most of ABCLI. It introduces the application’s features and guides you from getting started to mastering each function, all without requiring any prior knowledge. Explore each section below:
-
Table of Contents: Located at the start of the guide, this is useful whenever you want to locate a specific section or topic quickly.
-
Application Overview: Refer to this section if you are new to ABCLI or want to understand its purpose and primary capabilities. It is ideal for getting a high-level understanding of how ABCLI can support your real estate tasks.
-
Quick Start: Use this section if you are setting up ABCLI for the first time. It provides step-by-step instructions to get the app running.
-
Features: This is your go-to section as you start using ABCLI. Divided into General, Buyers, Meet Ups, and Properties, it details how to use each feature, including command formats, tips, and examples. Refer here whenever you need guidance on operating any part of the app.
-
FAQ: Consult this section if you encounter issues or have questions about ABCLI’s functionality. It provides answers to common questions and can help resolve typical challenges.
-
Known Issues: If ABCLI behaves unexpectedly, refer to this section to see if it’s a known issue. This section lists potential problems and workarounds, helping you troubleshoot effectively.
-
Glossary: If you encounter any unfamiliar terms while using ABCLI or reading the guide, refer to the Glossary. It defines key terms to ensure clarity as you navigate the app.
-
Command Summary: Ideal as a quick reference guide, this section provides an overview of all available commands. Use it when you need to check the format or options for any command without going into full detail.
-
Acceptable Ranges for Parameters: This section provides a handy reference for troubleshooting, listing the valid input ranges and constraints for each command. Use it to ensure your command inputs satisfy the required constraints.
Throughout the guide, you will see display boxes with additional information:
Key Insights
Refer to these boxes for additional information.
ABCLI is divided into three core modes, each dedicated to a key aspect of a real estate agent workflows:
-
Buyer Mode: Organize prospective buyers with details like budget, contact info, and tags for effective monitoring and follow-up.
-
Meet Up Mode: Schedule and manage meet-ups with buyers, track attendees, and avoid scheduling conflicts.
-
Property Mode: Store property listings, including landlord details, asking price, and property type for quick and easy references.
These modes allow real estate agents to handle buyers, meet-ups, and property listings at a rapid pace, ensuring an efficient, convenient and integrated workflow.
- Install Java
17or above: Ensure that Java17or a later version is installed on your computer. You can download it here.
Tip:
MacOS users can refer to this set of instructions for easier installation.
-
Download the latest ABCLI application: Get the latest
ABCLI.jarfile from the release page. -
Choose a storage folder: Move the
ABCLI.jarfile to the folder where you want to store and run the application. - Open the command terminal:
-
For Windows users, in the folder containing
ABCLI.jar, right-click the empty space and select “Open in Terminal”.
-
For MacOS users, right-click the home folder, hover over “Services,” and select “New Terminal at Folder”.

-
-
Run the application: Enter the command
java -jar ABCLI.jarto start ABCLI. -
Verify the GUI: If you are successful in opening the application, a GUI similar to the below should appear in a few seconds.

Tip:
Before you start, ABCLI comes pre-populated with example data. We encourage you to practice the commands on this sample data to get familiar with the app. Once you are comfortable, you can use the clearcommand in each mode to reset the data in the respective modes. -
Here is a quick guide to the GUI.

-
Enter commands: Type a command in the command box and press Enter to execute it. For example, typing
helpand pressing Enter will open the help window.Some example commands you can try:
-
view: Lists all buyers. -
add n/John Doe p/98765432 e/johnd@example.com b/120000: Adds a buyer contact namedJohn Doeto the Buyer list. -
delete 3: Deletes the 3rd buyer shown in the current list. -
clear: Deletes all buyers. -
exit: Exits the app.
-
- Explore available features: Refer to the Features section below for details on each command.
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis 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/relocatingor 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/relocating,t/relocating t/upgradingetc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE,p/PHONE n/NAMEis also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help,view,exitandclear) 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 space characters surrounding line-breaks may be omitted when copied over to the application.
Shows a message explaining how to access the help page.

Format: help
Exits the program.
Format: exit
Data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
All data is saved automatically as a JSON file within the storage folder. Advanced users are welcome to update data directly by editing that data file.
Note: By default, the storage folder is set to a folder named data in the home folder.
If any of the data files, e.g.
buyerlist.json is deleted, it will create a new data file with pre-populated data, e.g. it will create a new buyerlist.json with prepopulated data.Furthermore, certain edits can cause the JSON files 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.
Switching parser modes : switch
Switches the parser mode to the specified parser mode.
Format: switch PARSER_MODE
- Switches the parser mode to the specified
PARSER_MODE. - The parser mode takes 3 types:
-
bfor buyers -
mfor meet-ups -
pfor properties - The default parser mode is set to
b.
Examples:
- Upon entering the application, the parser mode is set to
b. -
switchfollowed bymswitches the parser mode to meet-ups.

Notes about parser mode-switching:
-
The mode before the switch can be seen at the top bar, where it says
Viewing: Buyers, after the switch it changes toViewing: Meet Ups. -
The view also automatically changes from showing
BuyerstoMeet Upsafter the switch command, this view will also change appropriately when switching toborp. -
The mode is important for command execution, e.g. to
addaBuyer, you need to be in thebmode, toaddaMeetUp, you need to be in themmode, etc.
Buyers represent your clients interested in purchasing properties. The buyer list allows you to keep track of each buyer’s essential details such as name, phone number, email, and budget. Additionally, you can organize and personalize each buyer’s profile by assigning multiple tags. For instance, if a client, Bernice Yu, expresses interest in relocating, you could add the tag relocating to her contact.

These commands are for when the parser is in b mode (Buyer mode) see switching parser modes:
-
Note how the list already contains sample
Buyers (if this is the first time using the app) -
Note how the mode is highlighted by
Viewing: Buyersabove the command line
Shows a list of all buyers in the buyer list.
Format: view
Adds a buyer to the buyer list.
Format: add n/NAME p/PHONE e/EMAIL b/BUDGET [t/TAG]…
- New buyers must have unique names and must not be duplicate names of existing buyers.
9223372036854775807. Refer to known issues for more information.
Examples:
add n/John Doe p/98765432 e/johnd@example.com b/100,000add n/Betsy Crowe t/urgent e/betsycrowe@example.com b/7,000,000 p/91234567 t/referred
Edits an existing buyer in the buyer list.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [b/BUDGET] [t/TAG]…
- Edits the buyer at the specified
INDEX. The index refers to the index number shown in the displayed buyer list. - The index refers to the index number shown in the displayed buyer list.
- The index must be a positive integer: 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - 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 buyer will be removed i.e adding of tags is not cumulative.
- You can remove all the buyer’s tags by typing
t/without specifying any tags after it.
index you use in the edit command is the one you see on your screen! E.g if 1. Alex Yeoh is shown in the current filtered view, but 2. Alex Yeoh was shown after any previous commands, use the one that you can see right now!
Examples:
-
edit 1 p/81234567 e/johndoe@example.comEdits the phone number and email budget of the 1st buyer to be81234567andjohndoe@example.comrespectively. -
edit 2 n/Betsy Crower t/Edits the name of the 2nd buyer to beBetsy Crowerand clears all existing tags.
Finds existing buyers in existing buyer list based on keywords.
Format: find n/KEYWORD [MORE_KEYWORDS]
- Only the name is searched.
- The search is case-insensitive. e.g
hanswill matchHans - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans - Only full words will be matched e.g.
Hanwill not matchHans - Buyers matching at least one keyword will be returned (i.e.
ORsearch). e.g.Hans Bowill returnHans Gruber,Bo Yang
b/BUDGET, p/PHONE, e/EMAIL, and t/TAG.
Examples:
-
find n/JohnreturnsjohnandJohn Doe -
find n/alex davidreturnsAlex Yeoh,David Li

Deletes the specified buyer from the buyer list.
Format: delete INDEX
- Deletes the buyer at the specified
INDEX. - The index refers to the index number shown in the displayed buyer list.
- The index must be a positive integer: 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - The index cannot exceed the displayed list’s range.
Examples:
-
viewfollowed bydelete 2deletes the 2nd buyer in the displayed buyer list. -
find n/Davidfollowed bydelete 1deletes the 1st buyer in the displayed results of thefindcommand.
Clears all entries from the buyer list.
Format: clear
Meet-up represents any scheduled appointment with your clients, allowing you to record essential details, including the subject of the meeting, additional info, its start and end date-times (From and To), and the buyers involved. Additionally, ABCLI will highlight any overlapping meet-ups to help you avoid scheduling conflicts.

These commands are for when the parser is in m mode (MeetUp mode) see switching parser modes:
-
Note how the list already contains sample
Meet Ups (if this is the first time using the app) -
Note how the mode is highlighted by
Viewing: Meet Upsabove the command line -
Note how each meet-up contains buyer, if the buyer exists in the BuyerList, it will be marked as purple, else red. The matching here is done by case-sensitive matching, e.g.
Alex Yeohwill only be purple if there isAlex Yeohin the Buyer List, notAlex yeohoralex yeohorAlex. -
However, if an existing buyer’s name is edited, the buyer shown in meet-ups will not update accordingly and will just change from purple to red, e.g. in the image above, if the name of
Alex Yeohwas changed in the BuyerList toAlex Yeo, in the meet-up mode, both meetings would still displayAlex Yeohbut in red now.
Shows a list of all meet-ups in the meet-up list.
Format: view
Adds a meet-up to the meet-up list.
Format: add s/MEETUP_SUBJECT i/MEETUP_INFO f/MEETUP_FROM t/MEETUP_TO n/BUYER_NAME [n/MORE_BUYER_NAMES]…
-
New meet-ups must have at least one unique non-duplicate aspect from these three fields:
MEETUP_SUBJECT,MEETUP_FROM,MEETUP_TO. Else, it will be marked as a duplicate meet-up. -
MEETUP_FROMandMEETUP_TOfields should follow the formatYYYY-MM-DD HH:mm. -
MEETUP_TOmust be a date-time that is later thanMEETUP_FROM.
MEETUP_FROM or MEETUP_TO, the DD parameter will take in any 2-digit number from 01 to 31. However, in some cases, such as February or April, the date 31 doesn’t exist, in this case, instead of rejecting the input, the meet-up will be added but the date will be changed to the closest valid date in the same month. e.g. 2024-02-31 23:59 will create 2024-02-29 23:59, 2024-04-31 12:00 will create 2024-04-30 12:00, but 2024-04-32 12:00 will give an error since 32 is not a valid DD input.
-
There must be at least one
BUYER_NAMEadded. -
Buyers that exist in buyer list will be marked as purple, while those that do not will be marked as red, for more details see here.
Examples:
add s/Discuss work plans i/Meet with Alex and David to discuss the March Project f/2024-02-03 14:00 t/2024-02-03 15:30 n/Alex Yeoh n/David Li
Clashing Timings:
Meet Ups with clashing timings will be displayed in red. Otherwise, the default display colour for timing is green.

Edits an existing meet-up in the meet-up list.
Format: edit INDEX [s/MEETUP_SUBJECT] [i/MEETUP_INFO] [f/MEETUP_FROM] [t/MEETUP_TO] [n/BUYER_NAME]…
- Edits the meet-up at the specified
INDEX. - The index refers to the index number shown in the displayed meet-up list.
- The index must be a positive integer 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing buyers associated to the meet-up, the existing buyers will be removed i.e adding of buyers is not cumulative.
Examples:
-
edit 1 i/Meet with Johnny to show him houses. f/2024-10-28 10:00 t/2024-10-28 12:00edits the info, meet-up start time, and meet-up end time of the 1st meet-up to beMeet with Johnny to show him houses.,2024-10-28 10:00and2024-10-28 12:00respectively. -
edit 1 n/Johnedits the buyers associated to the first meet-up to be onlyJohn.
Finds meet-ups whose meet-up names contain any of the given keywords.
Format: find s/KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g
meetwill matchMeet - Only the meet-up name is searched.
- Keyword will be matched to exact words, e.g.
meetwill not matchmeeting - Meet-ups matching at least one keyword will be returned (i.e.
ORsearch). e.g.Sales Closingwill returnSales Meeting,Closing Meeting
f/MEETUP_FROM, t/MEETUP_TO, and n/ADDED_BUYER.
Examples:
-
find s/MeetingreturnsSales MeetingandClosing Meeting -
find s/SalesreturnsSales Meeting

Deletes the specified meet-up from the meet-up list.
Format: delete INDEX
- Deletes the meet-up at the specified
INDEX. - The index refers to the index number shown in the displayed meet-up list.
- The index must be a positive integer 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - The index cannot exceed the displayed list’s range.
Examples:
-
viewfollowed bydelete 2deletes the 2nd meet-up in the meet-up list. -
find s/meetingfollowed bydelete 1deletes the 1st meet-up in the results of thefindcommand.
Clears all entries from the meet-up list.
Format: clear
Properties represent each property in your portfolio. The property list helps you keep track of each property’s details such as the landlord’s name and phone number, as well as the property’s address, type (e.g. apartment, landed house, etc) and asking price.

These commands are for when the parser is in p mode (Property mode) see switching parser modes:
-
Note how the list already contains sample
Propertys (if this is the first time using the app) -
Note how the mode is highlighted by
Viewing: Propertiesabove the command line
Shows a list of all properties in the property list.
Format: view
Adds a property to the property list.
Format: add n/LANDLORD_NAME p/PHONE a/ADDRESS s/ASKING_PRICE t/PROPERTY_TYPE
- New properties must have unique addresses and must not be duplicate addresses of existing properties.
9223372036854775807. Refer to known issues for more information.
Examples:
add n/John p/87152433 a/Paya Lebar s/200,000 t/Condominium
Edits an existing property in the property list.
Format: edit INDEX [n/LANDLORD_NAME] [p/PHONE] [a/ADDRESS] [s/ASKING_PRICE] [t/PROPERTY_TYPE]
- Edits the landlord at the specified
INDEX. - The index refers to the index number shown in the displayed property list.
- The index must be a positive integer 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
Examples:
-
edit 1 p/91234567 s/100000Edits the first property’s landlord phone number and its asking price to be91234567and100,000respectively. -
edit 2 n/Betsy CrowerEdits the name of the 2nd property’s landlord to beBetsy Crower.
Find existing properties in the property list based on either name or address keywords.
Format: find n/LANDLORD_NAME or find a/ADDRESS
- The tags used in searching should only be
n/ora/, but not both. - The search is case-insensitive. e.g
hanswill matchHans - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans - Only full words will be matched e.g.
Hanwill not matchHans - Properties matching at least one keyword will be returned (i.e.
ORsearch). e.g.n/Hans Bowill return property linked withHans Gruber,Bo Yang.
s/ASKING_PRICE, p/PHONE, and t/PROPERTY_TYPE.
Examples:
-
find n/JohnreturnsjohnandJohn Doe -
find a/Pasir Risreturnspasir ris eastandPasir Ris West

Deletes the specified property from the property list
Format: delete INDEX
- Deletes the property at the specified
INDEX. - The index refers to the index number shown in the displayed property list.
- The index must be a positive integer: 1, 2, 3, …. If the index is not a positive integer, the error message shown will be
invalid command format. - The index cannot exceed the displayed list’s range
Examples:
-
viewfollowed bydelete 4deletes the 4th property in the displayed property list. -
find n/Adamfollowed bydelete 2deletes the 2nd property in the displayed results of the find command.
Clearing all properties : clear
Clears all entries from the property list.
Format: clear
Q: Can I use ABCLI without any programming knowledge?
A: Yes, ABCLI is designed to be user-friendly and does not require any coding skills. Follow the User Guide to learn the commands and usage patterns, and you will be able to use ABCLI effectively.
Q: What operating systems are compatible with ABCLI?
A: ABCLI can be run on any system that supports Java 17 or above, including Windows, macOS, and Linux. Refer to quick start for the step-by-step installation guide.
Q: How can I check if Java 17 is installed and set as the default version?
A: Open your command terminal and type:java -version. If Java 17 is installed, the output should start with: java version "17.0.x".If not, download Java 17 from here.
Q: How can I troubleshoot if the GUI doesn’t display properly on my screen?
A: If using multiple screens, ensure the app window is on your main display, as secondary screens may cause display issues. If the issue persists, delete the preferences.json file to reset GUI settings.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data files (buyerlist.json, meetuplist.json, and propertylist.json) it creates with the respective files that contain your previous data (which should be in the old buyerlist.json, meetuplist.json, and propertylist.json).
Q: Where can I find my local data files?
A: In the same folder that contains your app ABCLI.jar, there should be a folder called data which contains buyerlist.json, meetuplist.json, and propertylist.json.
Q: How do I add Meet-Ups or Properties? I can only add Buyers
A: You are likely in the Buyer Mode indicated by the Viewing: Buyers shown at the top bar, to switch to MeetUp Mode, use switch m, and to switch to Property Mode, use switch p. For more details, see switching parser modes.
Q: How are duplicates determined when adding meet-ups?
A: Meet-ups are considered duplicates if they share the same SUBJECT, MEETUP_FROM date-time, and MEETUP_TO date-time. Ensure at least one of these fields is unique to avoid duplication errors.
Q: Can I view all buyers, meet-ups, and properties together on a single screen?
A: No, ABCLI organizes these entries by mode. Use the switch command to move between modes for buyers, meet-ups, or properties.
Q: Why is my meet-up entry showing certain buyers in red?
A: Buyers shown in red are not listed in the Buyer mode’s current entries. Ensure that the buyer’s name matches exactly in both the buyer list and the meet-up entry for it to be displayed in purple. If the buyer assigned to a particular meet-up has been deleted from the buyer list, it will be shown as red.
Q: Why are some date-time entries in meet-ups highlighted in red?
A: Date-time entries in red indicate scheduling conflicts. These meet-ups overlap with another meet-up in the schedule, helping you identify potential double-bookings or timing issues that require attention.
Q: Is there a way to search for buyers based on phone number or budget?
A: Currently, the search function for buyers only supports keywords within the NAME field. A future enhancement is planned to allow for more advanced searches based on other fields like PHONE, TAG, EMAIL and BUDGET.
Q: Is there a separate save command/button, are all my changes auto-saved?
A: Any successfully inputted command will save the changes into the data files, thus there is no need to worry about manually saving your changes.
-
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.jsonfile created by the application before running the application again. -
If you minimize the Help Window and then run the
helpcommand (or use theHelpmenu, 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. -
If you input a budget or asking price that exceeds
9223372036854775807, the command will silently fail, and no error message will be shown. This is due to exceeding the maximum value for a 64-bit integer. A planned enhancement will add a validation check to prevent input beyond a maximum realistic range. -
When inputting a name, if the name is too long, the interface is unable to display the full name, and it will be truncated, with ellipses (…) representing the truncated part of the name.
-
Editing/Deleting buyers that are included in Meet-Ups, editing/deleting a buyer in the BuyerList that is also part of a meet-up in the MeetUpList will not update the buyer shown in the MeetUpList. For example, meet-up
Sales Meetinghas buyerAlex Yeohin the MeetUpList andAlex Yeohis a buyer in the BuyerList, thusSales MeetingshowsAlex Yeohin purple (the buyer exists). If you go to Buyer mode and editAlex Yeohto be something different such asAlex yeoh,alex yeoh,alex, etc,Sales Meetingwill still showAlex Yeohbut in red now (buyer does not exist anymore). DeletingAlex Yeohin the BuyerList will cause the same effect. The name matching between buyers in meet-ups and buyers in the BuyerList is done with exact case-sensitive matching,Alex Yeohwill only be purple in theSales Meetingif the BuyerList has a buyer with the exact nameAlex Yeoh.
| Term | Definition | Example |
|---|---|---|
| ABCLI | A desktop application used to manage buyers, meet-ups and properties efficiently. | |
| Buyer | A client that is interested and looking to purchase a house. |
add n/Betsy Crowe t/urgent e/betsycrowe@example.com b/7,000,000 p/91234567 t/referred is an example of adding a Buyer in ABCLI
|
| Case sensitive/insensitive | Case sensitive/insensitive is when the computer cares/doesn't care about uppercase or lowercase, respectively. |
Case sensitive: Apple, apple, aPPle are recognised as three different words.Case insensitive: Banana, banana, BaNaNa are recognised as the same word. |
| Command Line Interface (CLI) | Allows a user to interact with the computer or application to execute instructions or commands by typing using a keyboard. | When typing commands in ABCLI, the panel where you see your typed commands acts as the CLI. |
| Field | Information that the user provides to the commands in ABCLI. |
PHONE and ADDRESS are fields that the user needs to provide to the add buyer command in ABCLI. 912345678 and Sembawang Street 8 Blk 220 are examples of the fields mentioned. |
| Graphical User Interface (GUI) | An interface that serves as way to interact with a computer or application using pictures, icons, and buttons on the screen instead of typing commands | The Help button is a clickable element in ABCLI's GUI that directs the user to the user guide. |
| Hard Disk | A storage box in the computer that keeps all the user's files, programs and information even when the computer is turned off and can be retrieved whenever the user needs it. | Data that user has added to ABCLI is stored in a file which in turn is stored in the hard disk. |
| Java | A programming language that lets people write instructions for computers, to create many things like applications, websites and games. |
ABCLI is an application that is written using Java. |
| JAR File (.jar) | A zip file specifically for Java programs, it holds all the files needed to run a Java program in one place. |
ABCLI is an application that can be opened through the use of a JAR file
|
| JSON File (JSON) | A simple text file used to store and share data in a structured and organised way, that both the user and computer can easily read. |
ABCLI uses a JSON file to store buyer data so that it can be easily read and retrieved by the user and computer. |
| Meet-up | A meeting with a buyer that contains basic information such as meeting subject, starting and ending time of meeting, as well as the buyer to meet. |
add s/Discuss work plans i/Meet with Alex and David to discuss the March Project f/2024-02-03 14:00 t/2024-02-03 15:30 n/Alex Yeoh n/David Li is an example of adding a Meet-up in ABCLI
|
| Property | An estate or housing that is of interest to buyers. |
add n/John p/87152433 a/Paya Lebar s/200,000 t/Condominium is an example of adding a property in ABCLI
|
| Parser | Takes in user's commands and translate them into instructions understandable by the computer or application . | When the command delete 1 is typed and entered into ABCLI, the parser will read through the command and inform the application that the user desires to delete at the index 1. |
| Silently fail | Occurs when the computer or application is unable to process or execute a command properly, but it does not show any signs of error to the user. | An example is when a user inputs a number that is too large into ABCLI, ABCLI will not explicitly inform the user that there is an error, but there will be an error call behind the scenes. |
| Terminal | A tool that lets users type commands directly to the computer to control it. | The command terminal is an example of a Terminal
|
| Action | Buyer | Meetup | Property |
|---|---|---|---|
| View | view |
view |
view |
| Add |
add n/NAME p/PHONE e/EMAIL b/BUDGET [t/TAG]…e.g., add n/James Ho p/22224444 e/jamesho@example.com b/1200000 t/friend t/colleague
|
add s/SUBJECT i/INFO f/MEETUP_FROM t/MEETUP_TO n/BUYER_NAME [n/MORE_BUYER_NAMES]…e.g., add s/Discuss work plans i/Meet with Jason to discuss the March Project n/Alex Yeoh n/David Li f/2024-02-03 14:00 t/2024-02-03 15:30
|
add n/LANDLORD_NAME a/ADDRESS p/PHONE s/ASKING_PRICE t/PROPERTY_TYPEe.g., add n/Janice Tan a/123 West Coast #12-288 p/33334444 s/650000 t/HDB
|
| Edit |
edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [b/BUDGET] [t/TAG]…e.g., edit 2 n/James Lee e/jameslee@example.com
|
edit INDEX [s/SUBJECT] [i/INFO] [f/MEETUP_FROM] [t/MEETUP_TO] [n/BUYER_NAME]…e.g., edit 3 n/Alex Yeoh n/Ben Ten
|
edit INDEX [n/LANDLORD_NAME] [a/ADDRESS] [p/PHONE] [s/ASKING_PRICE] [t/PROPERTY_TYPE]…e.g., edit 2 n/Ben Tan a/East Coast Blk 20 #11-283
|
| Delete |
delete INDEXe.g., delete 3
|
delete INDEXe.g., delete 2
|
delete INDEXe.g., delete 5
|
| Find |
find n/KEYWORD [MORE_KEYWORDS]…e.g., find n/James Jake
|
find s/KEYWORD [MORE_KEYWORDS]…e.g., find s/Project
|
find a/KEYWORD [MORE_KEYWORDS]… OR find n/KEYWORD [MORE_KEYWORDS]…e.g., find a/Lakefront
|
| Clear | clear |
clear |
clear |
| Help | help |
||
Acceptable Value Ranges for Parameters
| Command | Parameter | Acceptable inputs |
|---|---|---|
| General | ||
| View | No parameters required | |
| Clear | No parameters required | |
| Help | No parameters required | |
| Delete | Index | Positive integers only.
Integers less than 1 will cause an invalid command format error. Integers greater than the number of contacts displayed in the given mode are invalid. |
| Buyer | ||
| Add | Name | Alphanumeric characters and space, should not be blank |
| Phone | Numbers, at least 3 digits long | |
| Emails should be of the format local-part@domain and adhere to the following constraints:
The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters. This is followed by a '@' and then a domain name. The domain name is made up of domain labels separated by periods. The domain name must: - end with a domain label at least 2 characters long - have each domain label start and end with alphanumeric characters - have each domain label consist of alphanumeric characters, separated only by hyphens, if any. Special characters (+_.-) can only be used to separate alphanumeric values and not be put together consecutively. |
||
| Budget | It should be a positive integer more than 0 and not be blank.
It can contain commas at the right positions (exactly 3 digits after each comma) E.g. 10,000 and 10000 are both accepted but 1,0000 is NOT accepted). |
|
| Tag | Tags names should only contain alphanumeric and dashes | |
| Edit | Index | Refer to General > Delete > Index |
| The remaining parameters are the same as that for Buyer > Add | ||
| Find | Name | Refer to Buyer > Add > Name |
| Meet-Up | ||
| Add | Subject | Alphanumeric characters and spaces, should not be blank |
| Info | Must have at least one non-whitespace character | |
| From | Format: YYYY-MM-DD HH:mm | |
| To | ||
| Added Buyers | Alphanumeric characters and spaces, should not be blank | |
| Edit | Index | Refer to General > Delete > Index |
| The remaining parameters are the same as that for MeetUp > Add | ||
| Find | Subject | Refer to MeetUp > Add > Subject |
| Property | ||
| Add | Landlord Name | Alphanumeric characters and spaces, should not be blank |
| Phone | Numbers, at least 3 digits long | |
| Asking Price | It should be a positive integer more than 0 and not be blank.
It can contain commas at the right positions (exactly 3 digits after each comma) E.g. 10,000 and 10000 are both accepted but 1,0000 is NOT accepted). |
|
| Address | Can take any values, and it should not be blank | |
| Property Type | Can take any values, and it should not be blank | |
| Edit | Index | Refer to General > Delete > Index |
| The remaining parameters are the same as that for Property > Add | ||
| Find | Landlord Name | Refer to Property > Add > Landlord Name and Property > Add > Address |
| Address | Prepend the prefix "a/" before the address to be searched. For constraints on the address, refer to Property > Add > Address | |