diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index 1735459153b..f3bb47121ac 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -226,7 +226,7 @@ Given below is an example usage scenario and how the edit patient feature behave
**Step 3.** A new `EditPersonDescriptor` object is created with the new ward details.
A new `EditCommand` instance will be created with the index of the patient to be edited and the new `EditPersonDescriptor` object.
-**Step 4.** The `EditCommand` instace is returned to the `LogicManager` and `execute` is called.
+**Step 4.** The `EditCommand` instance is returned to the `LogicManager` and `execute` is called.
**Step 5.** The `EditCommand` instance calls `Model#setPerson(Person, Person)` to edit the patient's details.
The patient specified will have its ward updated to the new ward specified.
diff --git a/docs/UserGuide.md b/docs/UserGuide.md
index fd1a3e849b0..fb9dc93d87b 100644
--- a/docs/UserGuide.md
+++ b/docs/UserGuide.md
@@ -19,7 +19,7 @@ If you wish to get started immediately, you can skip the introduction and head s
If you are a current user, feel free to jump into our [table of contents](#table-of-contents) to find the section you need help with.
-**:information_source: Note:** The Nursing Address Book (NAB) application is currently available only in English. However, we are actively working on expanding the language support, and plan to offer additional language options in future releases.
+:information_source: Note: The Nursing Address Book (NAB) application is currently available only in English. However, we are actively working on expanding the language support, and plan to offer additional language options in future releases.
--------------------------------------------------------------------------------------------------------------------
@@ -77,9 +77,9 @@ Here are the icons used in this guide and their meanings:
| Icon | Meaning |
|-------------------------------|-----------------------------------------------------------------------------------|
-| :exclamation: **Caution** | Indicates a caution or warning. Typically, these are common errors made by users. |
+| :exclamation:**Caution** | Indicates a caution or warning. Typically, these are common errors made by users. |
| :information_source: **Note** | Provides additional information. |
-| :bulb: **Tip** | Provides additional tips for you to master the application. |
+| :bulb:**Tip** | Provides additional tips for you to master the application. |
@@ -104,9 +104,12 @@ Back to [Table of Contents](#table-of-contents)
Shortly, a GUI resembling the following should display, including some sample input to get you started:
-**:information_source: Notes about the command format:**
+:information_source:
Notes about the command format:
* Words in `UPPER_CASE` are the parameters to be supplied by the user.
e.g. in `add n\NAME`, `NAME` is a parameter which can be used as `add n\John Doe`.
@@ -171,13 +177,13 @@ The features are categorized into two main sections:
| Parameter | Description | Valid Input |
|--------------------|--------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **INDEX** | The position of a patient in the displayed list. | Positive integers (i.e. from 1 onwards) e.g., `1`, `2`, `3`. Should not be larger than the length of displayed list. |
-| **NAME** | The name of a patient. | Common names are generally accepted. Names should be alphanumeric, with the inclusion of the following special characters: " ' ", " - " and " / ". e.g., `John Doe`, `Nagaratnam s/o Suppiah`. |
+| **NAME** | The name of a patient. | Common names are generally accepted. Names should be alphanumeric, with the inclusion of the following special characters: whitespaces, `'`, `-`, `,` and `/`. e.g., `John Doe`, `Nagaratnam s/o Suppiah`. |
| **IC_NUMBER** | The IC number of the patient. | A unique identification number in the format of a capital letter, followed by a 7-digit number, and ending with a capital letter. e.g., `T1234567Z`. Note that while the platform performs some level of IC validation, it is up to the user to ensure that the IC is accurate. |
-| **DATE_OF_BIRTH** | The date of birth of a patient. | The date of birth of the patient must be in the format dd/MM/yyyy. e.g., `21/03/2000`. Note that while the platform performs some level of date validation, it is up to the user to ensure that the date is accurate (not in the future, impossible dates such as 30th February etc). |
+| **DATE_OF_BIRTH** | The date of birth of a patient. | The date of birth of the patient must be in the format dd/MM/yyyy. e.g., `21/03/2000`. Note that while the platform performs some level of date validation, it is up to the user to ensure that the date is accurate (not in the future, or impossible dates such as 30th February etc). |
| **ADMISSION_DATE** | The date a patient was admitted to the ward. | The admission date of the patient must be in the format of dd/MM/yyyy. e.g., `21/03/2022`. Note that while the platform performs some level of date validation, it is up to the user to ensure that the date is accurate (not in the future, impossible dates such as 30th February etc). |
-| **WARD** | The ward where a patient is located. | An alphanumeric string, e.g., `A1`. Note that special characters are not allowed, and you can work around this issue by utilising CamelCase e.g., `FallRisk`. |
+| **WARD** | The ward where a patient is located. | An alphanumeric string, e.g., `A1`. Note that special characters are not allowed, and you can work around this issue by utilising [camelCase](#glossary) or [PascalCase](#glossary) e.g., `FallRisk`. |
| **REMARK** | Optional remark about a patient. | Any string input, e.g., `Patient is an amputee`. |
-| **TAG** | Optional tag to categorize a patient by health condition or other descriptors. | An alphanumeric string for each tag, e.g., `Diabetes`. Note that special characters are not allowed, and you can work around this issue by omitting special characters, utilising CamelCase e.g., `FallRisk`. |
+| **TAG** | Optional tag to categorize a patient by health condition or other descriptors. | An alphanumeric string for each tag, e.g., `Diabetes`. Note that special characters are not allowed, and you can work around this issue by omitting special characters, utilising [camelCase](#glossary) or [PascalCase](#glossary) e.g., `FallRisk`. |
### Patient Management Features
For patient management features, NAB provides the following commands:
@@ -198,11 +204,18 @@ Format: `add n\NAME ic\IC_NUMBER dob\DATE_OF_BIRTH ad\ADMISSION_DATE w\WARD [r\R
:bulb: Tip:
A person can have any number of tags (including 0)
+You can find details about each parameter [here](#parameters-for-commands).
+
+Additional details:
+
+* `DATE_OF_BIRTH` : Date of birth must not be later than admission date, and not be later than the current date.
+* `ADMISSION_DATE` : Admission date must not be earlier than date of birth, and not be later than the current date.
+* `REMARK` : Remarks have no length limit, and each patient can only have **ONE** remark field.
-* NAME: The full name of the patient. Each word should be split with a whitespace.
-* DATE_OF_BIRTH: Date of birth must not be later than admission date, and not be later than the current date.
-* ADMISSION_DATE: Admission date must not be earlier than date of birth, and not be later than the current date.
-* REMARK: Remarks have no length limit, and each patient can only have ONE remark field.
+
+:information_source: Note:
+Each patient in NAB must have a unique IC_NUMBER. Attempting to add a patient that has an IC_NUMBER that already exists will result in an error.
+
Example command:
@@ -228,10 +241,15 @@ You may also filter by ward and/or tags to list only patients in a specific ward
Format: `list [w\WARD] [t\TAG]...`
-* WARD: Must only list at most 1 ward.
-* Only patients with tags (and appropriate ward, if specified) that encompass all the provided tags will be listed.
+You can find details about each parameter [here](#parameters-for-commands).
- :exclamation: **Caution:** If you wish to list all patients, utilise the command `list` instead of using empty parameters. Otherwise, it will assume that it is an invalid input.
+Additional details:
+
+* `WARD` : Must only list at most **ONE** ward.
+* Only patients with tags (and appropriate ward, if specified) that encompass all the provided tags will be listed.
+
+ :exclamation: Caution: If you wish to list all patients, utilise the command `list` instead of using empty parameters. Otherwise, it will assume that it is an invalid input.
+
* `list` results are permissive, meaning that specified tags will be treated as case-insensitive. Patients with tags that meet the above criteria will be listed.
* For the `list` commands below, we assume the list contains 2 people, John Doe and Jane Doe)
@@ -280,21 +298,33 @@ Allows you to edit an existing patient's details in the address book.
Format: `edit INDEX [n\NAME] [ic\IC_NUMBER] [dob\DATE_OF_BIRTH] [ad\ADMISSION_DATE] [w\WARD] [r\REMARK] [t\TAG]…`
+You can find details about each parameter [here](#parameters-for-commands).
+
+Additional details:
+
* Edits the patient details at the specified `INDEX`. The index **must be a positive integer** that refers to the patient shown in the displayed list.
* You must provide at least one of the optional fields.
* Existing values will be replaced with the input values.
-
- :exclamation: **Caution** When editing tags and/or remarks, the existing tags and/or remarks of the patient will be removed i.e adding of tags and/or remarks via `edit` is not cumulative. Be sure to copy the previous tags and remarks if you wish to retain them.
+
+ :exclamation: Caution: When editing tags and/or remarks, the existing tags and/or remarks of the patient will be removed i.e adding of tags and/or remarks via `edit` is not cumulative. Be sure to copy the previous tags and remarks if you wish to retain them.
+
+
* You can remove all the patient’s tags by typing `t\ ` without specifying any tags after it.
* Similarly, you can remove all the patient’s remarks by typing `r\ ` without specifying any remarks after it.
+
+:information_source: Note:
+Each patient in NAB must have a unique IC_NUMBER. Attempting to change the IC_NUMBER of a patient to one that already exists will result in an error.
+
+
Example command:
`edit 1 ic\T0123456P t\ r\ `
-_Edits the IC_NUMBER, TAGS and REMARKS of the 1st person to be `T0123456P` for IC_NUMBER and empty for both tags and remarks._
+_Edits the IC_NUMBER, TAGS and REMARKS of the 1st person to be `T0123456P` for IC_NUMBER and empty for both TAG and REMARK._
The following shows the change in contact details:
+
**Before**:
```
John Doe
@@ -322,6 +352,10 @@ Allows you to find patients whose name or IC contain any of the given keywords.
Format: `find n\NAME OR find ic\IC_NUMBER`
+You can find details about each parameter [here](#parameters-for-commands).
+
+Additional details:
+
* The search is case-insensitive. e.g. `hans` will match `Hans`
* The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans`
* Only full words will be matched e.g. `Han` will not match `Hans`
@@ -376,13 +410,19 @@ Format: `help`
On entering the `help` command, the following window will pop up:
![Help](images/help.png)
+
+ :bulb: Tip
+ Mac users can use ``Cmd + ` `` to switch between windows! Windows users can do the same with `Alt + Tab`!
+
#### Clearing all entries : `clear`
Allows you to clear all entries from the address book.
-:exclamation: **Caution:** This action is irreversible.
+
+:exclamation: Caution: This action is irreversible.
+
Format: `clear`
@@ -412,7 +452,7 @@ Back to [General Features](#general-features) or [Table of Contents](#table-of-c
--------------------------------------------------------------------------------------------------------------------
-## Command summary
+## Command Summary
| Action | Format and Examples |
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -437,7 +477,7 @@ Back to [Table of Contents](#table-of-contents)
--------------------------------------------------------------------------------------------------------------------
-## Known issues & Troubleshooting
+## Known Issues & Troubleshooting
1. **When using multiple screens**, if you move the application window to a secondary screen, and later disconnect/turn off that secondary screen while the application is still open, the GUI will open off-screen on the primary screen. The remedy is to delete the `preferences.json` file created by the application before running it again.
2. **When re-accessing the help window after minimising it**, the help window may not pop up again. The remedy is to mouse over the NAB icon and click on the preview window to bring it back to the front.
@@ -446,20 +486,22 @@ Back to [Table of Contents](#table-of-contents)
Back to [Table of Contents](#table-of-contents)
4. **Language Support:** NAB is currently available only in English. Support for additional languages will be introduced in future releases.
5. **Slow performance**: If you experience slow performance or lag while using NAB, especially on older or low-end systems, you can try closing other running applications to free up system resources. Additionally, you can try restarting the application or your system to clear any potential memory leaks or temporary issues.
+
--------------------------------------------------------------------------------------------------------------------
## Glossary
-| Term | Further Explanation, Representation and Examples |
-|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Alphanumeric** | A string that must contain any of alphabetical and numerical characters only. Excludes other special characters, whitespace etc. e.g., `A1`, `T1234567P`. |
-| **CamelCase** | A naming convention where the first letter of each word is capitalized except the first word. e.g., `FallRisk`, `HearingImpaired`. |
+| Term | Further Explanation, Representation and Examples |
+|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **Alphanumeric** | A string that must contain any of alphabetical and numerical characters only. Excludes other special characters, whitespace etc. e.g., `A1`, `T1234567P`. |
+| **camelCase** | A naming convention where the first letter of each word is capitalized, except the first word. e.g., `fallRisk`, `hearingImpaired`. |
| **Case-insensitive** | A search that does not differentiate between uppercase and lowercase letters. e.g., `john` will match `John`. |
-| **CLI** | Command Line Interface. It is a text-based interface where you input commands to interact with the system. Perfect for fast typists like you! |
-| **Command** | An instruction given to the application to perform a specific task. e.g., `add`, `list`, `delete`. |
+| **CLI** | Command Line Interface. It is a text-based interface where you input commands to interact with the system. Perfect for fast typists like you! |
+| **Command** | An instruction given to the application to perform a specific task. e.g., `add`, `list`, `delete`. |
| **Command Terminal** | A text-based interface where you can input commands to interact with the computer's operating system. e.g., `cmd` for Windows users. |
-| **Data File** | A file that stores the data of the application. e.g., `addressbook.json`. |
-| **GUI** | Graphical User Interface. It is the visual representation of the system you see. |
+| **Data File** | A file that stores the data of the application. e.g., `addressbook.json`. |
+| **GUI** | Graphical User Interface. It is the visual representation of the system you see. |
+| **PascalCase** | A naming convention where the first letter of each word is capitalized. e.g., `FallRisk`, `HearingImpaired`. |
Back to [Table of Contents](#table-of-contents)
diff --git a/docs/images/EditSequenceDiagram.png b/docs/images/EditSequenceDiagram.png
index 73160828c77..247eb7e39dc 100644
Binary files a/docs/images/EditSequenceDiagram.png and b/docs/images/EditSequenceDiagram.png differ