diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4c6adb99ef2..92911ed2f5f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -479,111 +479,106 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **MSS** 1. User requests to add new client. 2. ClientCare adds the new client to the list. -3. ClientCare shows a success message and display view of new client details and policies (UC02).
+3. ClientCare shows the client's details and success message to the user.
Use case ends. **Extensions** -* 1a. ClientCare detects invalid user information. - * 1a1. ClientCare shows what is wrong with various invalid user information. - * 1a2. User enters new data.
- Steps 1a1-1a2 are repeated until the data entered are correct.
- Use case resumes from step 2. -* 1b. Invalid command usage in the request. - * 1b1. ClientCare shows command usage. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case resumes from step 2. -* 1c. Client name already exists. - * 1c1. ClientCare lets user know that duplicate names are not allowed. - * 1c2. User enters new data.
- Steps 1c1-1c2 are repeated until the data entered are correct.
- Use case resumes from step 2. +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the client to be added already exists in the system. + * 1b1. ClientCare shows an error message.
+ Use case ends. **Use case: UC02 - Delete client** **MSS** -1. User requests to list all clients (UC01) or find client by name (UC04). +1. User requests to list all clients (UC04) or find client by name (UC06). 2. ClientCare shows a list of clients. 3. User requests to delete a specific client in the list by index. 4. ClientCare deletes the client.
+5. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 2a. The list is empty.
- * 2a1. ClientCare lets user know that the list is empty.
- Use case ends. -* 3a. The given index is invalid. - * 3a1. ClientCare lets user know that client index should be a number. - * 3a2. User enters new data.
- Steps 3a1-3a2 are repeated until the data entered are correct.
- Use case resumes at step 2. -* 3b. Invalid command usage in the request. - * 3b1. ClientCare shows command usage. - * 3b2. User enters new data.
- Steps 3b1-3b2 are repeated until the data entered are correct.
- Use case resumes from step 4. -* 3c. Client does not exist. - * 3c1. ClientCare lets user know that client does not exist. - * 3c2. User enters new data.
- Steps 3c1-3c2 are repeated until the data entered are correct.
- Use case ends. +* 2a. User sees that the list is empty. + * 2a1. User stops as there is no client to delete. + Use case ends. +* 3a. ClientCare detects that the given command is invalid. + * 3a1. ClientCare shows an error message. + * 3a2. ClientCare requests for the correct input. + * 3a3. User enters new data.
+ Steps 3a1-3a3 are repeated until the data entered are correct.
+ Use case resumes at step 4. +* 3b. ClientCare detects that the client does not exist. + * 3b1. ClientCare shows an error message.
+ Use case ends. **Use case: UC03 - Edit client** **MSS** -1. User requests to view all clients. -2. ClientCare shows a list of all clients.
+1. User requests to list all clients (UC04) or find client by name (UC06). +2. ClientCare shows a list of clients. +3. User requests to edit a specific client in the list by index. +4. ClientCare edits the client.
+5. ClientCare shows the client's details and success message to the user.
Use case ends. **Extensions** -* 1a. The list is empty as no clients have been added at all. - * 1a1. ClientCare lets user know that the list is empty.
- Use case ends. -* 1b. Invalid command usage in the request. - * 1b1. ClientCare shows command usage. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case resumes from step 2. +* 2a. User sees that the list is empty. + * 2a1. User stops as there is no client to edit. + Use case ends. +* 3a. ClientCare detects that the given command is invalid. + * 3a1. ClientCare shows an error message. + * 3a2. ClientCare requests for the correct input. + * 3a3. User enters new data.
+ Steps 3a1-3a3 are repeated until the data entered are correct.
+ Use case resumes at step 4. +* 3b. ClientCare detects that the client does not exist. + * 3b1. ClientCare shows an error message.
+ Use case ends. **Use case: UC04 - List all clients** **MSS** 1. User requests to view all clients. -2. ClientCare shows a list of all clients.
+2. ClientCare shows a list of all clients. +3. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 1a. The list is empty as no clients have been added at all. - * 1a1. ClientCare lets user know that the list is empty.
- Use case ends. -* 1b. Invalid command usage in the request. - * 1b1. ClientCare shows command usage. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case resumes from step 2. - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. **Use case: UC05 - View client details and policies** **MSS** 1. User requests to view a client's details and policies. -2. ClientCare shows that client's details and policies.
+2. ClientCare shows that client's details and policies. +3. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 1a. ClientCare detects that the client does not exist. - * 1a1. ClientCare lets user know that client does not exist. - * 1a2. User enters new data.
- Steps 1a1-1a2 are repeated until the data entered are correct.
+* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the client does not exist. + * 1b1. ClientCare shows an error message.
Use case ends. -* 1b. Invalid command usage in the request. - * 1b1. ClientCare shows command usage. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case resumes from step 2. + **Use case: UC06 - Find a client by name** @@ -591,18 +586,20 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **MSS** 1. User requests to find a specific client in the list by name. 2. ClientCare shows list of client that matches the name.
+3. ClientCare shows the client details. +4. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 2a. The list is empty as there is no matching name found.
- * 2a1. ClientCare lets user know that the list is empty.
+* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that there is no matching name found. + * 1b1. ClientCare lets user know that the list is empty.
Use case ends. -* 2b. Invalid command usage in the request. - * 2b1. ClientCare shows command usage. - * 2b2. User enters new data.
- Steps 2b1-2b2 are repeated until the data entered are correct.
- Use case resumes from step 2. - **Use case: UC07 - Adding remark to client** @@ -615,10 +612,18 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Use case: UC08 - Clear all client** **MSS** -1. PLACEHOLDER +1. User requests to clear all client data. +2. ClientCare clears all client data. +3. ClientCare shows a success message to the user.
+ Use case ends. **Extensions** - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. **Use case: UC09 - Sort clients** @@ -636,77 +641,58 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. **Extensions** -* 1a. Client does not exist. - * 1a1. ClientCare lets user know that client does not exist. - * 1a2. User enters new data.
- Steps 1a1-1a2 are repeated until the data entered are correct.
- Use case ends. -* 1b. Invalid date format. - * 1b1. ClientCare lets user know of correct date and time format. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case ends. -* 1c. Invalid command usage in the request. - * 1c1. ClientCare shows command usage. - * 1c2. User enters new data.
- Steps 1c1-1c2 are repeated until the data entered are correct.
- Use case ends. -* 1d. Future date. - * 1d1. ClientCare lets user know he cannot meet someone in the future. - * 1d2. User enters new data.
- Steps 1d1-1d2 are repeated until the data entered are correct.
- Use case ends. - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the given date is of the future. + * 1b1. ClientCare shows an error message.
+ Use case ends. +* 1c. ClientCare detects that the client does not exist. + * 1c1. ClientCare shows an error message.
+ Use case ends. **Use case: UC11 - Update last met overdue duration** **MSS** 1. User enters the last met overdue duration to the new desired value. 2. ClientCare updates the new last met overdue duration. -3. ClientCare refreshes the Last Met Display for all clients that meets the new last met overdue duration.
+3. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 1a. The input entered is not a non-negative integer. - * 1a1. ClientCare lets user know that the input is not accepted. - * 1a2. User enters new data.
- Steps 1a1-1a2 are repeated until the data entered are correct.
- Use case ends. -* 1b. Invalid command usage in the request. - * 1b1. ClientCare shows command usage. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case ends. - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the given input entered is not a non-negative integer. + * 1b1. ClientCare shows an error message.
+ Use case ends. **Use case: UC12 - Schedule an appointment with client** **MSS** 1. User schedules a date and time to meet with a client. -2. ClientCare sets up the appointment. -3. ClientCare shifts a client from the Last Met Display to the Schedule Display if he exists in the Last Met Display.
+2. ClientCare adds the appointment to the schedule list. +3. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 1a. Date and time is invalid. - * 1a1. ClientCare lets user know of valid date and time format. - * 1a2. User enters new data.
- Steps 1a1-1a2 are repeated until the data entered are correct.
+* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the given Date and time has past. + * 1b1. ClientCare shows error message.
Use case ends. -* 1b. Date and time has past. - * 1b1. ClientCare lets user know that it is not possible to schedule an appointment in the past. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
- Use case ends. -* 1c. The client does not exist. - * 1c1. ClientCare shows an error message. - * 1c2. User enters new data.
- Steps 1c1-1c2 are repeated until the data entered are correct.
- Use case ends. -* 1d. Invalid command usage in the request. - * 1d1. ClientCare shows command usage. - * 1d2. User enters new data.
- Steps 1c1-1c2 are repeated until the data entered are correct.
+* 1c. ClientCare detects that the client does not exist. + * 1c1. ClientCare shows an error message.
Use case ends. @@ -714,58 +700,67 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **MSS** 1. User marks an appointment with client as done. -2. ClientCare updates appointment has done. -3. ClientCare shifts the client from the Schedule Display to Last Met Display if his last met date is still overdue.
+2. ClientCare marks the appointment as done and removes it from the schedule list. +3. ClientCare shows a success message to the user.
Use case ends. **Extensions** -* 1a. Appointment does not exist or is already marked. - * 1a1. ClientCare lets user know that there is no open appointment for this client.
+* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the appointment does not exist or is already marked. + * 1b1. ClientCare shows an error message.
Use case ends. -* 1b. The client does not exist. - * 1b1. ClientCare shows an error message. - * 1b2. User enters new data.
- Steps 1b1-1b2 are repeated until the data entered are correct.
+* 1c. ClientCare detects that the client does not exist. + * 1c1. ClientCare shows an error message.
Use case ends. -* 1c. Invalid command usage in the request. - * 1c1. ClientCare shows command usage. - * 1c2. User enters new data.
- Steps 1c1-1c2 are repeated until the data entered are correct.
- Use case ends. - **Use case: UC14 - Add policies to client** **MSS** -1. PLACEHOLDER +1. User requests to add a policy to a client. +2. ClientCare adds the policy to the client. +3. ClientCare shows a success message to the user.
+ Use case ends. **Extensions** -*{More to be added}* - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the client already has a policy with the given policy id. + * 1b1. ClientCare shows an error message.
+ Use case ends. +* 1c. ClientCare detects that the client does not exist. + * 1c1. ClientCare shows an error message.
+ Use case ends. **Use case: UC15 - Delete policies from client** **MSS** -1. PLACEHOLDER - -**Extensions** - - -**Use case: UC16 - Display help** - -**MSS** -1. PLACEHOLDER - -**Extensions** - - -**Use case: UC17- Exit program** - -**MSS** -1. PLACEHOLDER +1. User requests to delete a policy from a client. +2. ClientCare deletes the policy from the client. +3. ClientCare shows a success message to the user.
+ Use case ends. **Extensions** - +* 1a. ClientCare detects that the given command is invalid. + * 1a1. ClientCare shows an error message. + * 1a2. ClientCare requests for the correct input. + * 1a3. User enters new data.
+ Steps 1a1-1a3 are repeated until the data entered are correct.
+ Use case resumes at step 2. +* 1b. ClientCare detects that the client does not have a policy with the given policy id. + * 1b1. ClientCare shows an error message.
+ Use case ends. +* 1c. ClientCare detects that the client does not exist. + * 1c1. ClientCare shows an error message.
+ Use case ends. ### Non-Functional Requirements