<commit_before># Task Manager - User Guide

By : `Team SE-EDU`  &nbsp;&nbsp;&nbsp;&nbsp; Since: `Jun 2016`  &nbsp;&nbsp;&nbsp;&nbsp; Licence: `MIT`

---

1. [Quick Start](#quick-start)
2. [Features](#features)
3. [FAQ](#faq)
4. [Command Summary](#command-summary)

## 1. Quick Start

0. Ensure you have Java version `1.8.0_60` or later installed in your Computer.<br>

   > Having any Java 8 version is not enough. <br>
   > This app will not work with earlier versions of Java 8.

1. Download the latest `taskmanager.jar` from the [releases](../../../releases) tab.
2. Copy the file to the folder you want to use as the home folder for your Task Manager.
3. Double-click the file to start the app. The GUI should appear in a few seconds.
   > <img src="images/Ui.png" width="600">

4. Type the command in the command box and press <kbd>Enter</kbd> to execute it. <br>
   e.g. typing **`help`** and pressing <kbd>Enter</kbd> will open the help window.
5. Some example commands you can try:
   * **`list all`** : lists all tasks
   * **`add `**` send budget proposal by next Thurs noon to boss #project A` :
     adds a task to the task manager.
   * **`exit`** : exits the app
6. Refer to the [Features](#features) section below for details of each command.<br>


## 2. Features

> **Command Format**
>
> * Words in `UPPER_CASE` are the parameters.
> * Items in `SQUARE_BRACKETS` are optional.
> * Items with `...` after them can have multiple instances.
> * Parameters must be in the specified order.

> **Date and Time Format**
>
> A wide variety of date and time format is accepted.
> Some examples are: 
> * `2017-02-23` (yyyy-mm-dd) <br>
> * `04/05` (mm/dd) <br>
> * `today` <br>
> * `tomorrow` or `tmr` <br>
> * `next tues` <br>
> * `3 weeks from now` <br>
> * `9pm` or `21:00` <br>
> * `noon` <br>

### 2.1. Viewing help : `help`

Format: `help`

> Help is also shown if you enter an incorrect command e.g. `abcd`

### 2.2. Adding a task : `add`

Adds a task to the task manager<br>
> Task can have any number of tags (including 0)

### 2.2.1. Floating task 

Format: `add TASK [#TAG]...`

Examples:

* `add read Lord of The Rings #personal`

### 2.2.2. Adding a deadline

Format: `add TASK by DATETIME [#TAG]...`

Examples:

* `add prepare meeting slides by tomorrow 9am #impt #work`
* `add send budget proposal by next Thurs noon to boss #project A`

### 2.2.3. Adding an event 

Format: `add TASK from START_DATETIME to END_DATETIME [#TAG]...`

Examples:

* `add attend skills upgrading workshop from 05/12 to 05/16`
* `add meeting at board room 4 from 10am to 11am t/project A #meetings`

### 2.3. Listing tasks by type : `list LIST_TYPE`

Format: `list`<br>
Shows a list of all overdue tasks and upcoming tasks set for the next day.<br>

Format: `list all`<br>
Shows a list of all tasks.<br>

Format: `list float`<br>
Shows a list of all floating tasks.<br>

Format: `list day`<br>
Shows a list of deadlines and events scheduled on the current day.<br>

Format: `list week`<br>
Shows a list of deadlines and events scheduled for the week.<br>

Format: `list #TAG`<br>
Shows a list of tasks labeled with the given TAG.<br>

Format: `list marked`<br>
Shows a list of all tasks that have been marked as completed.<br>

> * Edits the person at the specified `INDEX`.
    The index refers to the index number shown in the last person listing.<br>
    The index **must be a positive integer** 1, 2, 3, ...
> * At least one of the optional fields must be provided.
> * Existing values will be updated to the input values.
> * When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
> * You can remove all the person's tags by typing `t/` without specifying any tags after it. 

Examples:

* `edit 1 p/91234567 e/<EMAIL>`<br>
  Edits the phone number and email address of the 1st person to be `91234567` and `<EMAIL>` respectively.

* `edit 2 <NAME> t/`<br>
  Edits the name of the 2nd person to be `<NAME>` and clears all existing tags.

### 2.5. Finding all persons containing any keyword in their name: `find`

Finds persons whose names contain any of the given keywords.<br>
Format: `find KEYWORD [MORE_KEYWORDS]`<commit_msg>find feature<commit_after># Task Manager - User Guide

By : `Team SE-EDU`  &nbsp;&nbsp;&nbsp;&nbsp; Since: `Jun 2016`  &nbsp;&nbsp;&nbsp;&nbsp; Licence: `MIT`

---

1. [Quick Start](#quick-start)
2. [Features](#features)
3. [FAQ](#faq)
4. [Command Summary](#command-summary)

## 1. Quick Start

0. Ensure you have Java version `1.8.0_60` or later installed in your Computer.<br>

   > Having any Java 8 version is not enough. <br>
   > This app will not work with earlier versions of Java 8.

1. Download the latest `taskmanager.jar` from the [releases](../../../releases) tab.
2. Copy the file to the folder you want to use as the home folder for your Task Manager.
3. Double-click the file to start the app. The GUI should appear in a few seconds.
   > <img src="images/Ui.png" width="600">

4. Type the command in the command box and press <kbd>Enter</kbd> to execute it. <br>
   e.g. typing **`help`** and pressing <kbd>Enter</kbd> will open the help window.
5. Some example commands you can try:
   * **`list all`** : lists all tasks
   * **`add `**` send budget proposal by next Thurs noon to boss #project A` :
     adds a task to the task manager.
   * **`exit`** : exits the app
6. Refer to the [Features](#features) section below for details of each command.<br>


## 2. Features

> **Command Format**
>
> * Words in `UPPER_CASE` are the parameters.
> * Items in `SQUARE_BRACKETS` are optional.
> * Items with `...` after them can have multiple instances.
> * Parameters must be in the specified order.

> **Date and Time Format**
>
> A wide variety of date and time format is accepted.
> Some examples are: 
> * `2017-02-23` (yyyy-mm-dd) <br>
> * `04/05` (mm/dd) <br>
> * `today` <br>
> * `tomorrow` or `tmr` <br>
> * `next tues` <br>
> * `3 weeks from now` <br>
> * `9pm` or `21:00` <br>
> * `noon` <br>

### 2.1. Viewing help : `help`

Format: `help`

> Help is also shown if you enter an incorrect command e.g. `abcd`

### 2.2. Adding a task : `add`

Adds a task to the task manager<br>
> Task can have any number of tags (including 0)

### 2.2.1. Floating task 

Format: `add TASK [#TAG]...`

Examples:

* `add read Lord of The Rings #personal`

### 2.2.2. Adding a deadline

Format: `add TASK by DATETIME [#TAG]...`

Examples:

* `add prepare meeting slides by tomorrow 9am #impt #work`
* `add send budget proposal by next Thurs noon to boss #project A`

### 2.2.3. Adding an event 

Format: `add TASK from START_DATETIME to END_DATETIME [#TAG]...`

Examples:

* `add attend skills upgrading workshop from 05/12 to 05/16`
* `add meeting at board room 4 from 10am to 11am t/project A #meetings`

### 2.3. Listing tasks by type : `list LIST_TYPE`

Format: `list`<br>
Shows a list of all overdue tasks and upcoming tasks set for the next day.<br>

Format: `list all`<br>
Shows a list of all tasks.<br>

Format: `list float`<br>
Shows a list of all floating tasks.<br>

Format: `list day`<br>
Shows a list of deadlines and events scheduled on the current day.<br>

Format: `list week`<br>
Shows a list of deadlines and events scheduled for the week.<br>

Format: `list #TAG`<br>
Shows a list of tasks labeled with the given TAG.<br>

Format: `list marked`<br>
Shows a list of all tasks that have been marked as completed.<br>

### 2.4. Finding all tasks containing any keyword in their description: `find`

Finds tasks which contain any of the given keywords in their description.<br>
Format: `find KEYWORD [MORE_KEYWORDS]`

> * Only the task description is searched.
> * The search is case insensitive. e.g `Report` will match `report`
> * The order of the keywords does not matter. e.g. `proposal for boss` will match `for boss proposal`
> * Partial words will be matched e.g. `meet` will match `meeting`
> * Tasks matching at least one keyword will be returned (i.e. `OR` search).
    e.g. `lunch` will match `lunch appointment`

Examples:

* `find file filing`<br>
  Returns any tasks with `file`, `files`, `filing` etc. as part of its description
> * Edits the person at the specified `INDEX`.
    The index refers to the index number shown in the last person listing.<br>
    The index **must be a positive integer** 1, 2, 3, ...
> * At least one of the optional fields must be provided.
> * Existing values will be updated to the input values.
> * When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
> * You can remove all the person's tags by typing `t/` without specifying any tags after it. 

Examples:

* `edit 1 p/91234567 e/<EMAIL>`<br>
  Edits the phone number and email address of the 1st person to be `91234567` and `<EMAIL>` respectively.

* `edit 2 Betsy Crower t/`<br>
  Edits the name of the 2nd person to be `<NAME>` and clears all existing tags.

### 2.5. Finding all persons containing any keyword in their name: `find`

Finds persons whose names contain any of the given keywords.<br>
Format: `find KEYWORD [MORE_KEYWORDS]`
{'fraction_non_alphanumeric': 0.12315812623707939, 'fraction_numerical': 0.02221244776775896, 'mean_word_length': 3.6426748340990303, 'pattern_counts': {'":': 0, '<': 84, '<?xml version=': 0, '>': 145, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4180040', 'n_tokens_mistral': 3161, 'n_tokens_neox': 2948, 'n_words': 1356}