Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
liuyxxy committed Nov 9, 2020
2 parents 0ba3bf1 + d38b211 commit 4a0e978
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 72 deletions.
129 changes: 85 additions & 44 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ The following sequence diagrams show how the edit operation works.
**Target user profile**:

* computing students taking GER1000
* wants to memorise content taught in GER1000
* has a need to manage a significant number of flashcards
* prefer desktop apps over other types
* can type fast
Expand All @@ -282,101 +283,139 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
| `* * *` | user | view individual flashcards | read them |
| `* * *` | user | view a list of sets of flashcards that I currently have | not mix them up |
| `* * *` | user | “flip” through a set of flashcards | memorise them |
| `* *` | user | tag flashcards | revise a certain topic easily |
| `* *` | forgetful user | search for flashcards |
| `* *` | user | sort my flashcards | keep the list organised |
| `* *` | user | add links to my flashcards | find the particular lecture slide/notes by clicking on it |
| `* *` | user | add flashcards to sets | memorise relevant flashcards together |
| `*` | first time user | view all possible commands | navigate the app easily |
| `*` | user ready to start using the app | clear all flashcards | get rid of sample/experimental flashcards I used for exploring the app |

### Use cases

(For all use cases below, the **System** is `Bagel` and the **Actor** is the `user`, unless specified otherwise)

**Use case: UC01 - Finding a flashcard**
**Use case: UC01 - Adding a flashcard**

**MSS**

1. User chooses to find a flashcard.
2. User enters the keyword they would like to search for.
3. Bagel finds the flashcard and shows a list of flashcards that contain that keyword.
1. User chooses to add a flashcard.
2. User enters the relevant details of the flashcard they would like to add.
3. System adds the flashcard and shows the new list of flashcards.

Use case ends.

**Extensions**
* 2a. System detects an error in the entered data.
* 2a1. System requests for the correct data.
* 2a2. User enters new details.<br>
Steps 2a1-2a2 are repeated until the data entered are correct.

Use case resumes from step 3.


**Use case: UC02 - Deleting a flashcard**

**MSS**

1. User chooses to delete a flashcard.
2. User <u>lists the entire list of flashcards. (UC)</u>
3. User enters the index of the flashcard they would like to delete.
4. System deletes the flashcard and shows the new list of flashcards.

Use case ends.

**Extensions**

* 2a. Bagel detects an error in the entered data.
* 2a1. Bagel requests for the correct data.
* 2a2. User enters new details.
* Steps 2a1-2a2 are repeated until the data entered are correct.
* 3a. Similar to extension of UC01.

Use case resumes from step 3.
Use case resumes from step 4.


**Use case: UC02 - Editing a flashcard**
**Use case: UC03 - Editing a flashcard**

**MSS**

1. User chooses to edit a flashcard.
2. User enters ‘list’ to view indexes of flashcards.
3. Bagel shows the list of flashcards.
4. User enters the index of the flashcard they would like to edit, and the details to edit.
5. Bagel edits the flashcard and shows the edited flashcard.
Use case ends.
2. User <u>lists the entire list of flashcards. (UC05)</u>
3. User enters the index of the flashcard they would like to edit, and the details to edit.
4. System edits the flashcard and shows the edited flashcard.

Use case ends.

**Extensions**

* 4a. Bagel detects an error in the entered data.
* 4a1. Bagel requests for the correct data.
* 4a2. User enters new details.
* Steps 4a1-4a2 are repeated until the data entered are correct.
* 3a. Similar to extension of UC01.

Use case resumes from step 5.
Use case resumes from step 4.


**Use case: UC03 - Deleting a flashcard**
**Use case: UC04 - Viewing a flashcard**

**MSS**

1. User chooses to delete a flashcard.
2. User enters ‘list’ to view indexes of flashcards.
3. Bagel shows the list of flashcards.
4. User enters the index of the flashcard they would like to delete.
5. Bagel deletes the flashcard and shows the new list of flashcards.
1. User chooses to view a flashcard.
2. User enters the index of the flashcard they would like to view.
3. System displays the flashcard.

Use case ends.

**Extensions**

* 2a. Similar to extension of UC01.

Use case resumes from step 3.

**Extensions**

* 4a. Bagel detects an error in the entered data.
* 4a1. Bagel requests for the correct data.
* 4a2. User enters new details.
* Steps 4a1-4a2 are repeated until the data entered are correct.
**Use case: UC05 - Listing all flashcards**

Use case resumes from step 5.
**MSS**

Similar to UC04, except user enters relevant details for listing all flashcards.


**Use case: UC04 - Flipping through flashcards**
**Use case: UC06 - Flipping through flashcards**

**MSS**

1. User chooses to flip through the list of flashcards.
2. User enters ‘flip’ to start viewing from the first flashcard in the list.
3. Bagel shows the first flashcard.
4. User enters ‘flip’ to view the next flashcard in the list.
5. Bagel shows the next flashcard.
2. User enters the relevant details to start viewing from the first flashcard in the list.
3. System shows the first flashcard.
4. User enters the relevant details to view the next flashcard in the list.
5. System shows the next flashcard.<br>
Steps 4-5 are repeated for each flashcard, until the user reaches the end of the list.
6. Bagel shows the current list of flashcards.
6. System shows the first flashcard.

Use case ends.


**Extensions**

* 2a/4a. Bagel detects an error in the entered data.
* 2a1/4a1. Bagel requests for the correct data.
* 2a2/4a2. User enters new details.
* Steps 2a1-2a2/4a1-4a2 are repeated until the data entered are correct.
* 2a/4a. Similar to extension of UC01.

Use case resumes from step 3/5.

**Use case: UC07 - Searching through flashcards**

**MSS**

Similar to UC04, except user enters relevant details for searching.

Use case resumes from step 3.


**Use case: UC08 - Sorting flashcards**

**MSS**

Similar to UC04, except user enters relevant details for sort.


**Use case: UC09 - Clearing flashcards**

**MSS**

Similar to UC04, except user enters relevant details for clear.


### Non-Functional Requirements

Expand All @@ -394,6 +433,8 @@ Use case resumes from step 3/5.
### Glossary

* **Mainstream OS**: Windows, Linux, Unix, OS-X
* **Command Line Interface (CLI)**: Text based user interface.
* **Graphical User Interface (GUI)**: User interface that allows users to interact via icons and graphics.

--------------------------------------------------------------------------------------------------------------------

Expand All @@ -413,7 +454,7 @@ testers are expected to do more *exploratory* testing.
1. Download the jar file and copy into an empty folder.

1. Double-click the jar file.<br>
Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.
Expected: Shows the GUI with a set of sample flashcards. The window size may not be optimum.

1. Saving window preferences

Expand Down
54 changes: 26 additions & 28 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,6 @@ only the last parameter supplied will be considered.
</div>


### View help: `help`

Entering help will show you a message for a link to available commands that you can use, with format and examples (i.e. User Guide). Be sure to enter
this command first if you're new to Bagel to maximise your efficiency in using Bagel!

![help message](images/helpMessage.png)

Format: `help`


### Adding a flashcard: `add`

This command will add a new flashcard to your current list of flashcards, into the set that you have specified.
Expand Down Expand Up @@ -111,19 +101,6 @@ the title `Types of Observational Studies`, description `Prospective, Retrospect
link `https://en.wikipedia.org/wiki/Observational_study` with the tags `Types` and `ObservationalStudies` into set `2`.


### Clearing all flashcard entries: `clear`

This command will clear all the flashcards that you currently have stored in Bagel.

Format: `clear`

<div markdown="block" class="alert alert-info">
**:information_source: Warning:**<br>
Once you remove your flashcards, there is no way to undo this and retrieve your data! Make sure that you have a copy of your file somewhere else, or
that you would like to delete all your data!
</div>


### Deleting a flashcard: `delete`

This command will delete the specific flashcard that you specified from your list of flashcards.
Expand Down Expand Up @@ -171,8 +148,14 @@ Format: `view INDEX`
* The index refers to the index number shown in the currently displayed flashcards list.
* The index **must be a positive integer** 1, 2, 3, …

<div markdown="block" class="alert alert-info">
**:information_source: Notes about the command format:**<br>
* To view another flashcard, enter `list` to go back to the entire list of flashcards. Then `view INDEX` of the next flashcard
you would like to view.
</div>


### Viewing all flashcards: `list`
### Listing all flashcards: `list`

Shows a list of all flashcards created, or shows a list of all flashcards in a chosen set.

Expand Down Expand Up @@ -231,6 +214,22 @@ Examples:
* `sort r/tag` returns the list of flashcards, sorted according to each flashcard's first tag.


### Clearing all flashcard entries: `clear`

Clears all flashcard entries from Bagel.

Format: `clear`


### View help: `help`

Shows a message for link to available commands that you can use, with format and examples (i.e. User Guide).

![help message](images/helpMessage.png)

Format: `help`


### Exiting the program: `exit`

Exits the program.
Expand Down Expand Up @@ -263,21 +262,20 @@ while adding flashcards, and to prevent confusion.
* __Set__: It acts similarly to a folder in the real world. To categorize your flashcards, and maximise your efficiency,
do be sure to make use of the 'set' feature to place flashcards into different sets.


--------------------------------------------------------------------------------------------------------------------

## Command summary

Action | Format, Examples
--------|------------------
**Add** | `add t/TITLE d/DESCRIPTION s/SET [l/LINK] [tag/TAG]…`<br> e.g., `add t/Data Analysis d/The definition of Data Analysis is…`
**Clear** | `clear`
**Add** | `add t/TITLE d/DESCRIPTION [s/SET] [l/LINK] [tag/TAG]…`<br> e.g., `add t/Data Analysis d/The definition of Data Analysis is…`
**Delete** | `delete INDEX`<br> e.g., `delete 3`
**Edit** | `edit INDEX [t/TITLE] [d/DESCRIPTION] [s/SET] [l/LINK] [tag/TAG]`<br> e.g., `edit 1 t/Data analysis`
**View** | `view INDEX`<br> e.g., `view 1`
**List** | `list [s/SET]`<br> e.g., `list s/2`
**Flip** | `flip`
**Search** | `search [k/KEYWORD]` <br> e.g., `search k/Data`
**Sort** | `sort r/REQUIREMENT` <br> e.g., `search r/tag`
**Sort** | `sort r/REQUIREMENT` <br> e.g., `sort r/tag`
**Clear** | `clear`
**Help** | `help`
**Exit** | `exit`

0 comments on commit 4a0e978

Please sign in to comment.