<commit_before>
# User Guide

* [Quick Start](#quick-start)
* [UI Control](#ui-control)
* [Features](#features)
* [FAQ](#faq)
* [Command Summary](#command-summary)

## Quick Start
<!-- @@author A0144702N -->
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 `Dowat.jar` from the 'releases' tab.
2. Copy the file to the folder you want to use as the home folder for your task book.
3. Double-click the file to start the app. The GUI should appear in a few seconds. Refer to [UI Control](#ui-control) for a more detailed walkthrough of various UI components. 
   > <img src="images/UIOverview.png" width="800">

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:
   * **`add try out Dowat /by tomorrow`**: will add a task into the application. The task will be shown in the list and calendar as highlighted.   
   <img src="images/Add.png" width="500">
   * **`mark 1`**: after you are done with a task, simply mark it off from the list. Tasks will be sorted so you can easily find those tasks with closer deadlines at the top of the list!
   * **`list /t /a`** : you can also lists all tasks that are completed, and shown as below.  
   <img src="images/List_Done.png" width="500">
   * **`undo`**: if you accidently do anything wrong, you can undo the modifications also!
   * **`edit /t 1 /by one hour later`** Edit any field you need (description, name, deadline, event duration ...) with the edit command. Where the index `1` refers to the index of the task / event in the respective list.   
   :wink: Check out the [Features](#features) for a complete set of commands you can use!



## UI Control

#### Event/Task Card    
The default card is shown as below:  
<img src="images/Card_Default.png" width="500"> 
<br>
A task that is overdue will be highlighted and shown as below:  
<img src="images/Card_Overdue.png" width="500">
<br>
A task/event that is due on today will be highlighted and shown:  
<img src="images/Card_Today.png" width="500">
<br>
A task/event that is completed or passed will be hidden from the list by default, and shown as below.  
<img src="images/Card_Done.png" width="500">


#### Calendar Features
The events and tasks will be both synchronised to your calendar. You are not able to do any modification through the calendar.

* Select on an event /task
> Your selection on task /event will be sync to calendar. When you select a task /event, the calendar will jump to the correct time frame to show the task /event as highlighted. 

* Current time
> The red line shows the current time.

* Toggle Calendar view
> With the `show` calendar, you can jump to any valid time frame such as "today, tomorrow 9pm". You can also toggle the view between week view(5 days by default) and day view.
> See more on [show command] (https://github.com/CS2103AUG2016-F09-C4/main/blob/master/docs/UserGuide.md#toggle-calendar-view)

<img src="images/Calendar_Day.png" width="400"> <img src="images/Calendar_Week.png" width="400">


<!-- @@author A0121608N -->
#### Traversing between Windows
The four main windows in which you can traverse are:

  * Command Box
  * Result Display Panel
  * Task Panel
  * Event Panel

By utilizing the TAB key, you are able to switch between the different windows in the above-mentioned order. 
The order of traversal is descending down the list before it loops back to the beginning. 

The window in which you are currently on is shown by a brown border highlight. 
An example of window traversal is shown in the figure below.

<img src="images/WindowTraversal.gif" width="700">

#### Command Box Features
When the Command Box is selected, it has 2 main features:

* Clearing the Command Box

  Pressing the DELETE key will clear the Command Box of its text content. This allows for easy clearing of commands.
  	<img src="images/CommandBoxDelete.gif" width="700">

* Accessing past History of Commands
  
  Pressing the UP key will access the previous command in the history and will copy it into the Command Box. 
  Pressing the DOWN key will access the next command in the history and will copy it into the Command Box. 

  The Command history resets itself after each session of usage (i.e exit the program).
  A Command is only added into the Command history when it is executed by the Command Box (i.e ENTER key press).
  <img src="images/CommandBoxHistory.gif" width="700">

#### Result Display Panel Features
When the Result Display Panel is selected, it has a scrolling feature where the UP and DOWN key would be able to control the scroll bar within the window. 
This prevents the need to use the mouse wheel for scrolling.
	<img src="images/ResultDisplayScroll.gif" width="700">

#### Task and Event Panel Features
When the Task or Event Panel is selected, it has a scrolling feature where the UP and DOWN key would be able to control the scroll bar within the window. 
This prevents the need to use the mouse wheel for scrolling.
	<img src="images/PanelScroll.gif" width="700">

<!-- @@author-->


## Features
 
<!-- @@author A0127570H -->

#### Adding a task
Adds a task to Dowat<br>

Format: `add TASK_NAME [/desc DESCRIPTION] [/by DEADLINE_DATETIME]` <br>
 
> Words in `UPPER_CASE` are the parameters, parameters will follow behind their corresponding keyword. 
> With the exception of `TASK_NAME`, all other parameters are optional. The order of parameters are not fixed. 
> `DEADLINE_DATE_TIME` can be entered in any natural language format.
> For date, entering words like today, tomorrow and day after are recognised.
> Dates entered in numeric form must be in the format of MM-DD-YYYY.
> Only valid dates are recognised correctly.
> For time, entering 7pm, 1900 or 19.00 are recognised.
> If no time is entered, it is assumed to be due at 23:59 hours.

Examples: 
* `add CS2103 V0.4 /by 30 Dec` <br>
   Adds a task "CS2103 V0.4" with deadline "23:59 30 December 2016"
* `add heat transfer quiz /desc IVLE /by tomorrow 8pm` <br>
<img src="images/addtask.gif" width="700">


#### Adding an event
Similar to adding a task, you can also add an event to Dowat<br>

Format: `add EVENT_NAME /from START_DATETIME [/to END_DATETIME] [/desc DESCRIPTION]` <br>

> With the exception of `EVENT_NAME` and `START_DATETIME`, all other parameters are optional. The order of parameters are not fixed. 
> `START_DATETIME` and `END_DATETIME` can be entered in natural language.
> For date, entering words like today, tomorrow and day after are recognised.
> Dates entered in numeric form must be in the format of MM-DD-YYYY.
> Only valid dates are recognised correctly.
> For time, entering 7pm, 1900 or 19.00 are recognised.
> If no start time is entered, it is assumed to start at 00:00 hours.
> If `END_DATETIME` is not provided, the start and end dates will be the same, the default timing will be set 1 hour apart.

Examples:
* `add CS2103 Exam @ MPSH3 /from 30 December 4pm /to 6pm` <br><commit_msg>Update add comand in user guide<commit_after>
# User Guide

* [Quick Start](#quick-start)
* [UI Control](#ui-control)
* [Features](#features)
* [FAQ](#faq)
* [Command Summary](#command-summary)

## Quick Start
<!-- @@author A0144702N -->
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 `Dowat.jar` from the 'releases' tab.
2. Copy the file to the folder you want to use as the home folder for your task book.
3. Double-click the file to start the app. The GUI should appear in a few seconds. Refer to [UI Control](#ui-control) for a more detailed walkthrough of various UI components. 
   > <img src="images/UIOverview.png" width="800">

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:
   * **`add try out Dowat /by tomorrow`**: will add a task into the application. The task will be shown in the list and calendar as highlighted.   
   <img src="images/Add.png" width="500">
   * **`mark 1`**: after you are done with a task, simply mark it off from the list. Tasks will be sorted so you can easily find those tasks with closer deadlines at the top of the list!
   * **`list /t /a`** : you can also lists all tasks that are completed, and shown as below.  
   <img src="images/List_Done.png" width="500">
   * **`undo`**: if you accidently do anything wrong, you can undo the modifications also!
   * **`edit /t 1 /by one hour later`** Edit any field you need (description, name, deadline, event duration ...) with the edit command. Where the index `1` refers to the index of the task / event in the respective list.   
   :wink: Check out the [Features](#features) for a complete set of commands you can use!



## UI Control

#### Event/Task Card    
The default card is shown as below:  
<img src="images/Card_Default.png" width="500"> 
<br>
A task that is overdue will be highlighted and shown as below:  
<img src="images/Card_Overdue.png" width="500">
<br>
A task/event that is due on today will be highlighted and shown:  
<img src="images/Card_Today.png" width="500">
<br>
A task/event that is completed or passed will be hidden from the list by default, and shown as below.  
<img src="images/Card_Done.png" width="500">


#### Calendar Features
The events and tasks will be both synchronised to your calendar. You are not able to do any modification through the calendar.

* Select on an event /task
> Your selection on task /event will be sync to calendar. When you select a task /event, the calendar will jump to the correct time frame to show the task /event as highlighted. 

* Current time
> The red line shows the current time.

* Toggle Calendar view
> With the `show` calendar, you can jump to any valid time frame such as "today, tomorrow 9pm". You can also toggle the view between week view(5 days by default) and day view.
> See more on [show command] (https://github.com/CS2103AUG2016-F09-C4/main/blob/master/docs/UserGuide.md#toggle-calendar-view)

<img src="images/Calendar_Day.png" width="400"> <img src="images/Calendar_Week.png" width="400">


<!-- @@author A0121608N -->
#### Traversing between Windows
The four main windows in which you can traverse are:

  * Command Box
  * Result Display Panel
  * Task Panel
  * Event Panel

By utilizing the TAB key, you are able to switch between the different windows in the above-mentioned order. 
The order of traversal is descending down the list before it loops back to the beginning. 

The window in which you are currently on is shown by a brown border highlight. 
An example of window traversal is shown in the figure below.

<img src="images/WindowTraversal.gif" width="700">

#### Command Box Features
When the Command Box is selected, it has 2 main features:

* Clearing the Command Box

  Pressing the DELETE key will clear the Command Box of its text content. This allows for easy clearing of commands.
  	<img src="images/CommandBoxDelete.gif" width="700">

* Accessing past History of Commands
  
  Pressing the UP key will access the previous command in the history and will copy it into the Command Box. 
  Pressing the DOWN key will access the next command in the history and will copy it into the Command Box. 

  The Command history resets itself after each session of usage (i.e exit the program).
  A Command is only added into the Command history when it is executed by the Command Box (i.e ENTER key press).
  <img src="images/CommandBoxHistory.gif" width="700">

#### Result Display Panel Features
When the Result Display Panel is selected, it has a scrolling feature where the UP and DOWN key would be able to control the scroll bar within the window. 
This prevents the need to use the mouse wheel for scrolling.
	<img src="images/ResultDisplayScroll.gif" width="700">

#### Task and Event Panel Features
When the Task or Event Panel is selected, it has a scrolling feature where the UP and DOWN key would be able to control the scroll bar within the window. 
This prevents the need to use the mouse wheel for scrolling.
	<img src="images/PanelScroll.gif" width="700">

<!-- @@author-->


## Features
 
<!-- @@author A0127570H -->

#### Adding a task
Adds a task to Dowat<br>

Format: `add TASK_NAME [/desc DESCRIPTION] [/by DEADLINE_DATETIME]` <br>
 
> Words in `UPPER_CASE` are the parameters, parameters will follow behind their corresponding keyword. 
> With the exception of `TASK_NAME`, all other parameters are optional. The order of parameters are not fixed. 
> `DEADLINE_DATETIME` can be entered in any natural language format.
> For date, entering words like today, tomorrow and day after are recognised.
> Dates entered in numeric form must be in the format of MM-DD-YYYY.
> Only valid dates are recognised correctly.
> For time, entering 7pm, 1900 or 19.00 are recognised.
> If no time is entered, it is assumed to be due at 23:59 hours.

Examples: 
* `add CS2103 V0.4 /by 30 Dec` <br>
   Adds a task "CS2103 V0.4" with deadline "23:59 30 December 2016"
* `add heat transfer quiz /desc IVLE /by tomorrow 8pm` <br>
<img src="images/addtask.gif" width="700">


#### Adding an event
Similar to adding a task, you can also add an event to Dowat<br>

Format: `add EVENT_NAME /from START_DATETIME [/to END_DATETIME] [/desc DESCRIPTION]` <br>

> With the exception of `EVENT_NAME` and `START_DATETIME`, all other parameters are optional. The order of parameters are not fixed. 
> `START_DATETIME` and `END_DATETIME` can be entered in natural language.
> For date, entering words like today, tomorrow and day after are recognised.
> Dates entered in numeric form must be in the format of MM-DD-YYYY.
> Only valid dates are recognised correctly.
> For time, entering 7pm, 1900 or 19.00 are recognised.
> If no start time is entered, it is assumed to start at 00:00 hours.
> If `END_DATETIME` is not provided, the start and end dates will be the same, the default timing will be set 1 hour apart.

Examples:
* `add CS2103 Exam @ MPSH3 /from 30 December 4pm /to 6pm` <br>
{'fraction_non_alphanumeric': 0.08606187000347584, 'fraction_numerical': 0.021828293361140075, 'mean_word_length': 3.9470426409903716, 'pattern_counts': {'":': 0, '<': 75, '<?xml version=': 0, '>': 119, 'https://': 2, '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': '574551', 'n_tokens_mistral': 4362, 'n_tokens_neox': 4037, 'n_words': 2138}