Skip to content

Commit 65ac114

Browse files
committed
Merge branch 'master' into add-implementation-for-sort-birthday-priority-in-developer-guide
2 parents baf31ed + 0e27bfe commit 65ac114

File tree

2 files changed

+250
-41
lines changed

2 files changed

+250
-41
lines changed

docs/DeveloperGuide.md

Lines changed: 216 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
* This project was based on the [AddressBook-Level3 (AB3](https://se-education.org/addressbook-level3/) from [SE-EDU](https://se-education.org/).
1717
* The `remark` command in this project was implemented with reference to the CS2103T AB3 [Tutorial: Adding a command](https://nus-cs2103-ay2324s2.github.io/tp/tutorials/AddRemark.html).
18-
18+
* The user guide approach in breakdown in sections and header styling was inspired by [ArtBuddy](https://ay2223s1-cs2103t-w11-3.github.io/tp/UserGuide.html)
1919
--------------------------------------------------------------------------------------------------------------------
2020

2121
## **Setting up, getting started**
@@ -892,7 +892,9 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
892892

893893
## **Appendix: Instructions for manual testing**
894894

895-
Given below are instructions to test the app manually.
895+
Given below are instructions to test the app manually.
896+
The full guide on the expected outcome and format of the commands can be found in our user guide.
897+
This appendix will serve to inform users on the assumptions along with a correct and invalid test case.
896898

897899
<box type="info" seamless>
898900

@@ -918,9 +920,11 @@ testers are expected to do more *exploratory* testing.
918920

919921
3. _{ more test cases …​ }_
920922

921-
### Deleting a person
923+
### Adding a client
924+
925+
### Deleting a client
922926

923-
1. Deleting a person while all persons are being shown
927+
1. Deleting a client while all clients are being shown
924928

925929
1. Prerequisites: List all persons using the `list` command. Multiple persons in the list.
926930

@@ -935,22 +939,212 @@ testers are expected to do more *exploratory* testing.
935939

936940
2. _{ more test cases …​ }_
937941

942+
### Editing a client
943+
944+
### Listing client
945+
946+
1. Listing all clients
947+
948+
1. Prerequisites: Multiple clients in the client list.
949+
950+
2. Test case: `list`<br>
951+
Expected: All clients are shown in the list view. Success message shown in the status message.
952+
953+
3. Test case: `list 1`, `list asdsad`, `list n/Jones` or any command with extra characters supplied<br>
954+
Expected: Similar to previous.
955+
956+
957+
### Viewing a client
958+
959+
1. Viewing a client while all clients are being shown
960+
961+
1. Prerequisites: List all clients using the `list` command. Multiple clients in the client list.
962+
963+
2. Test case: `view 1`<br>
964+
Expected: First client's details are shown in the client details view and policy details view. Success message shown in the status message.
965+
966+
3. Test case (Missing Index): `view`<br>
967+
Expected: Client details view and Policy details view not updated. Error message shown in the status message.
968+
969+
4. Test case (Invalid Index): `view x` (where x is smaller or larger than the list size)<br>
970+
Expected: Similar to previous.
971+
972+
6. Test case (Extra Characters): `view 1 asd`, `view 1 n/Jones` or any command with extra characters supplied<br>
973+
Expected: Similar to previous.
974+
975+
### Finding a client
976+
977+
1. Finding a client with a given name `Jones`
978+
979+
1. Prerequisites: List all client using the `list` command. Multiple clients in the client list. Ensure there is a client with the name "Jones".
980+
981+
2. Test case: `find Jones`<br>
982+
Expected: Client list update to show all clients with the name "Jones". Success message shown in the status message.
983+
984+
3. Test case (Multiple keywords): `find Jones Brown`<br>
985+
Expected: Client list update to show all clients with the name "Jones" or the name "Brown" (if any). Success message shown in the status message.
986+
987+
4. Test case (Missing keyword): `find`<br>
988+
Expected: No client is found. Error message shown in the status message.
989+
990+
### Adding notes to a client
991+
992+
### Clearing the client list
993+
994+
1. Clearing the client list
995+
996+
1. Prerequisites: Multiple clients in the client list.
997+
998+
2. Test case: `clear`<br>
999+
Expected: All clients are removed from the list. Success message shown in the status message.
1000+
1001+
3. Test case: `clear 1`, `clear asdsad`, `clear n/Jones` or any command with extra characters supplied<br>
1002+
Expected: Similar to previous.
1003+
1004+
### Sorting clients
1005+
1006+
### Updating last met
1007+
Command Format: `met index d/YYYY-MM-DD`<br>
1008+
Assumptions: Today is 13 April 2024, date chosen must not be in the future.<br>
1009+
Desired Outcome: Updating the last met date of the 3rd client to 11 April 2024.<br>
1010+
1. Correct Test Case: `met 3 d/2024-04-11`
1011+
2. Invalid Test Case: `met 3 d/11-04-2024` wrong date format
1012+
1013+
### Scheduling an appointment
1014+
Command Format: `schedule index d/YYYY-MM-DD HH:mm`<br>
1015+
Assumptions: Today is 13 April 2024, date chosen must not be in the past.<br>
1016+
Desired Outcome: Creating an appointment with the 3rd client on 18 April 2024 2pm.<br>
1017+
1. Correct Test Case: `schedule 3 d/2024-04-18 14:00`
1018+
2. Invalid Test Case: `schedule 3 d/18-04-2024 14:00` wrong dateTime format
1019+
3. Invalid Test Case: `schedule 3 d/2024-04-18` missing time
1020+
1021+
### Marking an appointment as complete
1022+
Command Format: `mark index`<br>
1023+
Assumptions: An open appointment is present with an existing client.<br>
1024+
Desired Outcome: Marking an appointment with the 3rd client.<br>
1025+
1. Correct Test Case: `mark 3`
1026+
2. Invalid Test Case: `mark 3` if client does not exist or appointment is done
1027+
3. Invalid Test Case: `mark three` index should be a positive integer
1028+
1029+
### Set the last met overdue duration
1030+
Command Format: `set integer`<br>
1031+
Assumptions: Nil<br>
1032+
Desired Outcome: Setting the duration to 45 days.<br>
1033+
1. Correct Test Case: `set 45`
1034+
2. Invalid Test Case: `set 45.3` value must be non-negative integer
1035+
3. Invalid Test Case: `set forty five` value must be a non-negative integer
1036+
1037+
### Adding a policy
1038+
1039+
1. Adding a policy to a patient while all clients are being shown
1040+
1041+
1. Prerequisites: List all clients using the `list` command. Multiple clients in the client list. Ensure the first client does not have the policy number "123".<br>
1042+
1043+
2. Test case: `addpolicy 1 n/Health i/123`<br>
1044+
Expected: Policy successfully added to first client. Success message shown in the status message.
1045+
1046+
3. Test case (Missing Index): `addpolicy n/Health i/123`<br>
1047+
Expected: Policy not added to any client. Error message shown in the status message.
1048+
1049+
4. Test case (Missing Parameters): `addpolicy 1 n/Health`, `addpolicy 1 i/123` or any command with missing parameters<br>
1050+
Expected: Similar to previous
1051+
1052+
5. Test case (Invalid Index): `addpolicy x n/Health i/123` (where x is smaller or larger than the list size)<br>
1053+
Expected: Similar to previous.
1054+
1055+
6. Test case (Invalid Policy Name): `addpolicy 1 n/#Health i/123`<br>
1056+
Expected: Similar to previous.
1057+
1058+
7. Test case (Invalid Policy Number): `addpolicy 1 n/Health i/abc`<br>
1059+
Expected: Similar to previous.
1060+
1061+
8. Test case (Repeated Parameters): `addpolicy 1 n/Health i/123 n/Health` or any command with repeated parameter<br>
1062+
Expected: Similar to previous.
1063+
1064+
### Deleting a policy
1065+
1066+
1. Deleting a policy from a patient while all clients are being shown
1067+
1068+
1. Prerequisites: List all clients using the `list` command. Multiple clients in the client list. Ensure the first client has the policy number "123".<br>
1069+
1070+
2. Test case: `deletepolicy 1 i/123`<br>
1071+
Expected: Policy successfully added to first client. Success message shown in the status message.
1072+
1073+
3. Test case (Missing Index): `deletepolicy i/123`<br>
1074+
Expected: Policy not added to any client. Error message shown in the status message.
1075+
1076+
4. Test case (Missing Parameters): `deletepolicy 1 `<br>
1077+
Expected: Similar to previous
1078+
1079+
5. Test case (Invalid Index): `deletepolicy x i/123` (where x is smaller or larger than the list size)<br>
1080+
Expected: Similar to previous.
1081+
1082+
6. Test case (Invalid Policy Number): `deletepolicy 1 i/abc`<br>
1083+
Expected: Similar to previous.
1084+
1085+
7. Test case (Repeated Parameters): `deletepolicy 1 i/123 i/123`<br>
1086+
Expected: Similar to previous.
1087+
9381088
### Saving data
9391089

940-
1. Dealing with missing/corrupted data files
1090+
1. Dealing with missing/corrupted clientcare.json
9411091

942-
1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_
1092+
1. Prerequisites: The clientcare.json file exists in the data directory.
9431093

944-
2. _{ more test cases …​ }_
1094+
2. Test case: Delete the clientcare.json file.<br>
1095+
Expected: The app launches successfully, populated with the sample data.
1096+
1097+
3. Test case: Delete contents of clientcare.json file.<br>
1098+
Expected: The app launches successfully, populated with no data.
9451099

1100+
4. Test case: Add random characters to json file that affects the formatting of the file.<br>
1101+
Expected: Similar to previous.
1102+
1103+
2. Dealing with wrongly edit clientcare.json
1104+
1105+
1. Prerequisites: The clientcare.json file exists in the data directory.
1106+
1107+
2. Test case: Remove fields from clients.<br>
1108+
Expected: The app launches successfully, populated with no data.
1109+
1110+
3. Test case: Reorder of fields in client.<br>
1111+
Expected: Similar to previous.
1112+
1113+
3. Dealing with missing/corrupted setvalue.txt
1114+
1115+
1. Prerequisites: The setvalue.txt file exists in the data directory.
1116+
1117+
2. Test case: Delete the setvalue.txt file.<br>
1118+
Expected: The app launches successfully, with the default overdue period value.
1119+
1120+
3. Test case: Empty setvalue.txt file.<br>
1121+
Expected: Similar to previous.
1122+
1123+
4. Test case: Add non-digit characters to json file.<br>
1124+
Expected: Similar to previous.
1125+
1126+
4. Dealing with wrongly edit setvalue.txt
1127+
1128+
1. Prerequisites: The setvalue.txt file exists in the data directory.
1129+
1130+
2. Test case: Edit value to be over integer limit.<br>
1131+
Expected: The app launches successfully, with the default overdue period value.
1132+
1133+
3. Test case: Add non-digit characters to the file.<br>
1134+
Expected: Similar to previous.
1135+
1136+
4. Test case: Edit value to be negative.<br>
1137+
Expected: Similar to previous.
9461138

9471139
## **Appendix: Planned Enhancements**
9481140

1141+
Team Size: 4
1142+
9491143
1. **Feature Flaw** - Currently, users can only schedule one appointment per client. In future versions, we will support multiple appointments per client.
9501144
2. **Feature Flaw** - Currently, names are case-sensitive. `John` and `john` are regarded as different clients. In future versions, names will be case-insensitive.
9511145
3. **Feature Flaw** - Currently, tags only allow alphanumeric values. Spaces and special characters are not allowed. In future versions, we will support the use of spaces and special characters for tags.
9521146
4. **Feature Flaw** - Currently, users are not allowed to use special characters like `/` when adding or editing the client name. In future versions, we will support the use of special characters like `/` for names.
953-
5. **Feature Flaw** - Currently, users must fulfill all compulsory parameters to add a person. In future versions, we will make more parameters optional.
1147+
5. **Feature Flaw** - Currently, users must fulfill all compulsory parameters to add a client. In future versions, we will make more parameters optional.
9541148
6. **Feature Flaw** - Currently, users must re-sort the client list after adding, editing or updating clients. Client List does not auto update or re-sort itself upon adding/editing or updating. In future versions, we will support the auto sorting when clients are updated.
9551149
7. **UI Bug** - Currently, the policy name and policy id may get truncated if there are too many characters. In future versions, we will support the wrapping of fields in the Policy Display.
9561150
8. **UI Bug** - Currently, the phone number and remark may get truncated if they are too long. In future versions, we will support the wrapping of all fields in the Client View Display.
@@ -959,4 +1153,18 @@ testers are expected to do more *exploratory* testing.
9591153

9601154
## **Appendix: Effort**
9611155

1156+
1. Scheduling Features
1157+
`met`, `schedule`, `mark` and `set` commands help the user manage his scheduling matters. As these 4 commands directly affect each other, the difficulty comes in thinking what and how
1158+
their respective class methods should interact with each other, especially with what date format to choose as this directly affects our auto-sort implemented for scheduling. It is also difficult to test for extreme cases that may cause these commands to misbehave.
1159+
We decided to simplify the process by restricting the user to 1 appointment per client as our initial beta version faced multiple bugs due to higher number of classes and functions when supporting multiple appointments per client.
1160+
1161+
`set` is also saved in a separate txt file as it is not related to client traits. Hence, additional testing is needed to ensure the value that `set` updates is saved correctly and is able to handle
1162+
invalid values if the txt file is edited wrongly.
1163+
1164+
2. Policies Features
1165+
1166+
3. Additional Client Traits and Features
1167+
1168+
4. GUI
1169+
9621170
--------------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)