Skip to content

Commit

Permalink
Merge branch 'develop' into update-DeveloperGuide
Browse files Browse the repository at this point in the history
  • Loading branch information
Skaty committed Nov 7, 2016
2 parents 4907459 + 83a7a4c commit 90a1bea
Show file tree
Hide file tree
Showing 9 changed files with 106 additions and 81 deletions.
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@
[![Coverage Status](https://coveralls.io/repos/github/CS2103AUG2016-T14-C4/main/badge.svg?branch=develop)](https://coveralls.io/github/CS2103AUG2016-T14-C4/main?branch=develop)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/03ea8214af7d4213bc41ce73905a24e4)](https://www.codacy.com/app/syed/main?utm_source=github.com&utm_medium=referral&utm_content=CS2103AUG2016-T14-C4/main&utm_campaign=Badge_Grade)

<img src="docs/images/MESS_003.png" width="600"><br>
<img src="docs/images/MESS.PNG" width="600"><br>

* This is a desktop to do list application. It has a GUI but most of the user interactions happen using
a CLI (Command Line Interface).
* It is an application intended for users to put their tasks into a scheduling system.
* It uses Java as the main programming language.
* It is **written in OOP fashion**. It provides a **reasonably well-written** code example that is
**significantly bigger** (around 6 KLoC)than what students usually write in beginner-level SE modules.
* MESS is a desktop to do list application. It has a GUI but most of the user interactions happen using
a CLI (Command Line Interface) and mostly with one line of command as input.
* It is an application intended for users to put their tasks and events into a scheduling system.
* It uses Java as the main programming language. It is **written in OOP fashion**.
* It is developed by a group of undergraduate students from School of Computing, National University of Singapore for the module CS2103 with the help from professor and supervisior.


#### Site Map
Expand All @@ -27,7 +26,7 @@


#### Acknowledgements
* Orginal source and code base of this application is based on [Addressbook-level4](https://github.com/se-edu/addressbook-level4) created by [SE-EDU initiative](http://github.com/se-edu/)
* Orginal source and code base of this application is based on [Addressbook-level4](https://github.com/se-edu/addressbook-level4)forked from se-edu/addressbook-level4 created by [SE-EDU initiative](http://github.com/se-edu/)
* Some parts of this sample application were inspired by the excellent
[Java FX tutorial](http://code.makery.ch/library/javafx-8-tutorial/) by *Marco Jakob*.

Expand Down
9 changes: 0 additions & 9 deletions copyright.txt

This file was deleted.

163 changes: 99 additions & 64 deletions docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,31 @@

* [Quick Start](#quick-start)
* [Features](#features)
* [FAQ](#FAQ)
* [Add](#adding-a-task-or-event-add)
* [Alias](#aliasing-a-command-alias)
* [Delete](#deleting-a-task--delete)
* [Update](#update-entries--update)
* [Complete](#marking-a-task-as-completed-complete)
* [Uncomplete](#unmarking-a-completed-task-as-not-completed-uncomplete)
* [Pin](#pin-a-task-as-important-pin)
* [Unpin](#unpin-a-pinned-task-unpin)
* [List](#listing-all-tasks--list)
* [Find](#finding-all-tasks-and-events-containing-keyword-in-their-name--find)
* [Search Box](#activate-real-time-search-searchbox)
* [Undo](#undo-action--undo)
* [Help](#viewing-help--help)
* [Change-to](#change-storage-location--change-to)
* [Exit](#exiting-the-program--exit)
* [FAQ](#faq)
* [Command Summary](#command-summary)

<!-- @@author A0153467Y -->
## Introduction

Nowadays, everyone has so many tasks to do. Have you ever missed your deadlines or forget your schedule? MESS is here to help you! MESS is a to-do list application which reminds you of your tasks or events by showing your list of tasks on the application. No need to afraid of forgetting your tasks anymore! You can easily use MESS by typing in one line of command. MESS can be used offline and even in your office computer. It helps you manage and organise your tasks and so as your time.

Want to use MESS immediately? Let's get started!
<!-- @@author -->
## Quick Start

0. Ensure you have Java version `1.8.0_60` or later installed in your Computer.<br>
Expand All @@ -14,7 +36,7 @@
1. Download the latest `MESS.jar` from the [releases](../../../releases) tab.
2. Copy the file to the folder you want to use as the home folder for your to-do list.
3. Double-click the file to start the app. The GUI should appear in a few seconds.
<img src="images/MESS_003.png" width="600"><br>
<img src="images/MESS.PNG" width="600"><br>

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.
Expand All @@ -29,11 +51,12 @@
* **`update`**`1 name presentation ends tomorrow` : updates first task on the list to presentation having a deadline tomorrow while the number '1' is the index of task on the list
* **`undo`** : undo previous one action
* **`pin`**`1` : pin the first task in the list
* **'change-to'**`data/taskmanager.xml`: change the storage location
* **`unpin`**`1` : unpin the pinned first task in the list
* **`change-to`**`data/taskmanager.xml`: change the storage location
* **`exit`** :exit the program
6. Refer to the [Features](#features) section below for details of each command.<br>

7. Our UI contains different parts. The following picture introduce the UI:
<img src="images/GuidedPictureForUser.png" width="600"><br>

## Features

Expand All @@ -42,7 +65,7 @@
* The order of parameters is fixed.
* Words in `UPPER_CASE` are the parameters.
* Words in `SQUARE_BRACKET` are optional.
<!--@@author A0144939R -->
<!-- @@author A0144939R -->

#### Adding a task or event: `add`
Adds a task to the to-do list<br>
Expand All @@ -53,7 +76,7 @@ Format: `add TASK_NAME [starts START_DATETIME ends CLOSE_DATETIME tag TAG recurs
* `TASK_NAME` need not be unique.
* If there is no argument, the task will become floating.
* `START_DATE` refer to the starting date and time of an event. For a task, the timestamp will be automatically saved as start date and time when the task is created. User can input start date and time for events.
* `TAG` is for users to write tags for different tasks. Mulitple tags are available by typing `tag TAG tag TAG`.
* `TAG` is for users to write tags for different tasks. Multiple tags are available by typing `tag TAG tag TAG`.
* `NUMBER_OF_RECURRING TASK` is for users to create weekly recurring task. For example, when NUMBER_OF_WEEKLY_RECURRING_TASK is 1 which means one more tasks will be created with the openTime and endTime one weekly later.

Examples:
Expand All @@ -79,51 +102,82 @@ Examples:
* `alias add +` <br> Aliases the add command to the symbol +
* `alias alias q`<br> Aliases the alias command to the symbol q

<!--@@author -->
<!-- @@author -->

#### Deleting a task : `delete`
Deletes a specific task by task name or index from the to-do list.<br>
Format: `delete TASK_NAME` or `delete INDEX`
Deletes a specific task by task index from the to-do list.<br>
Format: `delete INDEX`

> * INDEX refers to the number appears on the list in front the task name.
<img src="images/IndexPicture.png" width="600"><br>

Examples:
* `delete meeting`<br>
Deletes `meeting` task.
* `delete 1`<br>
Deletes the first task in the to-do list.

<!-- @@author A0144939R-->
#### Update entries : `update`
Update a specific task.<br>
Format: `update INDEX [name TASKNAME starts STARTDATETIME ends ENDDATETIME tag TAG remove-tag TO_REMOVE_TAG]`

> * INDEX refers to the number appears on the list in front the task name.
> * The task name is optional, but needs to be preceded by name
> * The TAG here will be added to the referred task and the original tag remains. If you want to delete a tag, use `remove-tag TO_REMOVE_TAG` to delete tag by name.
> * TO_REMOVE_TAG refers to the tag (or tags) that you want to be removed by typing the tags' name that you want to delete.
> * You can choose what to update. It depends on you whether you want to update only one information or update multiple information.
Examples:
* `update 2 name shopping ends 9pm`<br>
update the task name of the second task on the list to shopping and the start time to 3/10/2016 9 p.m.

* `update 1 tag cs2103`<br>
add the tag of the first task on to-do list to cs2103

* `update 3 ends three hours later` <br>
update the task name of the third task on the list to a deadline three hours after you type this command

* `update 2 tag family remove-tag friends` <br>
add a tag family to the second task and remove the tag named friends

<!-- @@author -->

<!-- @@author A0153467Y-->
#### Marking a task as completed: `complete`
Marks a specific task by index from the to-do list.<br>
FormatL `complete INDEX`
Format: `complete INDEX`

> * INDEX refers to the number appears on the list in front the task name.
<img src="images/CompletedTaskImage.png" width="600"><br>

Example:
* `complete 2`<br>
Marks the second task on the list as completed.

#### Unarking a completed task as not completed: `uncomplete`
#### Unmarking a completed task as not completed: `uncomplete`
Unmarks a completed specific task as not completed by index from the to-do list.<br>
FormatL `uncomplete INDEX`
Format: `uncomplete INDEX`

> * INDEX refers to the number appears on the list in front the task name.
Example:
* `uncomplete 2`<br>
Unmarks the completed second task on the list as not completed.

#### Pin: `pin`
#### Pin a task as important: `pin`
Pin an important task.<br>
Format: `pin INDEX`

> * INDEX refers to the number appears on the list in front the task name.
<img src="images/PinnedTaskImage.png" width="600"><br>

Example:
* `pin 1`<br>
pin the first task to show that it is an important task.

#### Unpin: `unpin`
#### Unpin a pinned task: `unpin`
Unpin a previously pinned task.<br>
Format: `unpin INDEX`

Expand All @@ -133,25 +187,27 @@ Example:
* `unpin 1`<br>
unpin the pinned and first task on the list.
<!-- @@author -->
#### Listing all persons : `list`

#### Listing all tasks : `list`
Shows a list of tasks and events in the todo list.<br>
Format: `list`

#### Finding all tasks and events containing keyword in their name: `find`
Finds tasks which have names containing any of the given keywords.<br>
Format: `find KEYWORD` or `find t/TAG`
Finds tasks which have names containing any of the given keywords including substring.<br>
Format: `find KEYWORD`

> * The search is case insensitive. e.g `meeting` will match `Meeting`
> * Substring is able to be searched. e.g. `mee` will match `meeting`
> * The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans`
> * Only task name is searched.
> * Tasks matching at least one keyword will be returned (i.e. `OR` search).
e.g. `Hans` will match `Hans Bo`

Examples:
* `find meeting`<br>
Returns tasks having name `meeting`
* `find tag cs2103`<br>
Returns tasks having tag `cs2103`
Returns tasks having name or substring `meeting`
* `find cs2103`<br>
Returns tasks having name or substring `cs2103`

<!-- @@author A0141052Y -->
#### Activate real time search: `searchbox`
Expand All @@ -163,50 +219,18 @@ Format: `searchbox`
<!-- @@author -->


<!-- @@author A0144939R-->


#### Update entries : `update`
Update a specific task.<br>
Format: `update INDEX [name TASKNAME starts STARTDATETIME ends ENDDATETIME tag TAG remove-tag TO_REMOVE_TAG]`

> * INDEX refers to the number appears on the list in front the task name.
> * THE task name is optional, but needs to be preceeded by name
> * The TAG here will be added to the referred task and the orginial tag remains. If you want to delete a tag, use `remove-tag TO_REMOVE_TAG` to delete tag by name.
> * TO_REMOVE_TAG refers to the tag (or tags) that you want to be removed by typing the tags' name that you want to delete.
> * You can choose what to update. It depends on you whether you want to update only one information or update multiple information.
Examples:
* `update 2 name shopping ends 9pm`<br>
update the task name of the second task on the list to shopping and the start time to 3/10/2016 9 p.m.

* `update 1 tag cs2103`<br>
add the tag of the first task on to-do list to cs2103

* `update 3 ends three hours later` <br>
update the task name of the third task on the list to a deadline three hours after you type this command

* `update 2 tag family remove-tag friends` <br>
add a tag family to the second task and remove the tag named friends

<!-- @@author -->

<!-- @@author A0153467Y-->
#### Undo action : `undo`
Undo the previous action.<br>
Format: `undo`

> * Will only undo `add`, `delete` and `update` actions.
<!-- @@author -->
#### Viewing help : `help`
Show the help menu. Format: `help`
> Help is also shown if you enter an incorrect command e.g. `123abc`
#### Exiting the program : `exit`
Exits the program.<br>
Format: `exit`

#### Saving the data
To-do list data are saved in the hard disk automatically after any command that changes the data.<br>
There is no need to save manually.
Expand All @@ -216,10 +240,15 @@ There is no need to save manually.
#### Change storage location : `change-to`
Shows a list of tasks and events in the todo list.<br>
Format: `change-to NEWFILEPATH`
Example: 'change-to data/taskmanager.xml'
Example:
* `change-to data/taskmanager.xml`

<!-- @@author -->
#### Exiting the program : `exit`
Exits the program.<br>
Format: `exit`

<!-- @@author A0153467Y -->
## FAQ
**Q**: Can I add event which have a start date and time to my to-do list ?<br>

Expand All @@ -229,26 +258,32 @@ Example: 'change-to data/taskmanager.xml'

**A**: Yes, you can still add your task. You can create a floating task by only type in command `add TASK_NAME` if you don't know the deadline of your task.

> <img src="images/MESS_004.png" width="600"><br>
<img src="images/MESS_004.png" width="600"><br>

In this example, you can see shopping is a floating task without a start time and end time.

**Q**: What can I do if I forget those commands?<br>

**A**: You can use the help command or click help tab on the top which will give you a list of command summary. Even if you type the wrong command format, MESS will show you the correct command hints.

<!-- @@author -->

In this example, you can see shopping is a floating task without a start time and deadline.

## Command Summary

Command | Format
-------- | :--------
Add | `add TASK_NAME [starts START_DATE_TIME ends CLOSE_DATE_TIME tag TAG]`
Alias | `alias add a`
Delete | `delete TASK_NAME` or `delete INDEX`
Delete |`delete INDEX`
Complete | `complete INDEX`
Uncomplete | `uncomplete INDEX`
List | `list`
Find | `find KEYWORD` or `find t/TAG`
Find | `find KEYWORD`
Update | `update INDEX [name NAME starts START_DATE_TIME ends CLOSE_DATE_TIME tag TAG remove-tag TAG]`
Undo | `undo`
Pin | `pin`
Unpin | `unpin`
Pin | `pin INDEX`
Unpin | `unpin INDEX`
Live Search | `searchbox`
Change Storage | `change-to`
Change Storage | `change-to NEW_PATH`
Help | `help`
Exit | `exit`
Binary file added docs/images/CompletedTaskImage.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/GuidedPictureForUser.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/IndexPicture.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/MESS.PNG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/MESS_003.png
Binary file not shown.
Binary file added docs/images/PinnedTaskImage.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 90a1bea

Please sign in to comment.