Skip to content

Commit

Permalink
Merge pull request #370 from DesSnowy/branch-updateUserStory
Browse files Browse the repository at this point in the history
Update use cases to match implementation
  • Loading branch information
Incogdino authored Nov 12, 2024
2 parents 2cf0916 + 27fbdc7 commit 6ab040f
Showing 1 changed file with 110 additions and 89 deletions.
199 changes: 110 additions & 89 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,22 +267,20 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**MSS**

1. User chooses to add a contact.
2. KonTActs requests for the contact details.
3. User enters the contact details.
4. KonTActs adds the new contact.
1. User chooses to add a contact, providing the information that is required.
2. KonTActs adds the new contact and indicates success.

Use case ends.

**Extensions**

- 3a. KonTActs detects an error in the input format.
- 1a. KonTActs detects an error in the input.

- 3a1.KonTActs displays error message.
- 3a2. User enters a new input.
- Steps 3a1 - 3a2 are repeated until input format is correct.
- 1a1. KonTActs request for the correct input.
- 1a2. User enters a new input.
- Steps 1a1 - 1a2 are repeated until input entered is correct.

Use cases resume from step 4.
Use cases resume from step 2.

<br>

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

**MSS**

1. User enters command to delete a contact.
1. User chooses to delete a contact.
2. KonTActs deletes the contact and indicates success.

Use case ends.
Expand All @@ -305,8 +303,8 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

- 1a. KonTActs detects an error in the input.

- 1a1.KonTActs displays error message.
- 1a2.User enters a new input.
- 1a1. KonTActs request for the correct input.
- 1a2. User enters a new input.
- Steps 1a1 - 1a2 are repeated until the input entered is correct.

Use case resumes from step 2.
Expand All @@ -324,22 +322,20 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**MSS**

1. User chooses to add grades for a student.
2. KonTActs requests for details of the student alongside the assignment and grade.
3. User enters the requested details.
4. KonTActs updates the grade of the student.
1. User chooses to add grades for a student, providing the assignment details and grade.
2. KonTActs updates the grade of the student and indicates success.

Use case ends.

**Extensions**

- 3a. KonTActs detects an error in the entered data.
- 1a. KonTActs detects an error in the input.

- 3a1. KonTActs requests for the correct data.
- 3a2. User enters new data.
- Steps 3a1-3a2 are repeated until the data entered are correct.
- 1a1. KonTActs request for the correct input.
- 1a2. User enters a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

Use case resumes from step 4.
Use case resumes from step 2.

<br>

Expand All @@ -354,20 +350,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

Use case ends.

**Extensions**

- 1a. User has previously filtered the contact list.

- 1a1. KonTActs displays the full contact list, removing the previous filters.

Use case ends.

- 1b. KonTActs detects an error (e.g., unable to retrieve contacts).

- 1b1. KonTActs displays an error message.

Use case ends.

<br>

{{ newPage }}
Expand All @@ -376,29 +358,28 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**MSS**

1. User chooses to edit a contact’s details.
2. User enters the identifier (person's index), and updated information of the contact
3. KonTActs saves and displays the changes.
1. User chooses to edit a contact’s detail, providing the updated details.
2. KonTActs updates the details of the contact and indicates success.

Use case ends.

**Extensions**

- 2a. KonTActs identifies that the index is invalid.
- 1a. KonTActs detects that the contact provided does not exist.

- 2a1. Error message is displayed.
- 2a2. TA enters the new index.
- Steps 2a1-2a2 are repeated until the data entered are correct.
- 1a1. KonTActs request for the correct input.
- 1a2. User enters a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

Use case resumes from step 3.

- 2b. KonTActs identifies that the data to be updated is invalid.
Use case resumes from step 2.

- 2b1. Error message is displayed.
- 2b2. TA enters new data to be updated.
- Steps 2b1-2b2 are repeated until the data entered are valid.
- 1b. KonTActs detects that the new details provided is invalid.

Use case resumes from step 5.
- 1b1. KonTActs request for the correct input.
- 1b2. User enters a new input.
- Steps 1b1-1b2 are repeated until the input entered is correct.

Use case resumes from step 2.

<br>

Expand All @@ -408,25 +389,20 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**MSS**

1. User chooses to filter the contact list.
2. KonTActs requests the filter criteria (current overall grades, name, telegram handle).
3. User enters the filter criteria.
4. KonTActs filters the contact list based on the entered criteria and displays the filtered list.
1. User chooses to filter the contact list, providing the filter criteria.
2. KonTActs filters the contact list and displays the filtered list.

Use case ends.

**Extensions**

- 3a. KonTActs detects an error in the entered filter criteria (e.g., incorrect input - invalid score input).

- 3a1. KonTActs requests for the correct filter criteria.
- 3a2. Users enter new criteria.
- Steps 3a1-3a2 are repeated until the criteria entered are valid.
- 1a. KonTActs detects an error in the input.

Use case resumes from step 4.
- 1a1. KonTActs request for the correct input.
- 1a2. Users enter a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

- \*a. At any time, User chooses to cancel the filter action.
- \*a1. KonTActs stops the filter operation and returns to the unfiltered contact list by using list
Use case resumes from step 2.

<br>

Expand All @@ -437,25 +413,25 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
**Precondition**

1. User must have permission to write to the provided path.

2. User must have enough storage to store the output file.

**MSS**

1. User chooses to export the contact list.
2. User provides the file path.
3. KonTActs exports the contact list in CSV format and shows the number of people successfully exported.
1. User chooses to export the contact list, providing the file path.
2. KonTActs exports the contact list in CSV format and indicates success.

Use case ends.

**Extensions**

- 2a. User enters an invalid path (e.g .pdf).
- 1a. KonTActs detects an error in the input.

- 2a1. KonTActs displays an error message and request for user to provide a valid file path (e.g. must end with .csv)
- 2a2. User provides new file path
- Step 2a1-2a2 are repeated until file path is valid
- 1a1. KonTActs request for the correct input.
- 1a2. User enters a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

Use case resumes from step 3.
Use case resumes from step 2.

<br>

Expand Down Expand Up @@ -491,7 +467,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

- 3a. KonTActs detects an error in the entered data.

- 3a1. KonTActs displays error message.
- 3a1. KonTActs request for the correct data.
- 3a2. User enters new data.
- Steps 3a1-3a2 are repeated until the data entered are correct.

Expand All @@ -505,38 +481,35 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli

**Precondition**

1. The file is in CSV format and ends with .csv
2. The file contains valid data of at least 1 person
3. The header of the file is in a specific sequence
("Name","Email","Telegram","Tags","Github","Assignments","WeeksPresent")
4. Current user have permissions to access and read the file
1. The file is in CSV format and ends with `.csv`.
2. The file contains valid data of at least 1 person.
3. The header of the file is in the required sequence.
4. Current user have permissions to access and read the file.

**MSS**

1. User chooses to import the contact list.
2. User gives the desired file (by its path).
3. KonTActs import the contact list from the specified file path and shows successful import.
1. User chooses to import the contact list, providing the desired file path.
2. KonTActs imports the contact list from the specified file path and indicates successful import.

Use case ends.

**Extensions**

- 2a. KonTActs detects an unsupported, corrupted file or a file without the valid headers.
- 1a. KonTActs detects the file provided is invalid.

- 2a1. KonTActs indicates it is unable to import from that file and gives a more specific error message.
- 2a2. User provides a new file path
- Steps 2a1 - 2a2 are repeated until KonTActs is able to import contacts from the file.
- 1a1. KonTActs request for the correct file path.
- 1a2. User provides a new file path.
- Steps 1a1 - 1a2 are repeated until KonTActs is able to import contacts from the file.

Use case resumes from step 3.
Use case resumes from step 2.

- 2b. KonTActs detects invalid content in CSV file (e.g. Name/Email that does not comply with requirement,
Duplicate names)
- 1b. KonTActs detects invalid content in CSV file.

- 2b1. KonTActs indicates it is unable to import from that file and gives a more specific error message.
- 2b2. User provides a new file path or update their CSV file
- Steps 2b1 - 2b2 are repeated until KonTActs is able to import contacts from the file.
- 1b1. KonTActs request for the correct file path.
- 1b2. User provides a new file path or update their CSV file
- Steps 1b1 - 1b2 are repeated until KonTActs is able to import contacts from the file.

Use case resumes from step 3.
Use case resumes from step 1.

- \*a. At any time, User chooses to cancel the import.

Expand All @@ -546,6 +519,54 @@ Duplicate names)

<br>

**Use case: UC11 - Sort Contact List**

**MSS**

1. User chooses to sort the contact list, providing the sort criteria.
2. KonTActs sorts the contact list and displays the sorted list.

Use case ends.

**Extensions**

- 1a. KonTActs detects an error in the input.

- 1a1. KonTActs requests for the correct input.
- 1a2. User enters a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

Use case resumes from step 2.

<br>


**Use case: UC12 - Open student's GitHub page**

**Precondition**

1. The user have set permissions to allow browser to be opened from external applications.

**MSS**

1. User chooses to open the Github page of a student.
2. KonTActs opens the Github page on the user's default browser.

Use case ends.

**Extensions**

- 1a. KonTActs detects an error in the input.

- 1a1. KonTActs requests for the correct input.
- 1a2. User enters a new input.
- Steps 1a1-1a2 are repeated until the input entered is correct.

Use case resumes from step 2.

<br>


{{ newPage }}

### Non-Functional Requirements
Expand Down

0 comments on commit 6ab040f

Please sign in to comment.