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 and NFRs in Developer Guide for v1.1 #17

Merged
merged 2 commits into from
Mar 4, 2024
Merged
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
98 changes: 90 additions & 8 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,28 +300,105 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

### Use cases

(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise)
(For all use cases below, the **System** is the `TalentTracker` and the **Actor** is the `Hiring Manager`, unless specified otherwise)

**Use case: Delete a person**
**Use case: UC01 - Add a person**

**MSS**

1. User requests to list persons
2. AddressBook shows a list of persons
2. System shows a list of persons
3. User requests to add a new person to the list
4. System adds the person and updates the displayed list

Use case ends.

**Extensions**

* 3a. Any of the given name, email, phone number are invalid.

* 3a1. System shows an error message indicating invalid name/email/phone number.

Use case resumes at step 2.

**Use case: UC02 - Delete a person by phone number**

**MSS**

1. User requests to list persons
2. System shows a list of persons
3. User requests to delete a specific person in the list
4. AddressBook deletes the person
4. System deletes the person

Use case ends.

**Extensions**

* 2a. The list is empty.

* 2a1. System shows an error message indicating no person in list.

Use case resumes at step 2.

* 3a. The given phone number is invalid.

* 3a1. System shows an error message indicating person not found.

Use case resumes at step 2.

**Use case: UC03 - Tag an applicant**

**MSS**

1. User requests to list persons
2. System shows a list of persons
3. User requests to tag a specific applicant, using their name/email, with an application status
4. System tags the requested applicant with the given application status

Use case ends.

**Extensions**

* 2a. The list is empty.

* 2a1. System shows an error message indicating no applicant in list.

Use case resumes at step 2.

* 3a. The given name/email is invalid.

* 3a1. System shows an error message indicating applicant not found.

Use case resumes at step 2.

* 4a. The tag is already added for the applicant.

* 4a1. System shows an error message indicating tag is already added.

Use case resumes at step 2.

**Use case: UC04 - Find a person by name/email**

**MSS**

1. User requests to list persons
2. System shows a list of persons
3. User requests to find a specific person in the list by their name or email
4. System updates the list to only display the requested person

Use case ends.

**Extensions**

* 2a. The list is empty.

Use case ends.
* 2a1. TalentTracker shows an error message indicating no person in list.

Use case resumes at step 2.

* 3a. The given index is invalid.
* 3a. The given name/email is invalid.

* 3a1. AddressBook shows an error message.
* 3a1. TalentTracker shows an error message indicating person not found.

Use case resumes at step 2.

Expand All @@ -331,7 +408,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
3. Should be able to display multiple lists of applicants/interviews/interviewers without a noticeable sluggishness in performance for typical usage.
4. Should be responsive in all functionality, especially updating and displaying the list after each request.
5. Should be able to reliably preserve application data across multiple sessions without risk of data loss/corruption.
6. Should not leak applicant details, especially email and phone number, outside the application.
7. Should provide specific error messages to guide users on intended usage of features.
8. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.

*{More to be added}*

Expand Down
Loading