<commit_before># Use Cases

By : `CS2103JAN2017-W15-B2`  &nbsp;&nbsp;&nbsp;&nbsp; Since: `Mar 2017`  &nbsp;&nbsp;&nbsp;&nbsp; Licence: `MIT`

---

- [Use Case Diagram](#use-case-diagram)
- [Use Cases](#use-cases-1)
    - [Add Floating Task](#add-floating-task)
    - [Add Deadline Task](#add-deadline-task)
    - [Add Event](#add-event)
    - [List all Tasks](#list-all-tasks)
    - [Edit Task](#edit-task)
    - [Mark Task as Completed](#mark-task-as-completed)
    - [Delete Task](#delete-task)
    - [Find Task](#find-task)
    - [Undo Action](#undo-action)
    - [Redo Action](#redo-action)
    - [Save to File](#save-to-file)
    - [Change File storage](#change-file-storage)

## Use Case Diagram

![Use Case Diagram](diagrams/Use_Case_Diagram.PNG)

## Use Cases

### Add Floating Task

### Add Deadline Task

### Add Event

### List all tasks

**MSS**

1. User requests to list tasks
2. TaskBook shows a list of tasks <br>
Use case ends

**Extensions**
2a. The list is empty
> 2a1. TaskBook shows a notice message <br>
  Use case ends

### Edit task

**MSS**

1. User retrieves list of tasks [via Use Case: List all Tasks](#list-all-tasks)
2. User enters command to edit task
3. TaskBook edits task according to given parameters
Use case ends

**Extensions**

2a. The given index is invalid

> 2a1. TaskBook shows an error message <br>
  Use case resumes at step 2

2b. The given parameters are invalid

 > 2b1. TaskBook shows an error message <br>
  Use case resumes at step 2

### Mark Task as Completed

1. User retrieves list of tasks [via Use Case: List all Tasks](#list-all-tasks)
2. User enters command to mark task as completed
3. TaskBook marks specified task as completed
Use case ends

**Extensions**

2a. The given index is invalid

> 2a1. TaskBook shows an error message <br>
  Use case resumes at step 2

### Delete Task

### Find task

**MSS**

1. User requests to find tasks by keyword
2. TaskBook shows a list of tasks with keywords that match the exact keyword <br>
Use case ends

**Extensions**
2a. The list is empty
> 2a1. TaskBook shows a notice message <br>
  Use case ends

### Undo Action

**MSS**

1. User requests to undo the previous action
2. TaskBook undos the last action
3. TaskBook shows the reflected changes <br>
Use case ends

**Extensions**
2a. There exists no valid action that can be undone
> 2a1. TaskBook shows a notice message <br><commit_msg>Added Delete Task Use Case<commit_after># Use Cases

By : `CS2103JAN2017-W15-B2`  &nbsp;&nbsp;&nbsp;&nbsp; Since: `Mar 2017`  &nbsp;&nbsp;&nbsp;&nbsp; Licence: `MIT`

---

- [Use Case Diagram](#use-case-diagram)
- [Use Cases](#use-cases-1)
    - [Add Floating Task](#add-floating-task)
    - [Add Deadline Task](#add-deadline-task)
    - [Add Event](#add-event)
    - [List all Tasks](#list-all-tasks)
    - [Edit Task](#edit-task)
    - [Mark Task as Completed](#mark-task-as-completed)
    - [Delete Task](#delete-task)
    - [Find Task](#find-task)
    - [Undo Action](#undo-action)
    - [Redo Action](#redo-action)
    - [Save to File](#save-to-file)
    - [Change File storage](#change-file-storage)

## Use Case Diagram

![Use Case Diagram](diagrams/Use_Case_Diagram.PNG)

## Use Cases

### Add Floating Task

### Add Deadline Task

### Add Event

### List all tasks

**MSS**

1. User requests to list tasks
2. TaskBook shows a list of tasks <br>
Use case ends

**Extensions**
2a. The list is empty
> 2a1. TaskBook shows a notice message <br>
  Use case ends

### Edit task

**MSS**

1. User retrieves list of tasks [via Use Case: List all Tasks](#list-all-tasks)
2. User enters command to edit task
3. TaskBook edits task according to given parameters
Use case ends

**Extensions**

2a. The given index is invalid

> 2a1. TaskBook shows an error message <br>
  Use case resumes at step 2

2b. The given parameters are invalid

 > 2b1. TaskBook shows an error message <br>
  Use case resumes at step 2

### Mark Task as Completed

1. User retrieves list of tasks [via Use Case: List all Tasks](#list-all-tasks)
2. User enters command to mark task as completed
3. TaskBook marks specified task as completed
Use case ends

**Extensions**

2a. The given index is invalid

> 2a1. TaskBook shows an error message <br>
  Use case resumes at step 2

### Delete Task

**MSS**

1. User retrieves list of tasks [via Use Case: List all Tasks](#list-all-tasks)
2. User enters command to delete task
3. TaskBook deletes specified task
Use case ends

**Extensions**

2a. The given index is invalid

> 2a1. TaskBook shows an error message <br>
  Use case resumes at step 2

### Find task

**MSS**

1. User requests to find tasks by keyword
2. TaskBook shows a list of tasks with keywords that match the exact keyword <br>
Use case ends

**Extensions**
2a. The list is empty
> 2a1. TaskBook shows a notice message <br>
  Use case ends

### Undo Action

**MSS**

1. User requests to undo the previous action
2. TaskBook undos the last action
3. TaskBook shows the reflected changes <br>
Use case ends

**Extensions**
2a. There exists no valid action that can be undone
> 2a1. TaskBook shows a notice message <br>
{'fraction_non_alphanumeric': 0.11468970934799685, 'fraction_numerical': 0.02101335428122545, 'mean_word_length': 3.5882882882882883, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3168568', 'n_tokens_mistral': 1745, 'n_tokens_neox': 1655, 'n_words': 691}