User Guide
- Quick start
- Key Terms and Definitions
- Keyboard Navigation
- Features
- Bidder Features
- Seller Features
- Property Features
- Bid Features
- Meeting Features
- Calendar Navigation Features
- Coming Soon
- Thank You For Using PropertyFree!
PropertyFree is adapted from AB3. It prefers leveraging on Command Line Interface for those who are more comfortable with typing than with Graphical User Interface (GUI).
PropertyFree is a management system for property agents to track and manage their property listing details. It allows users to easily take control of their bookkeeping matters inclusive of seller ask prices, bidder buy prices, key details of properties and record keeping of past properties.
PropertyFree also provides a calendar for property agents to manage their schedule be it for property viewings or meeting with clients. It is optimized for CLI users so that the bookkeeping can be done faster by typing in commands.
Quick start
- Ensure you have Java
11
or above installed in your Computer. - Download the .jar file and run the file by running it via command line or by left clicking if your device is able to.
Note that PropertyFree.jar should be run inside a folder.
(Fig. 1: Initial display interface for PropertyFree.)
Key Terms and Definitions
Client
Clients of PropertyFree consists of both bidders and sellers.
-
Sellers
are the owners of the properties listed in PropertyFree. -
Bidders
are the interested buyers who place a bid on a property.
Seller - A seller is the owner of a property that wants to list their house for sale. It is assigned a unique Seller Id.
Bidder - A bidder is a person who wishes to bid for the purchase of a certain property. It is assigned a unique Bidder Id.
Property - A property is a listed estate that is up for bidder to place bids on. A property can only be added if the given Seller Id exists in the seller list. It is assigned a unique Property Id.
Bid - A Bid is an offer attempt by a bidder for a specific property. A bid can only be placed if the given Property Id and Bidder Id exists in the property list and bidder list.
Meeting - A meeting can be of 3 types.
- View - For viewing of properties.
- Admin - For general admin meetings.
- Paperwork - For signing of paperwork related to the selling and buying of the property.
All types of meeting require a valid Property Id and Bidder Id for it to be added to the schedule.
π‘ SELLER_ID indicates the id of the seller.
π‘ BIDDER_ID indicates the id of the bidder.
π‘ PROPERTY_ID indicates the id of the property listing.
π‘ VENUE indicates the venue of the meeting.
π‘ MEETINGDATE indicates the meeting date of the meeting.
π‘ STARTTIME indicates the start time of the meeting.
π‘ ENDTIME indicates the end time of the meeting.
π‘ PHONE_NUMBER indicates the mobile phone number of the client.
PropertyFree assumes that all phone numbers are unique, and as such will not allow duplicates of phone number.
Note that the Tag
and Id
for both bidder
and seller
are created automatically and cannot be modified.
-
Tag
: Visual identifier for clients -
Id
: Unique ID assigned to each client for identification.
π‘ Note that the following applies for information of a client.
-
The length of the name of any clients that PropertyFree accepts is of 26 characters or lesser (including spaces).
- Names are
CASE SENSITITVE
(i.e Dianne and dianne are recognised as two different names). - The length of the phone number of any clients that PropertyFree accepts is of 10 numbers or lesser
and
+
should not be added.
Keyboard Navigation
-
When the
CommandBox
is not in focused (i.e when cursor is not blinking):PRESS ENTER
-
Next Month in
Calender
:PRESS CTRL + RIGHT ARROW KEY - Windows OS or PRESS CONTROL + RIGHT ARROW KEY - Mac OS
-
Previous Month in
Calendar
:PRESS CTRL + LEFT ARROW KEY - Windows OS or PRESS CONTROL + LEFT ARROW KEY - Mac OS
Note that apart from CTRL / CONTROL
+ RIGHT / LEFT ARROW KEY
, there are Calendar
navigation commands next
and prev
(elaborated below) in the event:
- that your computer or laptop keyboard layout does not allow you to access
CTRL / CONTROL
+ARROW KEY
easily. - that you like to type more.
Features
Command format
UPPER_CASE
are the parameters to be supplied by the user. e.g. in add-p n/PROPERTY_NAME
, PROPERTY_NAME
is a parameter which can be used as add-p n/Sunrise Residences
. - Items in square brackets are optional. e.g.
edit-p [n/PROPERTY_NAME]
implies that PROPERTY_NAME
is an optional parameter. - Items in brackets are for integer numbers only. e.g
Viewing help
- Command:
help
- Format:
help
Displays a link to this User Guide.
Command Format Summary Tables
Command Format (Bidder) | Example |
---|---|
add-b n/BIDDER_NAME p/<PHONE_NUMBER>
|
add-b n/Marcus Duigan p/12345678 |
edit-b <INDEX_NUMBER> [n/NAME] [p/<PHONE_NUMBER>]
|
edit-b 1 n/Marcus Weagle Duigan p/987654321 |
find-b [KEYWORDS]
|
find-b duigan |
delete-b <INDEX_NUMBER>
|
delete-b 1 |
list-b | list-b |
Command Format (Seller) | Example |
---|---|
add-s n/SELLER_NAME p/<PHONE_NUMBER>
|
add-s n/Marcus Duigan p/12345678 |
edit-s <INDEX_NUMBER> [n/NAME] [p/<PHONE_NUMBER>]
|
edit-s 1 n/Marcus Weagle Duigan p/987654321 |
find-s [KEYWORDS]
|
find-s duigan |
delete-s <INDEX_NUMBER>
|
delete-s 1 |
list-s | list-s |
Command Format (Property) | Example |
---|---|
add-p n/PROPERTY_NAME s/SELLER_ID ap/ASKING_PRICE t/PROPERTY_TYPE a/ADDRESS r/IS_RENTAL
|
add-p n/Sunrise s/S1 ap/100 t/Landed a/99 Sunrise Street r/No |
edit-p <INDEX_NUMBER> [n/NAME] [a/ADDRESS] [s/SELLER_ID] [ap/ASKING_PRICE] [t/PROPERTY_TYPE] [r/IS_RENTAL]
|
edit-p 1 n/Cove Residences a/23 Cove Street |
find-p [p/PROPERTY_ID_KEYWORDS] [n/NAME_KEYWORDS] [a/ADDRESS_KEYWORDS] [s/SELLER_ID_KEYWORDS] [t/PROPERTY_TYPE_KEYWORDS] [ap/ASKING_PRICE_FILTER] [r/IS_RENTAL] [c/IS_CLOSED_DEAL]
|
find-p n/Sunrise Cove a/Street Road |
delete-p PROPERTY_ID or delete-p <INDEX_NUMBER>
|
delete-p P23 or delete-p 5 |
list-p | list-p |
Command Format (Bid) | Example |
---|---|
add-bid b/PROPERTY_ID c/BIDDER_ID m/BID_AMOUNT
|
add-bid b/P1 c/B2 m/150000.20 |
edit-bid <INDEX_NUMBER> [b/PROPERTY_ID] [c/BIDDER_ID] [m/BID_AMOUNT]
|
edit-bid 1 b/ P99 c/ B12 m/1.20 |
find-bid [KEYWORDS]
|
find-bid P1 B2 $65000.00 |
delete-bid <INDEX_NUMBER>
|
delete-bid 1 |
list-bid | list-bid |
Command Format (Meeting) | Example |
---|---|
add-m q/MEETING_TYPE b/<BIDDER_ID> p/<PROPERTY_ID> v/<VENUE> d/<DATE> s/<STARTTIME> e/<ENDTIME>
|
add-m q/v b/B12 p/P12 v/2 ALBERT PARK d/11-12-2021 s/12:30 e/13:00 |
edit-m <INDEX> [b/BIDDER_ID] [p/PROPERTY_ID] [v/VENUE] [d/DATE] [s/<STARTTIME>] [e/<ENDTIME>]
|
edit-m 2 v/eunos |
delete-m <INDEX_NUMBER>
|
delete-m 3 |
sort-m o/ORDER
|
sort-m o/asc |
list-m | list-m |
Command Format (Calendar) | Example |
---|---|
next | next |
prev | prev |
Bidder Features
Adding a Bidder
Adds a bidder to the bidder list.
- Command:
add-b
- Format:
add-b n/BIDDER_NAME p/<PHONE_NUMBER>
Example:
add-b n/Marcus Duigan p/12345678
Expected Output:
New bidder added:
Name: Marcus Duigan
Phone number: 12345678
Id: B1
Tag: bidder
Searching for Bidder
User can search for a list of bidders based on their name . The returned list will retain names that matched with the keywords supplied.
- Command:
find-b
- Format:
find-b [KEYWORDS]
Example:
find-b duigan
Expected Output:
1 bidder(s) listed!
View List of Bidder
Brings user to the bidder tab and shows the whole list of bidders. Can be used after filtering / searching bidders.
- Command:
list-b
- Format:
list-b
Example:
list-b
Expected Output:
Displaying full bidder list.
Edit of Bidder
Edits the information of a bidder who is corresponding to the index in the list of bidders. Names, phone number and tags can be edited.
- Command:
edit-b
- Format:
edit-b <INDEX_NUMBER> [n/NAME] [p/PHONE_NUMER]
- Edits the bidder at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed bidder list. The index must be a positive integer 1, 2, 3β¦- At least one optional field must be provided.
- Existing values will be updated to the input values.
- All other values will remain the same.
Example:
edit-b 1 n/Marcus Weagle Duigan p/987654321
Expected Output:
Edited Bidder:
Name: Marcus Weagle Duigan
Phone: 987654321
Id: B1
Tag: bidder
Delete Bidder
Deletes the bidder that is corresponding to the index of the bidder in the list of the bidders.
- Command:
delete-b
- Format:
delete-b <INDEX_NUMBER>
- Deletes the bidder at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed bidder list. The index must be a positive integer 1, 2, 3β¦
Example:
delete-b 1
Expected Output:
Deleted Bidder:
Name: Marcus Weagle Duigan
Phone: 987654321
Id: B1
Tag: bidder
All related bids and meetings have been deleted.
Seller Features
Addition of Seller
Adds a seller to the seller list.
- Command:
add-s
- Format:
add-s n/SELLER_NAME p/<PHONE_NUMBER>
Example:
add-s n/Kor Ming Soon p/12345778
Expected Output:
New seller added:
Name: Kor Ming Soon
Phone number: 12345778
Id: S1
Tag: seller
Searching for Seller
User can search for a list of sellers based on their name. The returned list will retain names that matched with the keywords supplied.
- Command:
find-s
- Format:
find-s [KEYWORDS]
Example:
find-s Ming
Expected Output:
1 seller(s) listed!
View List of Seller
Brings user to the seller tab and shows the whole list of sellers. Can be used after filtering / searching sellers.
- Command:
list-s
- Format:
list-s
Example:
list-s
Expected Output:
Displaying full seller list.
Edit of Seller
Edits the information of a seller who is corresponding to the index in the list of sellers. Names, phone number and tags can be edited.
- Command:
edit-s
- Format:
edit-s <INDEX_NUMBER> [n/NAME] [p/PHONE_NUMER]
- Edits the seller at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed seller list. The index must be a positive integer 1, 2, 3β¦
Example:
edit-s 1 n/Joven Kor Ming Soon p/987654321
Expected Output:
Edited Seller:
Name: Joven Kor Ming Soon
Phone: 987654321
Id: S1
Tag: seller
Delete Seller
- Command:
delete-s
- Format:
delete-s <INDEX_NUMBER>
- Deletes the seller at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed seller list. The index must be a positive integer 1, 2, 3β¦
Example:
delete-s 1
Expected Output:
Deleted Seller:
Name: Joven Kor Ming Soon
Phone: 987654321
Id: B1
Tag: seller
All related properties and meetings have been deleted.
Property Features
Adding a property
Adds a property and its relevant details to the property list.
- Command:
add-p
- Format:
add-p n/PROPERTY_NAME s/SELLER_ID ap/ASKING_PRICE t/PROPERTY_TYPE a/ADDRESS r/IS_RENTAL
π‘ IS_RENTAL
can be one of the following formats: Yes / yes / Y / y or No / no / N / n
π‘ Property name refers to the generic brand name and can be the same for multiple properties, whereas address refers to the full address of the property and must be unique.
Price must be greater than 0 and less or equals to 1 trillion.
Price will be truncated to 2 decimal place.
PropertyName, Address and PropertyType can have a maximum of 100 characters.
Example:
add-p n/Sunrise s/S1 ap/100 t/Landed a/99 Sunrise Street r/No
Expected Output:
New property added: Sunrise
Property Id: P1
Address: 99 Sunrise Street
Property type: Landed
Asking price: $100.00
Seller Id: S1
Rental
will be displayed in the expected output.As seen in the example, a unique unmodifiable property id is automatically generated for every new property.
Listing all properties
Brings user to the property tab and shows the whole list of properties. Can be used after filtering / searching properties.
- Command:
list-p
- Format:
list-p
Example:
list-p
Expected Output:
Displaying full property list.
Editing a property
Edits an existing property in the property list.
- Command:
edit-p
- Format:
edit-p <INDEX_NUMBER> [n/NAME] [a/ADDRESS] [s/SELLER_ID] [ap/ASKING_PRICE] [t/PROPERTY_TYPE] [r/IS_RENTAL]
- Edits the property at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed property list. The index must be a positive integer 1, 2, 3β¦- At least one optional field must be provided.
- Edits the property at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed property list. The index must be a positive integer 1, 2, 3β¦
π‘ Note that the property id cannot be modified.
Example:
edit-p 1 n/Cove Residences a/23 Cove Street
Edits the property name and address of the first property to Cove Residences
and 23 Cove Street
respectively.
Expected output:
Edited Property: Cove Residences
Property id: P4
Address: 23 Cove Street
Property type: HDB
Asking price: $99.00
Seller id: S20
Finding properties
Find properties that satisfy all of the userβs filters.
Format: find-p [p/PROPERTY_ID_KEYWORDS] [n/NAME_KEYWORDS] [a/ADDRESS_KEYWORDS] [s/SELLER_ID_KEYWORDS] [t/PROPERTY_TYPE_KEYWORDS] [ap/ASKING_PRICE_FILTER] [r/IS_RENTAL]
Β | Formats |
---|---|
π‘ | Format for attributes that search by keywords (property name, address, seller id, property id, property type): keywords delimited by whitespace. For example, n/Sunrise Cove a/Street Road Format for asking price filter: < / <= / == / > / >= PRICE For example, ap/<= 100 Format for is rental: y / yes / n / no |
- The search is case insensitive for all attributes. e.g.
cove
will matchCove
.- For keywords-based search, the order of keywords does not matter. e.g.
Street Main
will match withMain Street
.- Only full words will be matched. e.g.
Sun
will not matchSunrise
.- Properties matching at least one keyword is considered a match. e.g.
Sunrise View
will matchSunrise Avenue
.- The search returns properties matching all options. e.g. The command
find-p n/Sunrise ap/< 100
will return the property with nameSunrise Avenue
and asking price99
but not the property with nameSunrise Avenue
with asking price of500
.
Example:
find-p n/Cove Sunrise ap/<= 100 r/no
Expected output:
2 properties listed!
Displays all properties whose names contains either Cove
or Sunrise
, asking price is less than or equals to 100
, and is not a rental property.
Deleting a property
Deletes a property listing from the property list.
π‘ Automatically deletes all bids and meetings associated with the property being deleted.
- Command:
delete-p
- Format:
delete-p PROPERTY_ID
ordelete-p <INDEX_NUMBER>
- Deletes the property with the specified
PROPERTY_ID
.- Deletes the property at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed property list. The index must be a positive integer 1, 2, 3β¦
Examples:
delete-p P23
Deletes the property whose property id is P23
.
delete-p 5
Deletes the fifth property in the property list.
Expected Output:
Deleted Property: Sunrise Avenue
Property id: P23
Address: Block 123
Property type: HDB
Asking price: $100.00
Seller id: S2
All related bids and
meetings have been
deleted.
Bid Features
Adding a Bid for a Property
Adds a bid to the bid list. The Bid is automatically sorted by property Id followed by the bid amount.
- Command:
add-bid
- Format:
add-bid b/PROPERTY_ID c/BIDDER_ID m/BID_AMOUNT
β οΈ: The
BIDDER_ID
andPROPERTY_ID
must exist to be added successfully.
Example:
add-bid b/P1 c/B2 m/150000.20
Expected Output:
New bid added:
Bid of $150000.20
by B2
to property: P1
View Full List of Bids
Will display all bids in the bid list
- Command:
list-bid
- Format:
list-bid
Example:
list-bid
Expected Output:
Displaying full bid list.
Deletion of Existing Bid
Will delete a bid based on its number in the bid list
- Command:
delete-bid
- Format:
delete-bid <INDEX_NUMBER>
- Deletes the bid at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed bid list. The index must be a positive integer 1, 2, 3β¦
Example:
delete-bid 1
Expected Output:
Deleted Bid:
Bid of $150000.20
by B2
to property: P1
Editing a Bid
Will edit a bid based on the values given for each parameter. The edited Bid is automatically sorted by property Id followed by the bid amount.
- Command:
edit-bid
- Format:
edit-bid <INDEX_NUMBER> [b/PROPERTY_ID] [c/BIDDER_ID] [m/BID_AMOUNT]
- Edits the bid at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed bid list. The index must be a positive integer 1, 2, 3β¦- At least one optional field must be provided.
- Existing values will be updated to the input values.
- All other values will remain the same.
- β οΈ: The
BIDDER_ID
andPROPERTY_ID
input must be in the bidder and property list to be edited successfully.
Example:
edit-bid 1 b/P99 c/B12 m/1.20
Expected Output:
Edited Bid:
FROM:
Bid of $999999.00
by B2
to property: P3
TO:
Bid of $1.20
by B12
to property: P99
Find a specific bid based on key words
Will display all bids in the bid list that contains the keywords specified by the user. If at least one attribute matches one keyword, the bid will be listed.
- Command:
find-bid
- Format:
find-bid [KEYWORDS]
Example:
find-bid P1 B2 $65000.00
Expected Output:
1 bid(s) listed!
Meeting Features
There are three types of meetings of which the agent will be able to add:
- View - For viewing of properties
v
- Admin - For general admin meetings
a
- Paperwork - For signing of paperwork related to the selling and buying of the house
p
Add a Meeting
Creates a meeting of the various type to be added to the schedule. To create the 3 different types of meeting we use the q/
attribute.
- Command:
add-m
- Format:
add-m q/MEETING_TYPE b/BIDDER_ID p/PROPERTY_ID v/VENUE d/DATE s/STARTTIME e/ENDTIME
Attributes | Example Inputs | Remarks |
---|---|---|
Meeting Type |
v a p
|
Represents the three different meetings. |
Bidder ID |
B1 B3
|
The bidder has to exist to create the meeting. The letter βBβ has to be capitalised. |
Property ID |
P1 P4
|
The property has to exist to create the meeting. The letter βPβ has to be capitalised. |
Venue |
Bedok Mall Starbucks Tampines St 3, BLK 222, #05-211
|
Represents meeting venue. This does not have to be at the property itself. The length of the name of the venue can be as long as you want. |
Date |
12-12-2021 12-08-2021
|
Date has to be of the format DD-MM-YYYY and cannot be a past date. |
Start Time, End Time |
16:20 14:20
|
Time has to be of the format HH:MM . The meetings timings are allowed to clash each other and can be past midnight. The timings area allowed to overflow(if 24:30 is keyed in the output will be 00:30). |
π‘ Note that we currently do not support conflicts between the start and end time of a meeting. The user has to take into account if the start or end time that is added will overlap with any existing meetings in the meeting book.
Example:
add-m q/v b/B1 p/P1 v/2 ALBERT PARK d/11-12-2021 s/12:30 e/13:00
Expected Output:
New meeting added:
Meeting Type: Viewing
Bidder Id: B1
Property Id: P1
Venue: 2 ALBERT PARK
Date: 11-12-2021
Start Time: 12:30
End Time: 13:00
Deleting an Existing Meeting
Deletes a meeting from the calendar when a meeting is cancelled.
- Command:
delete-m
- Format:
delete-m <INDEX_NUMBER>
π‘ The index has to be a positive number and the meeting has to exist.
- Deletes the meeting at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed meeting list. The index must be a positive integer 1, 2, 3β¦
Example:
delete-m 3
Expected Output:
Deleted Meeting:
Meeting Type: Viewing
Bidder Id: B1
Property Id: P1
Venue: 2 ALBERT PARK
Date: 11-12-2021
Start Time: 12:30
End Time: 13:00
View the list of all Meetings
Displays all the meetings in the meeting list. Can be used after using the find meeting feature.
- Command:
list-m
- Format:
list-m
Example:
list-m
Expected Output:
Displaying full meeting list.
Editing an Existing Meeting
Edits an existing meeting in the meeting list. The existing meeting to be editted will have its parameters updated with the new values provided by the user.
- Command:
edit-m
- Format:
edit-m <INDEX_NUMBER> b/BIDDER_ID p/PROPERTY_ID v/VENUE d/DATE s/STARTTIME e/ENDTIME
- At least one optional field must be provided.
- Edits the meeting at the specified
INDEX_NUMBER
, which refers to the index shown on the displayed meeting list. The index must be a positive integer 1, 2, 3β¦
π‘ Note that the meeting type cannot be modified and that we currently do not support conflicts between the start and end time of a meeting. The user has to take into account if the start or end time that is editted will overlap with any existing meetings in the meeting book.
Example:
edit-m 2 v/eunos
Expected Output:
Edited Meeting: Admin
Bidder Id: B12
Property Id: P12
Venue: eunos
Date: 12-05-2016
Start Time: 12:30
End Time: 13:00
Sorting the existing Meeting List
Sorts the meeting in the meeting list according to the meeting date. The sort will be either ascending or descending meeting dates.
- Command:
sort-m o/asc
sort-m o/dsc
- Format:
sort-m o/<ORDER>
π‘ The order is either asc or dsc which will sort the meetings according to the meeting date either ascending or descending respectively.
- Sorts the meeting in the displayed meeting list according to the meeting date.
Example:
sort-m o/asc
Expected Output:
Successfully sorted meeting
Find an Existing Meeting
Finds an existing meeting detail that is in the list.
- Command:
find-m
- Format:
find-m <INDEX_NUMBER> b/BIDDER_ID p/PROPERTY_ID v/VENUE d/DATE s/STARTTIME e/ENDTIME
π‘ Meetings can be found with by specifying at least one of the attributes. Not all attributes are compulsory.
π‘ Attributes can be any order and inputs can be in any case (Upper and Lower).
Example:
find-m b/B1 v/bedok
Expected Output:
2 meeting(s) listed!
The index will only correspond to the original list, NOT the filtered list (when used in find).
Calendar Navigation Features
Calendar navigation features are commands which help the agent to navigate through the calendar. There are only two commands next
and prev
which aim to better serve agents who are more inclined with command line interface.
Navigate To Next Month in Calendar
Brings the next month page to view.
- Command:
next
- Format:
next
Example:
next
Expected Output:
Display next month of Calendar
Picture Example:
Before (October) | After (November) |
---|---|
Navigate To Previous Month in Calendar
Brings the previous month page to view.
- Command:
prev
- Format:
prev
Example:
prev
Expected Output:
Display previous month of Calendar
Picture Example:
Before (November) | After (October) |
---|---|
Coming Soon
-
Integration of
Meeting
withCalendarView
where the dates stated inMeetingBook
, will be highlighted inCalenderView
. -
User would be able to mark if listed property is a closed deal or not.
-
Check for clash of
Meeting
timings across the different timings that are listed. -
User will not be able to create a
Meeting
with a very long venue length.