diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 38e9a4462c4..eff842fcc41 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -13,7 +13,7 @@ title: User Guide **PoochPlanner** is the quintessential address book, crafted exclusively for ***dog cafe owners***. We understand the unique challenges you face, which is why PoochPlanner comes packed with features designed specifically to simplify contact management for dog cafe owners like you. -By seamlessly combining the efficiency of a Command Line Interface (CLI) with the intuitive interface of a Graphical User Interface (GUI), PoochPlanner empowers you to effortlessly complete your contact management tasks two times faster than traditional GUI applications. +By seamlessly combining the efficiency of a Command Line Interface (CLI) with an intuitive Graphical User Interface (GUI), PoochPlanner empowers you to effortlessly complete your contact management tasks two times faster than traditional GUI applications. Get started by following the steps in this user guide! Experience the difference today with PoochPlanner — the ultimate solution tailored to your needs. @@ -28,13 +28,13 @@ PoochPlanner is your go-to address book, tailor-made for dog cafe owners like yo Contact | Definition and Examples --------|------------------ -Person | Any persons that do not hold a special relationship.
E.g. neighbours, work friends. -Staff | Any full-time or part-time employees.
E.g. waiters, waitresses, dishwashers. -Supplier | Any logistics partner that supplies stock for your dog cafe.
E.g. kibbles supplier, coffee beans supplier. -Maintainer | Any externally hired specialised persons who takes care of the dogs.
E.g. dog groomers, vet. +Person | Any persons that do not hold a special relationship.
E.g. neighbours, work friends +Staff | Any full-time or part-time employees.
E.g. waiters, waitresses, dishwashers +Supplier | Any logistics partner that supplies stock for your dog cafe.
E.g. kibbles suppliers, coffee beans suppliers +Maintainer | Any externally hired specialised persons who takes care of the dogs.
E.g. dog groomers, veterinarians -But our commitment to improving your contact management experience doesn't end there. In addition to the essential functionalities like add, search, edit, delete, help, list, clear, undo, and redo, **PoochPlanner** comes loaded with extra features. You can now pin important contacts, jot down notes, set reminders, rate and even sort your contacts - all to ensure a seamless and efficient workflow tailored to your needs as a busy dog cafe owner. +But our commitment to improving your contact management experience doesn't end there. In addition to the essential functionalities like adding contacts, searching for contacts, editing contacts, deleting contacts, viewing help menus, listing all contacts, clearing contacts lists, undoing commands, and redoing commands, **PoochPlanner** comes loaded with extra features. You can now pin important contacts, jot down notes, set reminders, rate and even sort your contacts - all to ensure a seamless and efficient workflow tailored to your needs as a busy dog cafe owner. Feature | Purpose @@ -43,21 +43,21 @@ Pin/Unpin | Pin/Unpin contacts so that you can easily access important contacts. Note | Add notes to contacts to keep track of any important details. Remind | View reminders of upcoming deadlines so that you never miss a task. Rate | Add ratings to your contacts so that you can easily track their performance. -Sort | View your contacts in a sorted list so that you can easily locate your contacts. +Sort | View your contacts in a sorted list so that you can easily filter and locate your contacts. ## Navigating this User Guide This user guide is designed to help you easily navigate the commands of PoochPlanner and make the most of this tool, whether you are a beginner or an experienced user. -- If you are eager to get started with PoochPlanner, head over to **[Quick Start](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#quick-start)** for easy-to-follow instructions on downloading PoochPlanner. +- If you are eager to get started with PoochPlanner, head over to our **[Quick Start](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#quick-start)** section for easy-to-follow instructions on downloading PoochPlanner. - If you are a new user, explore the following sections to familiarise yourself with the basics:
1. **[Navigating the GUI](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#navigating-the-gui)** : Learn about the inout box and contact cards.
2. **[Features](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#features)** : Discover the exciting features waiting for you.
- If you are an advanced user, dive into our special features to further enhance your experience: 1. **[Rate](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#rating-a-contact--rate)** : Add performance ratings to your contacts.
- 2. **[Pin](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#pinning-a-contact--pin)** & **[Unpin](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#unpinning-a-contact--unpin)** : Keep your frequent contacts accessible.
+ 2. **[Pin](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#pinning-a-contact--pin)** and **[Unpin](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#unpinning-a-contact--unpin)** : Keep your frequent contacts accessible.
3. **[Sort](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#sorting-the-address-book--sort)** : Organise your contacts based on your preferences.
4. **[Note](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#adding-a-note--note)** : Add notes to your contacts.
- 5. **[Remind](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#adding-a-note--note)** : View your contacts with notes with incoming deadlines.
+ 5. **[Remind](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#viewing-reminders--remind)** : View your contacts with notes containing incoming deadlines.
- If you want a quick overview of our commands, check out our **[Command Summary](https://ay2324s2-cs2103t-w10-2.github.io/tp/UserGuide.html#command-summary)**. - If you are encountering issues or have questions about PoochPlanner, Check out our **[Common Errors](https://github.com/AY2324S2-CS2103T-W10-2/tp/blob/master/docs/UserGuide.md#common-errors)** and **[FAQ](https://github.com/AY2324S2-CS2103T-W10-2/tp/blob/master/docs/UserGuide.md#faq)** for helpful troubleshooting tips and answers to common queries. @@ -85,39 +85,41 @@ Case-sensitive | The casing of the alphabetic characters matters (e.g. “good Case-insensitive | The casing of the alphabetic characters does not matter (e.g. “good” is taken to be equal to “GOOD”). Space-sensitive | The number of spaces in a command matters (e.g. “happy puppy” is different from “happypuppy”). Space-insensitive | The number of spaces in a command does not matter (e.g. “happy puppy” is taken to be equal to “happypuppy”). -Delimeter | A seperator in the command input that defines the boundaries between information in a command. ";" is a delimiter for our commands. +Delimiter | A separator in the command input that defines the boundaries between information in a command. ";" is a delimiter for our commands. Contact card | The box displayed for each contact, containing all their details. ## Quick start -1. Ensure you have Java `11` installed on your computer. +1. Ensure that you have Java `11` installed on your computer. -1. Download the latest `poochplanner.jar` from [here](https://github.com/AY2324S2-CS2103T-W10-2/tp/releases). +2. Download the latest `poochplanner.jar` from [here](https://github.com/AY2324S2-CS2103T-W10-2/tp/releases). -1. Copy the file to the folder you want to use as the _home folder_ for your PoochPlanner. +3. Copy the file to the folder you want to use as the _home folder_ for your PoochPlanner. -1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar poochplanner.jar` command to run the application.
- A GUI similar to the one below should appear in a few seconds. Note that the app does not contain sample data.
+4. Open a command terminal, and navigate to the folder where you put the jar file in. + +5. Use the command `java -jar poochplanner.jar` to run the application.
+A GUI similar to the one below should appear in a few seconds. Note that the app does not contain sample data.
![Ui](images/Ui.png) -1. Type the command in the input box and press enter to execute it. +6. Type any command into the input box and press enter to execute it. Some example commands you can try: - * `/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com` : Adds a general contact named `Janna` to your PoochPlanner. + * `/add-person ; name : Pooch ; phone : 98765435 ; address : Poochie Street 24 ; email : iampooch@gmail.com` : Adds a general contact named `Pooch` to your PoochPlanner. - * `/delete ; name : Janna` : Deletes the contact named Janna from your PoochPlanner. + * `/delete ; name : Pooch` : Deletes the contact named `Pooch` from your PoochPlanner. - * `/exit` : Exits the app. + * `/exit` : Exits the application. -1. Refer to the [Features](#features) below for the details of each command. +7. Refer to our [Features](#features) section below for the details of each command. -------------------------------------------------------------------------------------------------------------------- ## Navigating the GUI -PoochPlanner has a Graphical User Interface (GUI) that gives our users a pleasant visual experience. -Here's a quick look at the different GUI components and sections of the contact card. +PoochPlanner has a Graphical User Interface (GUI) that provides you with a pleasant visual experience. +Here is a quick look at the different GUI components and sections of the contact card. ### Basic Orientation @@ -139,9 +141,9 @@ Here's a quick look at the different GUI components and sections of the contact **:information_source: Notes about the command format:**
-* Words in `[parameter name]` are the parameter values to be supplied by the user.
- For example, `/add-staff ; name : [name]`, `[name]` is a parameter to be supplied by the user. - The actual command that the user inputs can be `/add-staff ; name : Poochie`. +* Words in `[parameter name]` are the parameter values to be supplied by you.
+ For example, `/add-staff ; name : [name]`, `[name]` is a parameter to be supplied by you. + For example, the actual command that you may input can be `/add-staff ; name : Poochie`. * Parameters can be in any order.
e.g. if the command specifies `address : [address] ; phone : [phone]`, `phone : [phone] ; address : [address]` is also acceptable. @@ -153,53 +155,53 @@ Here's a quick look at the different GUI components and sections of the contact #### Adding a contact: `add` -Adds a **person / staff / supplier / maintainer** contact so that your contact list is updated with new contacts. +Adds a **person / staff / supplier / maintainer** contact so that your contacts list is updated with new contacts. -The table below summarises the add command, format and examples for each contact type. +The table below summarises the `add` command, format and examples for each contact type. -| Adds a ... | Format & Examples | -|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Person** | Format :
`/add-person ; name : [name] ; phone : [phone] ; address : [address] ; email : [email]`

Example:
`/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com`
The above command adds a Person. Person's name is **_Janna_**, phone number is **_98765435_**, address is **_Poochie Street 24_**, and email is **_ihelppooches@gmail.com_**. | -| **Staff** | Format :
`/add-staff ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; salary : [salary/hr] ; employment : [part/full]`

Example:
`/add-staff ; name : Poochie ; phone : 98765435 ; address : Poochie Street 21 ; email : ilovecatstoo@gmail.com ; salary : $50/hr ; employment : part-time`
The above command adds a Staff. Staff's name is **_Poochie_**, phone number is **_98765435_**, address is **_Poochie Street 21_**, email is **_ilovecatstoo@gmail.com_**, salary is **_$50/hr_**, and employment is **_part-time_**. | -| **Supplier** | Format :
`/add-supplier ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price/(quantity)]`

Example:
`/add-supplier ; name : PetCo ; phone : 98673098 ; address : Meow Street 24 ; email : ilovewombatstoo@gmail.com ; product : kibble ; price : $98/bag`
The above command adds a Supplier. Supplier's name is **_Petco_**, phone number is **_98673098_**, address is **_Meow Street 24_**, and email is **_ilovewombatstoo@gmail.com_**, product is **_kibble_**, and price of product is **_$98/bag_**. | -| **Maintainer** | Format :
`/add-maintainer ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission/hr]`

Example:
`/add-maintainer ; name : Tom Tan ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com ; skill : trainer ; commission : $60/hr`
The above command adds a Maintainer. Maintainer's name is **_Tom Tan_**, phone number is **_98765435_**, address is **_Poochie Street 24_**, and email is **_ihelppooches@gmail.com_**, skill is **_trainer_** and commission is **_$60/hr_**. | +| Adds a ... | Format & Examples | +|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Person** | Format :
`/add-person ; name : [name] ; phone : [phone] ; address : [address] ; email : [email]`

Example:
`/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com`
The above command adds a `Person`. Person's name is **_Janna_**, phone number is **_98765435_**, address is **_Poochie Street 24_**, and email is **_ihelppooches@gmail.com_**. | +| **Staff** | Format :
`/add-staff ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; salary : [salary/hr] ; employment : [part-time/full-time]`

Example:
`/add-staff ; name : Poochie ; phone : 98765435 ; address : Poochie Street 21 ; email : ilovecatstoo@gmail.com ; salary : $50/hr ; employment : part-time`
The above command adds a `Staff`. Staff's name is **_Poochie_**, phone number is **_98765435_**, address is **_Poochie Street 21_**, email is **_ilovecatstoo@gmail.com_**, salary is **_$50/hr_**, and employment is **_part-time_**. | +| **Supplier** | Format :
`/add-supplier ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price/(quantity)]`

Example:
`/add-supplier ; name : PetCo ; phone : 98673098 ; address : Meow Street 24 ; email : ilovewombatstoo@gmail.com ; product : kibble ; price : $98/bag`
The above command adds a `Supplier`. Supplier's name is **_Petco_**, phone number is **_98673098_**, address is **_Meow Street 24_**, email is **_ilovewombatstoo@gmail.com_**, product is **_kibble_**, and price of product is **_$98/bag_**. | +| **Maintainer** | Format :
`/add-maintainer ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission/hr]`

Example:
`/add-maintainer ; name : Tom Tan ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com ; skill : trainer ; commission : $60/hr`
The above command adds a `Maintainer`. Maintainer's name is **_Tom Tan_**, phone number is **_98765435_**, address is **_Poochie Street 24_**, email is **_ihelppooches@gmail.com_**, skill is **_trainer_** and commission is **_$60/hr_**. |

Add before - Above is an example of adding a person contact named Janna : + Above is an example of adding a person contact named "Janna":
- Input: `/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com` + Input: /add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com
- Output: Adds a contact named `Janna` to the contact list. + Output: Adds a contact named "Janna" to the contact list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Adding duplicate name will not be allowed.
+* Adding duplicate names will not be allowed.
-* Name is case-insensitive but space-sensitive.
+* `name` is case-insensitive but space-sensitive.
-* Email must in the format {example}@{domain} or {example}@{domain}.{extension}
+* `email` must in the format {example}@{domain} or {example}@{domain}.{extension}.
-* Phone number must be in the format {Number} and at least 3 digits long.
+* `phone` must be in the format {Number} and at least 3 digits long.
-* Only one phone number is allowed to be inserted.
+* Only one phone number is allowed to be inserted per contact.
-* Salary and commission must be in format ${Number}/hr.
+* `salary` and `commission` must be in the format ${Number}/hr.
-* Price must be in format ${Number}/{quantity}.
-* Employment must be either "part-time" or "full-time".
+* `price` must be in the format ${Number}/{quantity}.
+* `employment` must be either "part-time" or "full-time".
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* You can undo an add command to revert your changes!
+* You can undo an `add` command to revert your changes!
@@ -208,48 +210,48 @@ The table below summarises the add command, format and examples for each contact Edits a **person / staff / supplier / maintainer** contact so that you can consistently modify and update your contact list with new details. -The table below summarises the edit command, format and examples for each contact type. +The table below summarises the `edit` command, format and examples for each contact type. -| Edits a ... | Format & Examples | -|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Person** | Format :
`/edit-person ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] }`

Example:
`/edit-person ; name : Mochie ; field : { address : Pooch Street 31}`
The above command edits the **address** field of `Mochie` to `Pooch Street 31`. | -| **Staff** | Format :
`/edit-staff ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; salary : [salary] ; employment : [part/full] }`

Example:
`/edit-staff ; name : Thomas ; field : { address : Poochie Street 25 ; employment : full-time }`
The above command edits the **address and employment** field of `Thomas` to `Poochie Street 25` and `full-time` respectively. | -| **Supplier** | Format :
`/edit-supplier ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price] }`

Example:
`/edit-supplier ; name : Supplier1 ; field : { product : kibble ; price : $75/bag}`
The above command edits the **product and price** field of `Supplier1` to `kibble` and `$75/bag` respectively. | -| **Maintainer** | Format :
`/edit-maintainer ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission] }`

Example:
`/edit-maintainer ; name : Maintainer1 ; field : { commission : $10/hr}`
The above command edits the **commission** field of `Maintainer1` to `$10/hr`. | +| Edits a ... | Format & Examples | +|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Person** | Format :
`/edit-person ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] }`

Example:
`/edit-person ; name : Mochie ; field : { address : Pooch Street 31}`
The above command edits the `address` field of `Mochie` to `Pooch Street 31`. | +| **Staff** | Format :
`/edit-staff ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; salary : [salary] ; employment : [part-time/full-time] }`

Example:
`/edit-staff ; name : Thomas ; field : { address : Poochie Street 25 ; employment : full-time }`
The above command edits the `address` and `employment` fields of `Thomas` to `Poochie Street 25` and `full-time` respectively. | +| **Supplier** | Format :
`/edit-supplier ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price] }`

Example:
`/edit-supplier ; name : Supplier1 ; field : { product : kibble ; price : $75/bag}`
The above command edits the `product` and `price` fields of `Supplier1` to `kibble` and `$75/bag` respectively. | +| **Maintainer** | Format :
`/edit-maintainer ; name : [name] ; field : { phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission] }`

Example:
`/edit-maintainer ; name : Maintainer1 ; field : { commission : $10/hr}`
The above command edits the `commission` field of `Maintainer1` to `$10/hr`. |

Add before - Above is an example of editing a person contact named Janna : + Above is an example of editing a person contact named "Janna":
- Input: `/edit-person ; name : Janna ; field : { address : Pooch Street 31 }` + Input: /edit-person ; name : Janna ; field : { address : Pooch Street 31 }
- Output: Edits the address field of the contact named `Janna` in the contact list. +Output: Edits the address field of the contact named "Janna" in your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Name is a compulsory field that is case-insensitive but space-sensitive.
+* `name` is a compulsory field that is case-insensitive but space-sensitive.
-* Name must be present in PoochPlanner.
+* A contact with the specified `name` must be present in your contacts list.
-* Contact type, i.e. Person / Staff / Supplier / Maintainer, must match command used. i.e. `/edit-person`, `/edit-staff`, `/edit-supplier` and `/edit-maintainer` respectively.
+* Contact type, i.e. person / staff / supplier / maintainer, must match command used. i.e. `/edit-person`, `/edit-staff`, `/edit-supplier` and `/edit-maintainer` respectively.
-* The field(s) to be edited must be a valid field (excluding name) within their contact type, i.e. Person / Staff / Supplier / Maintainer.
+* The field(s) to be edited must be valid field(s) (excluding name) within their contact type, i.e. Person / Staff / Supplier / Maintainer.
E.g. The command edit-person ; name : Pooch ; field : { product : kibble } is invalid because the product attribute does not exist in Person classes.
* At least one field must be provided.
-* Salary and commission must be in format ${Number}/hr.
+* `salary` and `commission` must be in the format ${Number}/hr.
-* Price must be in format ${Number}/{quantity}.
+* `price` must be in the format ${Number}/{quantity}.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
* You can edit multiple fields at the same time to save time!
@@ -260,7 +262,7 @@ The table below summarises the edit command, format and examples for each contac Filters a **person / staff / supplier / maintainer** contact in PoochPlanner so that you can locate your contacts more easily. Format:
-`/search ; [target-field] : [value]` +`/search ; [search-field] : [value]` Examples:
* `/search ; phone : 98765432` @@ -282,40 +284,51 @@ Examples:

Add before - Above is an example of searching for a contact named Tom : + Above is an example of searching for a contact named "Tom":
- Input: `/search ; name : Tom` + Input: /search ; name : Tom
- Output: Finds all contacts that have `Tom` within their name in the contact list. + Output: Finds all contacts that have "Tom" within their name from your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Any valid fields, such as `name`, `phone`, `address`, `email`, `salary`, `employment`, `price`, `product`, `skill`, `commission`, `tag` or `note`, can be provided.
+* Any valid fields, such as `name`, `phone`, `address`, `email`, `salary`, `employment`, `price`, `product`, `skill`, `commission`, `tag` or `note`, can be provided as a search field.
-* Multiple fields can be provided.
+* Multiple search fields may be provided.
-* Query is case-insensitive but space-sensitive.
-
+* Queries are case-insensitive but space-sensitive.
* For search queries regarding `salary`, `price` and `commission`: - * if you would like to search for exact `salary`/`price`/`commission`, you can follow this format (e.g. `$[Number]/hr`, `$[Number]/bag`). Only results that match the exact number will be shown. Examples: + * if you would like to search for the exact `salary`/`price`/`commission`, you may follow this format:
+ * For `salary` and `commission`: `$[Number]/hr`
+ * For `price`: `$[Number]/[quantifier]`
Only results that match the exact `Number` will be shown.
+ * If you would like to search for `salaries`/`prices`/`commissions` within a specified range instead, you may follow this format:
+ * For `salary` and `commission`: `$[Query digits]/hr`
+ * For `price`: `$[Query digits]/[quantifier]`
In this case, `Query digits` refer to the first few digits of a number. + * For instance, if you would like to search for all salaries in the range `$50-59/hr`, you may key in `/search ; salary : $5`, with `$5` as the search query. This displays all staff that are paid from `$50/hr` to `$59/hr`. + * Note that this query also searches for staff with salaries of exactly `$5/hr`, from `$500/hr` to `$599/hr` as well, and even in larger ranges too.
+ * This same query type also applies to `price` and `commission` fields.
+ * `quantifier` refers to counter terms by which products are sold in.
+ * Examples of valid `quantifier` values: + * "bag", "sack", "gram", "litre" etc. + * `quantifier` may assume any non-empty string. + * Examples of valid search commands: * `/search ; salary : $50/hr` - * `/search ; price : $50/bag` - * If you want to search for `salaries`/`prices`/`commissions` within a specified range instead, you can follow this format `$[Query digits]`. In this case, query digits refer to the first few digits of a number. - * For instance, if you want to query for all salaries in the range `$50-59/hr`, you can key in `/search ; salary : $5`, with `$5` as the search query. This displays all staff that are paid from `$50/hr` to `$59/hr`. - * Note that this query also returns staff with salaries exactly `$5/hr`, from `$500/hr` to `$599/hr` as well, and even in larger ranges too. This same query type also applies to `price` and `commission`. - -* Keying in repeated fields (e.g. ) + * `/search ; price : $50/bag`
+* Keying in repeated fields will result in an error message as follows:
+ `Multiple values specified for the following single-valued field(s): ; [duplicated field] :`
+ * Example of a search command with a duplicated search field: + * `/search ; name : Pooch ; name : Pooch` +
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* You can use `/list` to see the full list again after searching for a contact!
-* For your convenience, if there are repeated fields, only the value of the latest repeated field will be processed. So, if you have mistakenly entered the wrong value, simply retype the field and value in the same line.
+* You can use `/list` to see your full contacts list again after searching for a contact!
@@ -329,28 +342,28 @@ Format:
Example:
* `/delete ; name : Poochie` - The above command deletes the contact named `Poochie`, provided `Poochie` exists in the contact list. + The above command deletes the contact named `Poochie`, provided `Poochie` exists in your contacts list.

Add before - Above is an example of deleting a person contact named Janna : + Above is an example of deleting a contact named "Janna":
- Input: `/delete ; name : Janna` + Input: /delete ; name : Janna
- Output: Delete the contact named `Janna` in the contact list. + Output: Deletes the contact named "Janna" from your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Name is a compulsory field that is **case-insensitive** but **space-sensitive**.
+* `name` is a compulsory field that is case-insensitive but space-sensitive.
-* Name must be present in PoochPlanner.
+* A contact with the specified `name` must be present in your contacts list.
### Special Features @@ -360,49 +373,49 @@ Example:
Gives a **person / staff / supplier / maintainer** contact from your PoochPlanner a performance rating so that cafe owners can track the performance of their contacts. Format:
-`/rate ; name : [name] ; rating : [rating value from 1-5]` +`/rate ; name : [name] ; rating : [rating value from 0-5]` Example: * `/rate ; name : Poochie ; rating : 3` - The above command rates the contact named `Poochie` with a rating of `3`, provided `Poochie` exists in the contact list. + The above command rates the contact named `Poochie` with a rating of `3`, provided a contact with name `Poochie` exists in your contacts list.

Add before - Above is an example of rating a person contact named Janna : + Above is an example of rating a person contact named "Janna":
- Input: `/rate ; name : Janna ; rating : 5` + Input: /rate ; name : Janna ; rating : 5
- Output: Rate the contact named `Janna` with a rating of `5` in the contact list. + Output: Rates the contact named "Janna" with a rating of 5 in your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Rating can only accept whole number values from 1 to 5 inclusive.
+* `rating` can only accept whole number values from `0` to `5` inclusive.
-* Name must be present in PoochPlanner.
+* A contact with the `name` must be present in your contacts list.
-* Name and Rating is a compulsory field that is **case-insensitive** but **space-sensitive**.
+* `name` and `rating` are compulsory fields that are case-insensitive but space-sensitive.
-* Rating of 0 is equivalent to no rating given and will not display any rating.
+* A `rating` of `0` is equivalent to no rating given and will not display any rating.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* You can set rating to '0' to reset the rating!
+* You can set a contact's `rating` to `0` to reset its rating!
#### Pinning a contact : `pin` -Pins the specified contact on PoochPlanner so that your important contacts will consistently appear at the top of your contact list. +Pins the specified contact on PoochPlanner so that your important contacts will consistently appear at the top of your contacts list. Format:
`/pin ; name : [name]` @@ -410,45 +423,45 @@ Format:
Example:
* `/pin ; name : Poochie` - The above command pins the contact named `Poochie`, provided `Poochie` exists in the contact list. + The above command pins the contact named `Poochie`, provided a contact with the name `Poochie` exists in your contacts list.

Add before - Above is an example of pinning a person contact named Tom : + Above is an example of pinning a person contact named "Tom":
- Input: `/pin ; name : Tom` + Input: /pin ; name : Tom
- Output: Pins the contact named `Tom` in the contact list. + Output: Pins the contact named "Tom" in your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Name is a compulsory field that is case-insensitive but space-sensitive.
+* `name` is a compulsory field that is case-insensitive but space-sensitive.
-* Name must be present in PoochPlanner.
+* A contact with the specified `name` must be present in your contacts list.
-* Using the pin command on a contact that has been pinned does not make any changes to PoochPlanner.
+* Using the `pin` command on a contact that has been pinned does not make any changes to your contacts list.
-* A contact will still remain pinned if you use the undo command once on a contact that has been pinned twice or more.
+* A contact will still remain pinned if you use the `undo` command once on a contact that has been pinned twice or more.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* Use the pin command for your frequently contacted addresses!
-* For your convenience, if there are repeated fields, only the value of the latest repeated field will be processed. So, if you have mistakenly entered the wrong value, simply retype the field and value in the same line.
+* Use the `pin` command for your frequently contacted addresses!
+* For your convenience, if you have accidentally made a typo, you may conveniently rectify your mistake by retyping the field and value in your command as only the latest field will be processed.
#### Unpinning a contact : `unpin` -Unpins the specified contact on PoochPlanner so that your less important contacts can be removed from the top of your contact list. +Unpins the specified contact on PoochPlanner so that your less important contacts can be removed from the top of your contacts list. Format:
`/unpin ; name : [name]` @@ -456,43 +469,43 @@ Format:
Example:
* `/unpin ; name : Poochie` - The above command unpins the contact named `Poochie`, provided `Poochie` exists and is pinned in the contact list. + The above command unpins the contact named `Poochie`, provided a contact named `Poochie` exists and is pinned in your contacts list.

Add before - Above is an example of unpinning a person contact named Tom : + Above is an example of unpinning a person contact named "Tom":
- Input: `/unpin ; name : Tom` + Input: /unpin ; name : Tom
- Output: Unpins the contact named `Tom` in the contact list. + Output: Unpins the contact named "Tom" in your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Name is a compulsory field that is case-insensitive but space-sensitive.
+* `name` is a compulsory field that is case-insensitive but space-sensitive.
-* Name must be present in PoochPlanner.
+* A contact with the specified `name` must be present in your contacts list.
-* Using the unpin command on a contact that has been unpinned does not make any changes to PoochPlanner.
+* Using the `unpin` command on a contact that has been unpinned does not make any changes to your contacts list.
-* A contact will still remain unpinned if you use the undo command once on a contact that has been unpinned twice or more.
+* A contact will still remain unpinned if you use the `undo` command once on a contact that has been unpinned twice or more.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* For your convenience, if there are repeated fields, only the value of the latest repeated field will be processed. So, if you have mistakenly entered the wrong value, simply retype the field and value in the same line.
+* For your convenience, if you have accidentally made a typo, you may conveniently rectify your mistake by retyping the field and value in your command as only the latest field will be processed.
#### Sorting the address book : `sort` -Sorts the address book by a target field in ascending order so that you can display your contacts neatly and locate them easily. +Sorts the address book by a target field in lexicographical order so that you can display your contacts neatly and locate them easily. Format:
`/sort ; field : [target-field]` @@ -500,29 +513,29 @@ Format:
Example:
* `/sort ; field : name` - The above command sorts the contacts by name in lexicographical order. + The above command sorts the contacts by `name` in lexicographical order.

Add before - Above is an example of sorting a person by name : + Above is an example of sorting your contacts list by the name field:
- Input: `/sort ; field : name` + Input: /sort ; field : name
- Output: Sorts all contacts by name in lexicographical order. + Output: Sorts all your contacts by name in lexicographical order.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* This command sorts the contacts in the address book in ascending lexicographical order (e.g. Alice, Bob, Charlie etc.).
+* This command sorts the contacts in the address book in lexicographical order (e.g. Alice, Bob, Charlie etc.).
-* Sorts by specifying a valid field, such as `name`, `phone`, `email`, `address`, `salary`, `employment`, `price`, `product`, `skill`, `commission`, `tag` or `note`.
+* This command sorts by specifying a valid field, such as `name`, `phone`, `email`, `address`, `salary`, `employment`, `price`, `product`, `skill`, `commission`, `tag` or `note`.
* All field inputs are case-insensitive.
@@ -532,8 +545,8 @@ Example:
#### Adding a note : `note` -Adds a note to a specified person from PoochPlanner so that you can keep track of any details regarding the contact. -You can also specify an optional deadline for the note. +Adds a note to a specified person in your PoochPlanner so that you can keep track of any additional details regarding your contacts. +You may also specify an optional deadline for the note. Formats:
`/note ; name : [name] ; note : [note message]` @@ -541,54 +554,56 @@ Formats:
`/note ; name : [name] ; note : [note message] ; deadline : [date]` Examples:
+ +Add a note without a deadline:
* `/note ; name : Moochie ; note : get 10kg of matcha from moochie` The above command adds the note "get 10kg of matcha from moochie" to the contact with name `Moochie`. - +Add a note with a deadline:
* `/note ; name : Moochie ; note : get 10kg of matcha from moochie ; deadline : 2020-10-10` The above command adds the note "get 10kg of matcha from moochie" to the contact with name `Moochie`. - It also sets a deadline of the note to Oct 10 2020. + It also sets a deadline of the note to `Oct 10 2020`.

Add before - Above is an example of adding to a person contact named Ben : + Above is an example of adding to a contact named "Ben":
- Input: `/note ; name : Ben ; note : pay his salary of $1500 ; deadline : 2024-04-10` + Input: /note ; name : Ben ; note : pay his salary of $1500 ; deadline : 2024-04-10
- Output: Add a note with a deadline to the contact named `Ben` in the contact list. + Output: Adds a note with a deadline to the contact named "Ben" in your contacts list.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Name and Note are compulsory fields.
-* Deadline are optional fields.
-* Deadlines must follow "YYYY-MM-DD" format.
-* Names are case-insensitive but space-sensitive.
-* Names must be present in PoochPlanner.
-* Notes cannot be empty. +* `name` and `note` are compulsory fields.
+* `deadline` is an optional field.
+* `deadline` must follow "YYYY-MM-DD" format.
+* `name` is case-insensitive but space-sensitive.
+* A contact with the specified `name` must be present in your contacts list.
+* `note` can take any non-empty string.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* Notes added are intended to be short details!
-* To remove a note, specify in the note field "No note here". This note is case-sensitive.
-* For your convenience, if there are repeated fields, only the value of the latest repeated field will be processed. So, if you have mistakenly entered the wrong value, simply retype the field and value in the same line.
-* Refrain from using ";" in your note. The use of ";" makes the command difficult to parse as ";" is used as a delimiter. This may result in your note not being captured. +* Notes added are intended to be short details!
+* To remove a note, specify in the note field `No note here`. **This note is case-sensitive**.
+* For your convenience, if you have accidentally made a typo, you may conveniently rectify your mistake by retyping the field and value in your command as only the latest field will be processed.
+* Refrain from using `;` in your note. The use of `;` makes the command difficult to parse as ";" is used as a delimiter. This may result in your note not being captured.
#### Undoing a command : `undo` -Undoes the most recent action so that you can revert back changes easily. +Undoes the most recent action so that you can revert changes back easily. Format:
`/undo` @@ -600,14 +615,14 @@ Example:
-Below is an example of undoing an add command : +Below is an example of undoing an `add` command:

Add before - Input: `/add-person ; name : Tom ; phone : 99983932 ; address : Poochie Street 20 ; email : icleanpooches@gmail.com` + Input: /add-person ; name : Tom ; phone : 99983932 ; address : Poochie Street 20 ; email : icleanpooches@gmail.com
- Output: Adds a contact named `Tom` to the contact list. + Output: Adds a contact named "Tom" to your contacts list.
@@ -618,33 +633,33 @@ Below is an example of undoing an add command :

Add before - Input: `/undo` + Input: /undo
- Output: Undo the add command above for the contact named `Tom`. + Output: Undoes the add command above for the contact named "Tom".

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* There is no field required for this command.
+* There are no additional fields required for this command.
-* Any unnecessary parameter or value after /undo will simply be ignored.
+* Any unnecessary parameter or value after `/undo` will simply be ignored.
-* This command can only be executed when at least one changes have been made.
+* This command can only be executed when at least one change has been made.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* `Undo` works on all commands that modified the address book.
-* `Undo` will not work on commands that do not modify the address book such as `Search`, `List` and `Help` commands!
+* `Undo` works on all commands that have modified your contacts list.
+* `Undo` will not work on commands that do not modify your contacts list such as `search`, `list` and `help` commands!
#### Redoing a command : `redo` -Redoes an action so that you can reverse the unintentional uses of the undo command. +Redoes an action so that you can reverse any unintentional uses of the `undo` command. Format:
`/redo` @@ -652,17 +667,17 @@ Format:
Example:
* `/redo` - The above command redoes the most recent undo command. + The above command redoes the most recent `undo` command.
-Below is an example of redoing an add command : +Below is an example of redoing an add command :

Add before - Input: `/undo` + Input: /undo
- Output: Undo the add command for the contact named `Tom`. + Output: Undoes the add command for the contact named "Tom".
@@ -673,28 +688,28 @@ Below is an example of redoing an add command :

Add before - Input: `/redo` + Input: /redo
- Output: Redo the add command for the contact named `Tom`. + Output: Redoes the add command for the contact named "Tom".

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* There is no field required for this command.
+* There are no additional fields required for this command.
-* Any unnecessary parameter or value after /redo will simply be ignored.
+* Any unnecessary parameter or value after `/redo` will simply be ignored.
-* This command can only be executed when at least one undo command is executed.
+* This command can only be executed when at least one `undo` command has been executed.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* `Redo` works on all commands that modified the address book.
-* `Redo` will not work on commands that do not modify the address book such as `Search`, `List` and `Help` commands!
+* `Redo` works on all commands that modified your contacts list.
+* `Redo` will not work on commands that do not modify your contacts list such as `search`, `list` and `help` commands!
@@ -708,39 +723,39 @@ Format:
Examples:
* `/help ; command : delete`
- The above command gives help for delete command. + The above command gives help for the `delete` command. * `/help ; command : add`
- The above command gives help for add command. + The above command gives help for the `add` command.

Add before - Above is an example of getting help for delete command : + Above is an example of getting help for the delete command:
- Input: `/help ; command : delete` + Input: /help ; command : delete
- Output: Shows a pop-up help window for add command. + Output: Shows a pop-up help window for the delete command.

-
:exclamation: **Constraints:**
+
:exclamation: **Constraints:**
-* Command is a compulsory field.
+* `command` is a compulsory field.
-* Help is given for all commands. Valid command inputs include general, add, clear, delete, edit, - exit, list, note, pin, unpin, undo, redo, rate, remind, search, sort. +* Help is given for all valid commands in PoochPlanner. Valid command inputs include `general`, `add`, `clear`, `delete`, `edit`, + `exit`, `list`, `note`, `pin`, `unpin`, `undo`, `redo`, `rate`, `remind`, `search`, `sort`.
-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* If you wish to get help for all commands, enter the command input as general to be directed to a general help window.
-* For your convenience, if there are repeated fields, only the value of the latest repeated field will be processed. So, if you have mistakenly entered the wrong value, simply retype the field and value in the same line.
+* If you wish to get help for all commands, enter the command input as `general` to open the general help window.
+* For your convenience, if you have accidentally made a typo, you may conveniently rectify your mistake by retyping the field and value in your command as only the latest field will be processed.
@@ -761,26 +776,26 @@ Example:

Add before - Above is an example of getting reminders of contacts with relevant notes : + Above is an example of getting reminders of contacts with notes containing deadlines from today onwards:
- Input: `/remind` + Input: /remind
- Output: Shows all contacts with note deadlines from today (April 4 2024) onwards. + Output: Shows all contacts with note deadlines from today (April 4 2024 in this example) onwards.

-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* Specifying '/remind [any text]' is equivalent to '/remind'.
-* To return back to full contact list, use the command '/list'. +* Specifying `/remind [any text]` is equivalent to `/remind`.
+* To return back to your full contacts list, use the command `/list`.
#### Clearing contacts : `clear` -Clears all contacts in contact list so that you can delete all contacts easily. +Removes all contacts from your contacts list so that you can reset your contacts list easily. Format:
`/clear` @@ -788,32 +803,32 @@ Format:
Example:
* `/clear`
- The above command clears all contacts in the contact list. + The above command clears all contacts from your contacts list.

Add before - Above is an example of clearing the contact list : + Above is an example of clearing your contacts list:
- Input: `/clear` + Input: /clear
- Output: Clears all contacts from the contact list. + Output: Clears all contacts from your contacts list.

-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* To return back to full contact list, use the command '/undo'. +* To return back to your full contacts list, use the command `/undo`.
#### Listing contacts : `list` -Lists all contacts in contact list so that you can view all contacts in the contact list at once. +Lists all contacts in your PoochPlanner so that you can view all contacts in your contacts list at once. Format:
`/list` @@ -821,48 +836,48 @@ Format:
Example:
* `/list`
- The above command lists all contacts in the contact list. + The above command lists all contacts in your contacts list.

Add before - Above is an example of listing all contacts : + Above is an example of listing all contacts:
- Input: `/list` + Input: /list
- Output: Lists all contacts from the contact list. + Output: Lists all contacts from your contacts list.

-
:bulb: **Tips:**
+
:bulb: **Tips:**
-* To go back to full contact list after using any filtering commands, i.e. `search`, use the command '/list'. +* To go back to your full contacts list after using any filtering commands, i.e. `search`, use the command `/list`.
### Exiting the program : `exit` -Exits the program. +Exits your PoochPlanner application. Format: `/exit` ### Saving the data -Data in PoochPlanner is saved in the hard disk automatically after any command that changes the data. There is no need to save manually. +Data in your PoochPlanner is saved in the hard disk automatically after any command that changes the data. There is no need to save manually. ### Editing the data file -Data in PoochPlanner is saved automatically as a JSON file `[JAR file location]/data/poochplanner.json`. Advanced users are welcome to update data directly by editing that data file. +Data in your PoochPlanner is saved automatically as a JSON file `[JAR file location]/data/poochplanner.json`. Advanced users are welcome to update data directly by editing their `poochplanner.json` file. -
:exclamation: **Caution:**
+
:exclamation: **Caution:**
-Manually editing the JSON file is not advised and should be taken with extreme caution. If your changes to the data file makes its format invalid, PoochPlanner may discard all data and start with an empty data file on the next run. Hence, it is recommended to take a backup of the file before editing it.
-Furthermore, certain manual edits can cause the PoochPlanner to behave in unexpected ways (e.g., if a value entered lies outside the acceptable range). +Manually editing the JSON file is not advised and should be taken with extreme caution. If your changes to the data file makes its format invalid, your PoochPlanner may discard all data and start with an empty data file on the next run. Hence, it is recommended to make a backup of the file before editing it.
+Furthermore, certain manual edits can cause your PoochPlanner to behave in unexpected ways (e.g., if a value entered lies outside its acceptable range).
-------------------------------------------------------------------------------------------------------------------- @@ -872,40 +887,39 @@ Furthermore, certain manual edits can cause the PoochPlanner to behave in unexpe ### Unknown Command If you encounter an unknown command error, please ensure the command entered is a valid command mentioned -in our feature list. Below is an example of an unknown command input and the corresponding error message. +in our [Command Summary](#command-summary). Below is an example of an unknown command input and the corresponding error message.

Add before - Image depicting an unknown command with an unknown command error message. + Image depicting an unknown command with the unknown command error message.
### Invalid Field -If you encounter an invalid field error, please ensure the field entered is a valid field for the command you -are using. Below is an example of a command with an invalid field and the corresponding error message. +If you encounter an invalid field error, please ensure that the field entered is a valid field for the command you +are using. Refer to our [Command Summary](#command-summary) for a list of valid fields for each PoochPlanner command.
Below is an example of a command with an invalid field and the corresponding error message.

Add before - Image depicting a help command with an invalid field error message. + Image depicting a `help` command with its invalid field error message.
### Missing Field -If you encounter a missing field error, please ensure the fields listed in the error message are present in your command input. -Below is an example of a command with a missing field and the corresponding error message. +If you encounter a missing field error, please ensure the fields listed in the error message are present in your command input. Refer to our [Command Summary](#command-summary) for a list of fields required for all PoochPlanner commands. Below is an example of a command with a missing field and the corresponding error message.

Add before - Image depicting a note command with a missing field error message. + Image depicting a `note` command with its missing field error message.
@@ -923,7 +937,7 @@ Below is an example of a command with a missing field and the corresponding erro 2. Navigate to the directory where the JAR file is located. 3. Enter `java -jar poochplanner.jar` and the PoochPlanner Application should launch. -**Method 2**: Using `.bat/.sh` Scripts +**Method 2**: Using `.bat`/`.sh` Scripts 1. Create a new text file and paste the following line into the file: ``` java -jar [JAR file location]/poochplanner.jar @@ -941,13 +955,13 @@ Below is an example of a command with a missing field and the corresponding erro ### Loading Data from Another Computer -**Q**: How can I transfer my PoochContacts to another computer?
-**A**: Install PoochPlanner in your target computer and overwrite the empty data file it creates with the file that contains the data of your previous poochplanner home folder by copying the contents of the `poochplanner.json` file from your current computer and pasting it inside the `poochplanner.json` file of your target computer. +**Q**: How can I transfer my PoochPlanner contacts to another computer?
+**A**: Install PoochPlanner in your target computer and overwrite the empty data file it creates with the file that contains the data of your previous PoochPlanner home folder by copying the contents of the `poochplanner.json` file from your current computer and pasting it inside the `poochplanner.json` file of your target computer. ### Using PoochPlanner **Q**: What are the available commands in PoochPlanner?
-**A**: Please refer to the [Command Summary](#command-summary) for the list of available commands. +**A**: Please refer to our [Command Summary](#command-summary) for the list of available commands. **Q**: Do I need an internet connection to use PoochPlanner?
**A**: All of PoochPlanner’s functionality can be used offline! No internet connection is required. @@ -955,20 +969,20 @@ Below is an example of a command with a missing field and the corresponding erro **Q**: How do I save my data?
**A**: Data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually. -**Q**: If I have a lot of PoochContacts, is there a way for me to access my most frequently used PoochContacts easily?
-**A**: Yes! You may wish to make use of our `pin` feature, which keeps all of your pinned contacts at the very top of your PoochContact list, ensuring that you are always able to see them!

The syntax for the `pin` command is as follows: +**Q**: If I have a lot of contacts, is there a way for me to access my most frequently used contacts easily?
+**A**: Yes! You may wish to keep your most important contacts at the top of your contacts list. With our `pin` feature, PoochPlanner ensures that you are always to see them!

The syntax for the `pin` command is as follows: ``` /pin ; name : [name] ``` -**Q**: How can I remove a PoochContact's rating?
-**A**: In PoochPlanner, a `0` rating corresponds to a non-rating (no rating is provided). Therefore, to remove a PoochContact's rating, simply give the target PoochContact a rating of `0`.

The syntax for the `rate` command is as follows: +**Q**: How can I remove a contact's rating?
+**A**: In PoochPlanner, a `0` rating corresponds to a non-rating (no rating is provided). Therefore, to remove a contact's rating, simply give the target contact a rating of `0`.

The syntax for the `rate` command is as follows: ``` /rate ; name : [name] ; rating : [rating] ``` -**Q**: Can I append a note to a PoochContact when creating it?
-**A**: Yes you can! In fact, you may also rate PoochContacts at their time of creation. Simply enter their respective [prefixes](#prefix-summary) and you should be on your way!

+**Q**: Can I append a note to a contact when creating it?
+**A**: Yes you can! In fact, you may also rate a contact at its time of creation. Simply append the `; note :` prefix, and you should be on your way!

Example: Adding a new contact with a note and a rating ``` /add-person ; name : Pooch ; phone : 98883888 ; address : Pooch Street 32 ; email : impooch@gmail.com ; rating : 3 ; note : Hello my name is Pooch! @@ -978,7 +992,7 @@ Example: Adding a new contact with a note and a rating ## Known issues -1. **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.json` file created by the application before running the application again. +1. **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.json` file created by your PoochPlanner application before running PoochPlanner again. -------------------------------------------------------------------------------------------------------------------- @@ -986,45 +1000,45 @@ Example: Adding a new contact with a note and a rating A **prefix** is an integral construct of PoochPlanner's commands that allow PoochPlanner to uniquely identify contact fields. -| Prefix | Field | Contact Type | -|------------------|-------------------------------------------------------------|----------------| -| `; name :` | Specifies the name of the PoochContact | All | -| `; phone :` | Specifies the phone number of the PoochContact | All | -| `; address :` | Specifies the addresss of the PoochContact | All | -| `; email :` | Specifies the email address of the PoochContact | All | -| `; note :` | Specifies the note appended to the PoochContact | All | -| `; rating :` | Specifies the rating given to the PoochContact | All | -| `; deadline :` | Specifies the deadline of note appended to the PoochContact | All | -| `; command :` | Specifies the command type to give help for | All | -| `; salary :` | Specifies the salary of the PoochContact | Staff | -| `; employment :` | Specifies the employment of the PoochContact | Staff | -| `; product :` | Specifies the product sold by the PoochContact | Supplier | -| `; price :` | Specifies the price charged by the PoochContact | Supplier | -| `; skill :` | Specifies the type of service offered by the PoochContact | Maintainer | -| `; commission :` | Specifies the commission charged by the PoochContact | Maintainer | +| Prefix | Field | Contact Type | +|------------------|---------------------------------------------------------|----------------| +| `; name :` | Specifies the name of the contact. | All | +| `; phone :` | Specifies the phone number of the contact. | All | +| `; address :` | Specifies the address of the contact. | All | +| `; email :` | Specifies the email address of the contact. | All | +| `; note :` | Specifies the note appended to the contact. | All | +| `; rating :` | Specifies the rating given to the contact. | All | +| `; deadline :` | Specifies the deadline of note appended to the contact. | All | +| `; command :` | Specifies the command type to give help for. | All | +| `; salary :` | Specifies the salary of the contact. | Staff | +| `; employment :` | Specifies the employment of the contact. | Staff | +| `; product :` | Specifies the product sold by the contact. | Supplier | +| `; price :` | Specifies the price charged by the contact. | Supplier | +| `; skill :` | Specifies the type of service offered by the contact. | Maintainer | +| `; commission :` | Specifies the commission charged by the contact. | Maintainer | ## Command Summary -| Action | Format and Example | -|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Add General Contact** | Format :
`/add-person ; name : [name] ; phone : [phone] ; address : [address] ; email : [email]`

Example :
`/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : iamjanna@gmail.com` | -| **Add Staff** | Format :
`/add-staff ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; salary : [salary] ; employment : [part-time/full-time]`

Example :
`/add-staff ; name : Poochie ; phone : 98765435 ; address : Poochie Street 21 ; email : ilovecatstoo@gmail.com ; salary : $50/hr ; employment : part-time` | -| **Add Supplier** | Format :
`/add-supplier ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price]`

Example :
`/add-supplier ; name : PetCo ; phone : 98673098 ; address : Meow Street 24 ; email : ilovewombatstoo@gmail.com ; product : kibble ; price : $98/bag` | -| **Add Maintainer** | Format :
`/add-maintainer ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission]`

Example :
`/add-maintainer ; name : Tom Tan ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com ; skill : trainer ; commission : $60/hr` | -| **Edit General Contact** | Format :
`/edit-person ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-person ; name : Poochie ; field : { address : Poochie Street 25 }` | -| **Edit Staff** | Format :
`/edit-staff ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-staff ; name : Poochie ; field : { salary : $40/hr ; employment : part-time }` | -| **Edit Supplier** | Format :
`/edit-supplier ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-supplier ; name : Poochie ; field : { product : kibble ; price : $75/bag }` | -| **Edit Maintainer** | Format :
`/edit-maintainer ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-maintainer ; name : Poochie ; field : { commission : $10/hr }` | -| **Delete** | Format :
`/delete ; name : [name] `

Example :
`/delete ; name : Poochie` | -| **Search** | Format :
`/search ; target-field : [value]`

Example :
`/search ; name : Poochie` | -| **List** | Format :
`/list`

Example :
`/list` | -| **Help** | Format :
`/help ; command : [command type]`

Example :
`/help ; command : delete` | -| **Rate** | Format :
`/rate ; name : [name] ; rating : [rating]`

Example :
`/rate ; name : Poochie ; rating : 5` | -| **Undo** | Format :
`/undo`

Example :
`/undo` | -| **Redo** | Format :
`/redo`

Example :
`/redo` | -| **Pin** | Format :
`/pin ; name : [name]`

Example :
`/pin ; name : Poochie` | -| **Unpin** | Format :
`/unpin ; name : [name]`

Example :
`/unpin ; name : Poochie` | -| **Sort** | Format :
`/sort ; field : [target-field]`

Example :
`/sort ; field ; name` | -| **Note** | Format :
`/note ; name : [name] ; note : [note]`
or
`/note ; name : [name] ; note : [note] ; deadline : [deadline]`

Example :
`/note ; name : Poochie ; note : get dog for groomers ; deadline : 2020-10-10` | -| **Remind** | Format :
`/remind`

Example :
`/remind` | -| **Exit** | Format :
`/exit`

Example :
`/exit` | +| Action | Format and Example | +|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Add Person** | Format :
`/add-person ; name : [name] ; phone : [phone] ; address : [address] ; email : [email]`

Example :
`/add-person ; name : Janna ; phone : 98765435 ; address : Poochie Street 24 ; email : iamjanna@gmail.com` | +| **Add Staff** | Format :
`/add-staff ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; salary : [salary] ; employment : [part-time/full-time]`

Example :
`/add-staff ; name : Poochie ; phone : 98765435 ; address : Poochie Street 21 ; email : ilovecatstoo@gmail.com ; salary : $50/hr ; employment : part-time` | +| **Add Supplier** | Format :
`/add-supplier ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; product : [product] ; price : [price]`

Example :
`/add-supplier ; name : PetCo ; phone : 98673098 ; address : Meow Street 24 ; email : ilovewombatstoo@gmail.com ; product : kibble ; price : $98/bag` | +| **Add Maintainer** | Format :
`/add-maintainer ; name : [name] ; phone : [phone] ; address : [address] ; email : [email] ; skill : [skill] ; commission : [commission]`

Example :
`/add-maintainer ; name : Tom Tan ; phone : 98765435 ; address : Poochie Street 24 ; email : ihelppooches@gmail.com ; skill : trainer ; commission : $60/hr` | +| **Edit Person** | Format :
`/edit-person ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-person ; name : Poochie ; field : { address : Poochie Street 25 }` | +| **Edit Staff** | Format :
`/edit-staff ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-staff ; name : Poochie ; field : { salary : $40/hr ; employment : part-time }` | +| **Edit Supplier** | Format :
`/edit-supplier ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-supplier ; name : Poochie ; field : { product : kibble ; price : $75/bag }` | +| **Edit Maintainer** | Format :
`/edit-maintainer ; name : [name] ; field : { target-field : [value] }`

Example :
`/edit-maintainer ; name : Poochie ; field : { commission : $10/hr }` | +| **Delete** | Format :
`/delete ; name : [name] `

Example :
`/delete ; name : Poochie` | +| **Search** | Format :
`/search ; target-field : [value]`

Example :
`/search ; name : Poochie` | +| **List** | Format :
`/list`

Example :
`/list` | +| **Help** | Format :
`/help ; command : [command type]`

Example :
`/help ; command : delete` | +| **Rate** | Format :
`/rate ; name : [name] ; rating : [rating]`

Example :
`/rate ; name : Poochie ; rating : 5` | +| **Undo** | Format :
`/undo`

Example :
`/undo` | +| **Redo** | Format :
`/redo`

Example :
`/redo` | +| **Pin** | Format :
`/pin ; name : [name]`

Example :
`/pin ; name : Poochie` | +| **Unpin** | Format :
`/unpin ; name : [name]`

Example :
`/unpin ; name : Poochie` | +| **Sort** | Format :
`/sort ; field : [target-field]`

Example :
`/sort ; field ; name` | +| **Note** | Format :
`/note ; name : [name] ; note : [note]`
or
`/note ; name : [name] ; note : [note] ; deadline : [deadline]`

Example :
`/note ; name : Poochie ; note : get dog for groomers ; deadline : 2020-10-10` | +| **Remind** | Format :
`/remind`

Example :
`/remind` | +| **Exit** | Format :
`/exit`

Example :
`/exit` |