Skip to content

Commit

Permalink
collate
Browse files Browse the repository at this point in the history
  • Loading branch information
Yichen-D committed Oct 25, 2016
1 parent fdec170 commit f2d3407
Show file tree
Hide file tree
Showing 17 changed files with 6,049 additions and 1 deletion.
Binary file added Collate-TUI.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ allprojects {
}

shadowJar {
archiveName = "taskmaster.jar"
archiveName = "happyjimtaskmaster.jar"

manifest {
attributes "Main-Class": "seedu.address.MainApp"
Expand Down
5 changes: 5 additions & 0 deletions collate.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
java -jar Collate-TUI.jar collate from src/main to collated/main include java, fxml, css

java -jar Collate-TUI.jar collate from src/test to collated/test include java

java -jar Collate-TUI.jar collate from docs to collated/docs include md, html
101 changes: 101 additions & 0 deletions collated/docs/A0135782Y.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# A0135782Y
###### \DeveloperGuide.md
``` md
<img src="images/SD_Delete_Floating_Task.png" width="800">
```
###### \DeveloperGuide.md
``` md
<img src="images/SD_Update_Task.png" width="800">
```
###### \DeveloperGuide.md
``` md
The _Sequence Diagram_ below show how recurring tasks are handled when they are first added by the user into Happy Jim Task Master.

<img src="images/SD_add_recurring_tasks.png" width="800"><br>

> Note task is a Task reference from the Model and thus any changes made in the RecurringTaskManager will mutate the values of the task.

The _Sequence Diagram_ below show how recurring tasks have dates appended to them every startup of Happy Jim Task Master

<img src="images/SD_update_recurring_tasks.png" width="800"><br>

> Note that repeatingTasks is a reference to the UniqueTaskList from the TaskMaster. Any changes made to repeatingTasks in RecurringTaskManager will affect TaskMaster's version of UniqueTaskList.
```
###### \DeveloperGuide.md
``` md
<img src="images/UI Component.png" width="800"><br>
```
###### \DeveloperGuide.md
``` md
_Unit tests_ targeting the lowest level methods/classes. Below are some snippets, <br>

_Task.java_<br>
<img src="images/test_snippet_Task.PNG" width="800"><br>

_RecurringTaskManager.java_<br>
<img src="images/test_snippet_RecurringTaskManager.PNG" width="800"><br>

_Integration tests_ that are checking the integration of multiple code units
(those code units are assumed to be working). Below are some snippets, <br>

_XmlTaskListStorage.java_<br>
<img src="images/test_snipper_XmlTaskListStorage.PNG" width="800"><br>
```
###### \DeveloperGuide.md
``` md
_LogicManagerTest.java_
<img src="images/test_snippet_LogicManagerTest.PNG" width="800"><br>
```
###### \DeveloperGuide.md
``` md
## Appendix E : Product Survey
Product Name | Strengths | Weaknesses
---|---|---
**Remember the Milk**|<li>Allows for recurring tasks</li><li>Allows floating tasks</li><li>Allows for location</li><li>Allows for estimate</li><li>Allows priority</li> | <li>Requires an accounr</li><li>Not really command line input friendly</li><li>Requires internet connection</li>
**Google Calendar**|<li>Generally suitable for target audience's requirements</li><li>Has a database to store tasks that can be synced</li>| <li>Not command line input friendly</li><li>Requires internet connection</li>
**Any.do**| <li>Can sync across platforms</li><li>Provide convenience service for scheduling</li>| <li>Not command line input friendly</li><li>Requires an account</li><li>Requires internet connection`</li>
**Calendar Iphone App**| <li>Separates tasks and calendar into one app</li><li>Able to add task and tag them</li><li>Able to add recurring task</li><li>Able to add in tasks to calendar in one line using auto detect</li><li>Able to view completed tasks</li>| <li>Not really command line input friendly, use touch input heavily</li>


```
###### \UserGuide.md
``` md
#### Adding a floating task: `add`
Adds a task to the todo list<br>
Format:`add TASK_NAME [t/TAG]...`

Examples:
* `add Homework`
* `add Homework t/CS1231` <br>
<img src="images/ug_add_floating_before.png" width="600">
<img src="images/ug_add_floating_after.png" width="600">

#### Adding a task with deadline: `add`
Format: `add TASK_NAME by DATE TIME [RECURRING_TYPE] [t/TAG]...`

> `RECURRING_TYPE` consists of daily, weekly, monthly and yearly case insensitive.
> Tasks can have only 1 `RECURRING_TYPE`.
> If multiple `RECURRING_TYPE` are used, only the first instance will be accepted.

Examples: <br>
* `add Homework by 24 sep 8pm t/CS1231`
* `add Homework by 24 sep 6pm daily t/CS1231`
<img src="images/ug_add_by_date_before.png" width="600">
<img src="images/ug_add_by_date_after.png" width="600">

#### Adding a task with start time and end time: `add`
Format: `add TASK_NAME from DATE TIME to DATE TIME [RECURRING_TYPE] [t/TAG]...`

> `RECURRING_TYPE` consists of daily, weekly, monthly and yearly case insensitive.
> Tasks can have only 1 `RECURRING_TYPE`.
> If multiple `RECURRING_TYPE` are used, only the first instance will be accepted.

Examples:
* `add Homework from 24 sep 8pm to 25 sep 9pm tag/CS1231`
* `add Homework from today 8.03pm to today 8.15pm t/CS1231`
<img src="images/ug_add_fromto_date_before.png" width="600">
<img src="images/ug_add_fromto_date_after.png" width="600">
* `add Homework from 26 oct 10am to 26 oct 11am daily`
<img src="images/ug_add_fromto_date_recurring_before.png" width="600">
<img src="images/ug_add_fromto_date_recurring_after.png" width="600">
```
56 changes: 56 additions & 0 deletions collated/docs/A0135784W.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# A0135784W
###### \UserGuide.md
``` md
## HappyJimTaskMaster's GUI
<img src="images/Ui.PNG" width="700">
1. Command box. This is where the commands are entered. Simply type in the command and press enter to execute it.
2. Result display. This is where the results of commands are shown.
3. Agenda. This where the agenda of this week is shown.
4. Tasklist panel. This is where the tasks are displayed.
5. Navigation bar panel. This is where the navigation categories are displayed.
```
###### \UserGuide.md
``` md
## Features
### Command Format
> * Each command consists of a command word (such as add or delete), followed by other options such as DATE,TIME or [t/TAG]
> * Words in `UPPER_CASE` are the description of what kind data to input.
> * Items in `SQUARE_BRACKETS` `[items]` are optional.
> * Items with `...` after them can have multiple instances.
> * The order of parameters is fixed.

### Date and Time Format
HappyJimTaskMaster uses Natty date parser to parse date and time options. <br>

Some examples of acceptable format include:
* 21 nov 2005
* 24 sep 8pm
* jan 1st
* next thursday
* 3 days from now

For a full list of acceptable formats, please refer to http://natty.joestelmach.com/doc.jsp
```
###### \UserGuide.md
``` md
## Command Summary

Command | Format
-------- | :--------
Add | `add TASK_NAME [t/TAG]...`
Add | `add TASK_NAME by DATE TIME [RECURRING_TYPE] [t/TAG]...`
Add | `add TASK_NAME from DATE TIME to DATE TIME [RECURRING_TYPE] [t/TAG]...`
Edit | `edit TASK_ID [from EDIT_START_DATE EDIT_START_TIME to EDIT_END_DATE EDIT_END_TIME] [by EDIT_END_DATE EDIT_END_TIME] [t/EDIT_TAG]...`
Delete | `delete TASK_ID`
Complete | `done TASK_ID`
Block | `block TASK_NAME from [START_DATE] START_TIME to [START_DATE] START_TIME [t/TAG]...`
Redo | `r`
Undo | `u`
Find | `find [KEY_WORD] [from DATE_TIME to DATE_TIME | by DATE_TIME] [t/TAG]...`
View | `view DATE [TIME]`
Clear | `clear`
Change directory | `cd FILE_PATH`
Exit | `exit`

-----
```
167 changes: 167 additions & 0 deletions collated/docs/A0147967J.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# A0147967J
###### \DeveloperGuide.md
``` md
The _Sequence Diagram_ below shows how Happy Jim Task Master handles undo request from user.

<img src="images/UndoSequenceDiagram.jpg" width="800"><br>

> Note that the context is a class that stores previous task master in the previous model before the target command executes.

The _Class Diagram_ below shows the structure of how Happy Jim Task Master implements undo and redo operations.

<img src="images/URManager.jpg" width="800"><br>

> Note that LogicManager maintains an URManager. UR manager contains two ArrayDeque, one for undo and the other for redo,
> to store the command and its context, specifically, the model before the command executes.
> To undo/redo a command, it is just to restore the previous model (specifically, the data, which is TaskMaster).
> As a result, as the task master grows, the consumption of memory to store the context grows.
> To maintain a good performance regarding to memory consumption, we restrict maximum undo/redo number to 3.
> (Noted that it is possible to reach unlimited undo/redo by simply wiping off the limit number.)

```
###### \DeveloperGuide.md
``` md

1. **GUI Tests** - These are _System Tests_ that test the entire App by simulating user actions on the GUI.
These are in the `guitests` package.

Currently, _Systems Tests_ have covered the basic functionalities of Happy Jim Task Master v0.4.
Following form shows the some of the essential commands and corresponding testcases.

1. _AddCommandTest_


| Case# | Event | Basis Path | Output |
| :---: | --- | --- | --- |
| 1 | add floating task to existing task list `add eat with Hoon Meier` | 1 -> 2 | `New floating task added: eat with Hoon Meier Tags: ` |
| 2 | add floating task to existing task list `add play with Ida Mueller` | 1 -> 2 | `New floating task added: play with Ida Mueller Tags: ` |
| 3 | add duplicate floating task to existing task master `add eat with Hoon Meier` | 1 | `This task already exists in the task list` |
| 4 | clear existing task list `clear` | 1 -> 2 | `Task list has been cleared!` |
| 5 | add to empty task list `add take trash t/notUrgent` | 1 -> 2 | `New floating task added: take trash Tags: [notUrgent]` |
| 6 | invalid add command `adds Johnny` | 1 | `Unknown command` |

2. _ClearCommandTest_


| Case# | Event | Basis Path | Output |
| :---: | --- | :---: | --- |
| 1 | clear existing non-empty task list `clear` | 1 -> 2 | `Task list has been cleared!` |
| 2 | verify other commands can work after task list cleared `add eat with Hoon Meier` | 1 -> 2 | `New floating task added: eat with Hoon Meier Tags: ` |
| 3 | add duplicate floating task `delete 1` | 1 -> 2| `Deleted Task: eat with Hoon Meier Tags: ` |
| 4 | verify clear command works when the list is empty `clear` | 1 -> 2 | `Task list has been cleared!` |

3. _CommandBoxTest_


| Case# | Event | Basis Path | Output |
| :---: | --- | :---: | --- |
| 1 | command succeeds text cleared `add read book t/textBook t/weekly` | 1 -> 2 | `This task already exists in the task list` |
| 2 | command fails text stays `invalid command` | 1 | `Unknown Command` |

4. _DeleteCommandTest_


| Case# | Event | Basis Path | Output |
| :---: | --- | :---: | --- |
| 1 | delete the first in the list `delete 1` | 1 -> 2 | `Deleted Task: take trash Tags: [notUrgent]` |
| 2 | delete the last in the list `delete 6` | 1 -> 2 | `Deleted Task: visit George Best Tags: ` |
| 3 | delete from the middle of the list `delete 2` | 1 -> 2 | `Deleted Task: do homework Tags: ` |
| 4 | delete with invalid index `delete 51` | 1 | `The task index provided is invalid` |

5. _FindCommandTest_


| Case# | Event | Basis Path | Output |
| :---: | --- | :---: | --- |
| 1 | find in non-empty list with no results `find Mark` | 1 -> 2 | `0 tasks listed!` |
| 2 | find in non-empty list with multiple results `find read` | 1 -> 2 | `2 tasks listed!` |
| 3 | delete one result `delete 1` | 1 -> 2 | `Deleted Task: read book Tags: [textBook][weekly]` |
| 4 | find in non-empty list with one result `find read` | 1 -> 2 | `1 tasks listed!` |
| 5 | find in empty list `find Jean` | 1 -> 2 | `0 tasks listed!` |
| 6 | invalid find command `findgeorge` | 1 | `Unknown command` |

```
###### \DeveloperGuide.md
``` md
Hybrids of unit and integration tests. These test are checking multiple code units as well as
how the are connected together. Below are some snippets,<br>
e.g. `seedu.taskmaster.logic.LogicManagerTest`<br>
In the `LogicManagerTest`, Happy Jim Task Master tests the logic it uses.<br>
Typically, Happy Jim Task Master focuses on some boundary tests.<br>
e.g. To `find` a task, for instance, `Test Task 1 by 20 oct 11am `,<br>
try execute <br>
*`find by 20 oct 11am` --> exact boundary, task found;<br>
*`find by 20 oct 10.59am` --> smaller boundary, lists nothing;<br>
*`find by 20 oct 11.01am` --> lax boundary, task found.<br>
> Note that this is a test not merely for `logic`, but also `parser` and `model`.<br>
```
###### \UserGuide.md
``` md

#### Archive completed tasks : `done`
Format: done TASK_ID

Examples:
* `done 5`

<img src="images/beforedone.png" width="600">
<img src="images/afterdone1.png" width="600">
<img src="images/afterdone2.png" width="600">
>Completed tasks can be viewed from navigation bar on the side.

#### Block out timeslot : `block`
Format: block from [START_DATE] START_TIME to [START_DATE] START_TIME [t/TAG]

Examples:
* `block from tomorrow 3pm to tomorrow 5pm t/meeting`

> <img src="images/beforeblock.png" width="600">
> <img src="images/afterblock.png" width="600">

#### Undo tasks : `undo`
Format: u

> Maximum 3 undo

Examples:
* `u`

<img src="images/beforeundo.png" width="600">
<img src="images/afterundo.png" width="600">

#### Redo tasks : `redo`
Format: r

> Maximum 3 redo

Examples:
* `r`

<img src="images/beforeredo.png" width="600">
<img src="images/afterredo.png" width="600">

#### View agenda of a day: `view`
Format: view DATE [TIME]

Examples:
* `view next monday`

<img src="images/beforeview.png" width="600">
<img src="images/afterview1.png" width="600">
<img src="images/afterview2.png" width="600">

```
###### \UserGuide.md
``` md

#### Change directory: `cd`
Format: cd FILE_PATH

Examples:
* `cd data\newlist.xml`

<img src="images/beforecd.png" width="600">
<img src="images/aftercd1.png" width="600">
<img src="images/aftercd2.png" width="600">

```
Loading

0 comments on commit f2d3407

Please sign in to comment.