Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update use cases in DG and fix minor style warnings in UG #260

Merged
merged 1 commit into from
Nov 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 56 additions & 75 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -643,48 +643,43 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
### Use cases

(For all use cases below, the **System** is `UNOFAS` and the **Actor** is the `financial advisor`, unless specified otherwise)
-----
**Use Case: UC01 - Show a list of all clients**\
**Precondition:** NIL\
**Guarantees**: A list of all clients' contact is shown.

**MSS**
1. User requests to list all clients.
2. UNOFAS shows a list of all patients.\
Use case ends.


**U1: Add a client** \
**Precondition:** NIL
**Extensions**
* 2a. the list is empty.\
Use case ends.
------
**Use Case: UC02 - Add a client** \
**Precondition:** NIL\
**Guarantees**: A client contact is added into UNOFAS only if the data entered is correct.

**MSS**

1. User request to add a client to the list
2. AddressBook adds the client

Use case ends.

**Extensions**

* 1a. Client details are invalid.
* 1a1. System shows an error message.

Use case resumes at step 1.

**U2: View list of clients** \
**Precondition:** NIL

**MSS**

1. User requests to list clients
2. System shows a list of clients

Use case ends.

**Extensions**

* 2a. The list is empty.

Use case ends.

**U3: Edit a client's contacts** \
**Precondition:** NIL
------
**Use Case: UC03 - Edit a client's contacts** \
**Precondition:** NIL\
**Guarantees**: A client contact is edited in UNOFAS only if the data entered is correct.

**MSS**

1. User requests to list clients
1. User requests to <u>list clients (UC01)</u>
2. AddressBook shows a list of clients
3. User request to edit client’s contacts from the list
4. AddressBook changes the client’s contacts
Expand All @@ -693,40 +688,35 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**Extensions**

* 1a. The list is empty.

Use case ends.

* 3a. User enters the wrong details.

* 3a1. System shows an error message.

Use case resumes at step 1.

**U4: Delete a client** \
**Precondition:** NIL
------
**Use Case: UC04 - Delete a client** \
**Precondition:** NIL\
**Guarantees**: A client contact is deleted from UNOFAS only if the data entered is correct.

**MSS**

1. User requests to delete a specific client in the list
2. System deletes the client
1. User requests to <u>list clients (UC01)</u>
2. User requests to delete a specific client in the list
3. System deletes the client

Use case ends.

**Extensions**

* 1a. The list is empty.

Use case ends.

* 1b. The specified client is non-existent.
* 2a. The specified client is non-existent.

* 1b1. System shows an error message.
* 2a1. System shows an error message.

Use case resumes at step 1.

**U5: Find a client** \
**Precondition:** NIL
Use case resumes at step 2.
------
**Use Case: UC05 - Find a client** \
**Precondition:** NIL\
**Guarantees**: A list of clients that matches the query is displayed.

**MSS**

Expand All @@ -740,37 +730,35 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
* 2a. The list is empty.

Use case ends.

**U6: Assign financial plan to a client** \
**Precondition:** NIL
------
**Use Case: UC06 - Assign financial plan to a client** \
**Precondition:** NIL\
**Guarantees**: A financial plan is assigned to a client in UNOFAS only if the data entered is correct.

**MSS**

1. User requests to list clients
1. User requests to <u>list clients (UC01)</u>
2. AddressBook shows a list of clients
3. User request to add financial plan to client’s contacts from the list via the `edit` command.
3. User request to <u>add financial plan to client’s contacts (UC03)</u>
4. AddressBook changes the client’s contacts

Use case ends.

**Extensions**

* 1a. The list is empty.

Use case ends.

* 3a. User enters the wrong details.

* 3a1. System shows an error message.

Use case resumes at step 1.

**U7: Sort client's contacts** \
**Precondition:** NIL
------
**Use Case: UC07 - Sort client's contacts** \
**Precondition:** NIL\
**Guarantees**: The contact list will be sorted in ascending order according to the sort function specified.

**MSS**

1. User requests to list clients
1. User requests to <u>list clients (UC01)</u>
2. AddressBook shows a list of clients
3. User requests to sort list of clients (by appointment time or name)
4. AddressBook updates ordering of clients' contacts.
Expand All @@ -779,19 +767,17 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**Extensions**

* 1a. The list is empty.
Use case ends.

* 3a. User enters the wrong details.
* 3a1. System shows an error message.
Use case resumes at step 1.

**U8: Schedule appointment for a client** \
**Precondition:** Client must exist before scheduling appointment.
------
**Use Case: UC08 - Schedule appointment for a client** \
**Precondition:** Client must exist before scheduling appointment.\
**Guarantees**: An appointment is scheduled for a client in UNOFAS only if the data entered is correct.

**MSS**

1. User requests to list clients
1. User requests to <u>list clients (UC01)</u>
2. AddressBook shows a list of clients
3. User request to schedule appointment for client via the `schedule` command
4. AddressBook changes the client’s contacts
Expand All @@ -800,23 +786,21 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**Extensions**

* 1a. The list is empty.
Use case ends.

* 3a. User enters the wrong details.
* 3a1. System shows an error message.
Use case resumes at step 1.

* 3b. User has an existing appointment scheduled.
* 3a1. System shows a warning message.
Use case resumes at step 4.

**U9: Complete appointment for a client** \
**Precondition:** Appointment and client must exist before completing appointment.
------
**Use Case: UC09 - Complete appointment for a client** \
**Precondition:** Appointment and client must exist before completing appointment.\
**Guarantees**: An appointment is completed for a client in UNOFAS only if the data entered is correct.

**MSS**

1. User requests to list clients
1. User requests to <u>list clients (UC01)</u>
2. AddressBook shows a list of clients
3. User requests to complete appointment for client via the `complete` command
4. AddressBook removes appointment from appointment list and client's contact card
Expand All @@ -825,9 +809,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**Extensions**

* 1a. The list is empty.
Use case ends.

* 3a. User enters the wrong details.
* 3a1. System shows an error message.
Use case resumes at step 1.
Expand All @@ -839,7 +820,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
* 3c. User does not exist according to index provided.
* 3c1. System shows a warning message.
Use case ends.

------

### Non-Functional Requirements

Expand Down
70 changes: 35 additions & 35 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ title: UNOFAS User Guide
UNOFAS (UNO: One FAS: Financial Advisors app) is a **desktop app for Financial Advisors to manage client's contacts,
optimized for use via a Command Line Interface** (CLI) while still having the benefits of a
Graphical User Interface (GUI). If you can type fast, UNOFAS can help you manage and retrieve client's information
better than traditional GUI apps.
better than traditional GUI apps.

This guide provides you with comprehensive instructions on utilizing UNOFAS. It also serves as a mode of referral to
help learn the various commands required to effectively learn and be able to integrate the application to your daily
Expand Down Expand Up @@ -185,19 +185,19 @@ A person can have any number of tags (including 0).
Examples:
* `add n/John p/80101010 e/[email protected] a/Punggol Central Blk 444 #15-32 820123 nk/Brennan nkp/82020202 t/80yo fp/Financial Plan C`

Successful Output: `New person added: John;
Phone: 80101010;
Email: [email protected];
Address: Punggol Central Blk 444 #15-32 820123;
Next-of-kin Name: Brennan;
Next-of-kin Phone: 82020202;
Appointment: No Appointment made!;
Financial Plans: [Financial Plan C];
Successful Output: `New person added: John;
Phone: 80101010;
Email: [email protected];
Address: Punggol Central Blk 444 #15-32 820123;
Next-of-kin Name: Brennan;
Next-of-kin Phone: 82020202;
Appointment: No Appointment made!;
Financial Plans: [Financial Plan C];
Tags: [80yo]`

![result for 'add n/John p/80101010 e/[email protected] a/Punggol Central Blk 444 #15-32 820123 nk/Brennan nkp/82020202 t/80yo fp/Financial Plan C'](images/addUi.png)

<div markdown="span" class="alert alert-primary">:information_source:
<div markdown="span" class="alert alert-primary">:information_source:
**Do note** that it is possible to add a client's contact with multiple tags by duplicating the `t/` prefix. The same can be done for financial plans with the `fp/` prefix.
</div>

Expand Down Expand Up @@ -237,19 +237,19 @@ Examples:
* `edit 4 n/john doe a/23 woodlands ave 123` Edits the name and address of the 1st person to be `john doe` and `woodlands ave 123` respectively.

Successful Output:
`Edited Person: john doe;
Phone: 80101010;
Email: [email protected];
Address: 23 woodlands ave 123;
Next-of-kin Name: Brennan;
Next-of-kin Phone: 82020202;
Appointment: No Appointment made!;
Financial Plans: ;
`Edited Person: john doe;
Phone: 80101010;
Email: [email protected];
Address: 23 woodlands ave 123;
Next-of-kin Name: Brennan;
Next-of-kin Phone: 82020202;
Appointment: No Appointment made!;
Financial Plans: ;
Tags:`

![result for 'edit 4 n/john doe a/23 woodlands ave 123'](images/editUi.png)

<div markdown="span" class="alert alert-primary">:information_source:
<div markdown="span" class="alert alert-primary">:information_source:
**Do note** that it is possible to add a client's contact with multiple tags by duplicating the `t/` prefix. The same can be done with for financial plans with the `fp/` prefix.
</div>

Expand Down Expand Up @@ -279,7 +279,7 @@ Examples:

### Gathering emails of matching persons : `gather`

Gathers all the emails of persons with a desired financial plan or tag.
Gathers all the emails of persons with a desired financial plan or tag.

Format: `gather fp/FINANCIAL PLAN` or `gather t/TAG`

Expand Down Expand Up @@ -315,36 +315,36 @@ Examples:
* `list` followed by `delete 1` deletes the 1st person in the contact book.

Successful Output:
`Deleted Person: David;
Phone: 93234567;
Email: [email protected];
Address: Bishan Blk 999 #08-15 569874;
Next-of-kin Name: Olivia;
Next-of-kin Phone: 56981234;
Appointment: Meeting, 15-12-2023 17:30;
Financial Plans: [Financial Plan A][Financial Plan B];
`Deleted Person: David;
Phone: 93234567;
Email: [email protected];
Address: Bishan Blk 999 #08-15 569874;
Next-of-kin Name: Olivia;
Next-of-kin Phone: 56981234;
Appointment: Meeting, 15-12-2023 17:30;
Financial Plans: [Financial Plan A][Financial Plan B];
Tags: `

----------
### Scheduling an Appointment : `schedule`

Schedules an appointment for a client using an index followed by the appointment details.
Schedules an appointment for a client using an index followed by the appointment details.

Format: `schedule INDEX ap/APPOINTMENT_NAME d/APPOINTMENT_DATE_TIME`

- Schedules appointment with the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list.
- **Both appointment name and date-time** must be provided.
- Upon successful execution of the command, the scheduled appointment details will be updated in the **Contacts list**. The appointment details will also be updated in the **Appointments list**.
- Upon successful execution of the command, the scheduled appointment details will be updated in the **Contacts list**. The appointment details will also be updated in the **Appointments list**.

<div markdown="span" class="alert alert-primary">:information_source:
<div markdown="span" class="alert alert-primary">:information_source:
If there is an existing appointment with the person when the command is executed, you can replace it with a new appointment by **clicking confirm** or **pressing the enter key** when the prompt is given.
</div>

![schedule prompt](images/schedulePrompt.png)

Acceptable Values: Refer to [Argument Summary](#argument-summary).

Example:
Example:
- `schedule 1 ap/Annual review of financial goals d/20-11-2023 15:00`

Successful Output: `Appointment updated!`
Expand All @@ -354,7 +354,7 @@ Successful Output: `Appointment updated!`
----------
### Completing an Appointment : `complete`

Completes an appointment either with the person at the specified `INDEX` or complete all appointments with matching `APPOINTMENT_DATE`.
Completes an appointment either with the person at the specified `INDEX` or complete all appointments with matching `APPOINTMENT_DATE`.

Format: `complete [INDEX] [d/APPOINTMENT_DATE]`

Expand All @@ -364,8 +364,8 @@ Format: `complete [INDEX] [d/APPOINTMENT_DATE]`
matching the one input by user. This can allow the user to clear all his/her appointments finished throughout the
entire day quickly.

<div markdown="span" class="alert alert-primary">:information_source:
**Note** that an appointment's date is considered to be a match with user's input `APPOINTMENT_DATE` if the year, month and day are the same. Time of the appointment does not matter in this command.
<div markdown="span" class="alert alert-primary">:information_source:
**Note** that an appointment's date is considered to be a match with user's input `APPOINTMENT_DATE` if the year, month and day are the same. Time of the appointment does not matter in this command.
</div>

Acceptable Values: Refer to [Argument Summary](#argument-summary).
Expand Down
Loading