Since: Aug 2018 Licence: MIT

1. Introduction

Task Book is a desktop task manager application that is designed for students to manage their daily tasks and ultimately, lead a more productive life. More importantly, Task Book is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Task Book can get your management of tasks done faster than traditional paper notebooks or a mobile application. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest taskbook.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Address Book.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • list : lists all tasks for that day

    • exit : exits the app

  7. Refer to Section 3, “Features” for details of each command.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add t/TASK, TASK is a parameter which can be used as add t/Do homework.

3.2. Selecting a date: select

Chooses a particular date to be set as the deadline for tasks to be added.
Format: select dd/DAY mm/MONTH [yyyy/YEAR] or select DAY/MONTH[/YEAR]

A valid year must be between 2018 and 9999 (inclusive)

Examples:

  • select dd/1 mm/1

  • select 1/1

  • select dd/1 mm/1 yyyy/2018

  • select 1/1/2018

A. Using select command

How it should look like:

Step 1. Entering select 1/1/2018 will select a date as the deadline for tasks to be added. Type the command into the command box as shown below.

BeforeSelectDeadlineGUI
Figure 1. GUI before using the select command to select a date

Step 2. If you have chosen a valid date, you should be able to see a success message as shown below, highlighted with a red box.

AfterSelectDeadlineGUI
Figure 2. GUI after using the select command to select a date
You have successfully selected a date. Nice!

B. Using Date Picker

How it should look like:

Step 1. Alternatively, to make things even simpler, you can choose to use the Date Picker as highlighted below. To use the Date Picker, click on the calender icon.

DatePickerWhereToPress
Figure 3. Calander icon on Date Picker

Step 3. After clicking on the icon, you should be able to see a calendar. Use the left and right arrows to navigate to different months and years.

DatePickerLeftRightArrows
Figure 4. Left and right arrow keys in Date Picker

Step 5. Click on the date you want to select.

DatePickerSelectDate
Figure 5. GUI after using Date Picker to select a date

Step 6. A success message will be shown (refer to Figure 2).

You have successfully selected a date. Good job!

3.3. Adding a task: add

Adds a task with its title, description, priority level (low, medium, high) and the number of hours (positive integers only) expected to complete this task, to the Task Book

Module code is an optional input.

Tasks with similar deadline, title and module code are considered duplicate. If a duplicate task is added, Task Book will give an error message: This task already exists in the task book

However, if the original task has no module code, you are allowed to add a similar task with a new module code.

Format: add t/TITLE d/DESCRIPTION p/PRIORITY h/HOURS [c/MODULE_CODE]

Examples:

  • add t/Complete 2113 Tutorial d/with code done p/high h/1

  • add t/Complete 2113 Tutorial d/with code done p/high h/1 c/CS2113

3.4. Complete a task: complete

Complete a task in the Task Book by providing its index and the actual number of hours taken to complete the task
Format: complete i/INDEX h/HOURS_TO_COMPLETE

You are not allowed to complete a task in less than 1 hour!

If it takes more than 1 day to complete the task, it is recommended to set milestones for it.

Examples:

  • complete i/1 h/2

3.5. Delete a task : delete

Removes a task from the task book Format: delete [INDEX]

Examples:

  • delete 1

3.6. Sort the taskbook: sort

Need to view the tasks in a specific order you prefer? For example, you would like the tasks to be displayed from the highest priority, so you can focus your attention on the most importan task at hand? You can sort the tasks based on their priority!

  • Tasks will be sorted in lexicographical order for title and module sorting methods.

  • Tasks will be sorted from higher to lower priority for priority sorting method.

  • Tasks will be sorted in ascending order of deadlines for deadline sorting method.

  • An empty TaskBook will accept the sort command.

  • Sort command uses stable sorting method

  • Two Tasks with equal values will appear in the same order in sorted output as they appear in the input array to be sorted.

Sort the tasks in the task book via priority, deadline, module, or title
Format: sort s/METHOD

Examples:

  • sort s/deadlines

Before: "sort s/deadlines" is entered

SortTaskCommand before

After: The list of tasks is sorted based on ascending order of the deadline

SortTaskCommand after

3.7. Deferring a deadline: defer

Need a way to quickly extend your deadline by a few days or up to a month? You can easily defer the deadline of your task and the deadline will be automatically adjusted.

Defers a deadline for a task
Format: defer i/INDEX dd/DAY

  • Deadline of the selected task will be automatically updated by the number of days deferred from the deadline

  • Selected task must exist in the TaskBook

  • A task cannot be deferred by the number of days if it will result in two similar tasks with the same deadlines.

Examples:

  • defer i/1 dd/04

Before: "defer i/1 dd/1" is entered

DeferDeadlineCommand before

After: deadline for the first task is deferred by 1 day

DeferDeadlineCommand after

3.8. Editing a task: edit

Edits one or more fields in a selected task.
Format: edit i/INDEX [t/TITLE] [d/DESCRIPTION] [c/MODULE CODE] [p/PRIORITY] [h/HOURS]

  • Index must be present and must be a non-zero positive integer

  • Index selected must exist in the Task Display Panel

  • At least one optional field to be edited must be provided

Examples:

  • edit i/1 t/Complete CS2113 tutorial

  • edit i/1 d/Edit editTask to fit TaskBook h/4

  • edit i/1 t/Complete CS2271 tutorial d/Edit editTask to fit TaskBook c/CS2113 p/high h/4

How it should look like:

  • Entering the edit i/1 t/Complete CS2113 tutorial command will edit the title of the first task on the Task Display Panel to 'Complete CS2113 tutorial'. Type the command into the Command Box as shown below.

    As you can see, the current title of the first task (highlighted with a red box) is 'COMPLETE CODE REFACTORING'.
EditCommandBefore
Figure 6. GUI before using edit command to change the title
  • After entering a valid command, you should see that the title of the first task has been edited to 'Complete CS2113 tutorial' and also a success message as highlighted below.

EditCommandAfter
Figure 7. GUI after using edit command to change the title
You have successfully edited the title of the task. Well done!

3.9. Adding a milestone: add_milestone

Have a task that requires a lot of things to be done? Break it up into smaller, more manageable subtasks called milestones!

Adds a milestone to an existing task in the task book
Format: add_milestone i/INDEX m/MILESTONE DESCRIPTION r/RANK

  • Milestone description cannot be longer than 40 characters!

  • Index must be a non-zero, positive integer not greater than the number of tasks currently available in the Task Book!

Examples:

  • add_milestone i/1 m/Q1 - 3 r/1

  • add_milestone i/1 m/Q4 - 6 r/2

  • add_milestone i/1 m/Q7 & 8 r/3

  • add_milestone i/1 m/Diagrams r/4

  • add_milestone i/1 m/References r/5

Before

AddMilestoneCommand before

After

AddMilestoneCommand after

Rank is the level of importance assigned to that particular milestone by the user. Milestones are automatically sorted by rank with the most important one at the top (Rank 1).

3.10. Adding a tag: add_tag

Want a way to better mark your tasks, or to quickly tell what a task is about? Adding tags to your tasks will make it easier for you to identify the tasks!

Add a tag to a task
Format: add_tag i/INDEX t/TAG

  • Tag names are all in lower case.

  • Duplicate tags are ignored and the tag list for the selected task will remain unchanged

  • Tag names has to be alphanumeric

  • Selected task must exist in the TaskBook

Examples:

  • add_tag i/1 t/homework

Before: "add_tag i/1 t/homework" is entered

AddTagCommand before

After: The tag "homework" is added to the first task

AddTagCommand after

3.11. Removing a tag: remove_tag

Found the tags added previously to your tasks not suitable? You can remove the tags easily and conveniently!

Removes a tag from a task
Format: remove_tag i/INDEX t/TAG

  • Selected tag to be removed from the task is case-insensitive.

  • Tag names has to be alphanumeric

  • Selected task must exist in the TaskBook

Examples:

  • remove_tag i/1 t/homework

Before: "remove_tag i/1 t/homework" is entered

RemoveTagCommand before

After: The tag "homework" is removed from the first task

RemoveTagCommand after

3.12. Selecting a tag: select_tag

Need to view your tasks with the specific tag? For example, viewing all the tasks which are tagged with "homework"? You can easily do it via selecting the tag you want!

Show a list of tasks with the selected tag
Format: select_tag t/TAG

  • Selected tag is case-insensitive.

  • Tag names has to be alphanumeric

Examples:

  • select_tag t/homework

Before: "select_tag t/homework" is entered

SelectTagCommand before

After: A list of tasks with tag "homework" is shown

SelectTagCommand after

3.13. Tracking productivity : track

Tracks your productivity for all completed tasks, by returning an average productivity (in percentage).
Format: track

3.14. Listing all existing Tasks : list

Lists all the existing tasks in task book.
Format: list

3.15. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

3.16. Undoing previous command : undo

Restores the address book to the state before the previous undoable command was executed.
Format: undo

Undoable commands: those commands that modify the address book’s content (add, complete, sort, add_milestone, defer, delete, select and clear).

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • track
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

3.17. Redoing the previously undone command : redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

3.18. Clearing all entries : clear

Clears all entries from the address book.
Format: clear

3.19. Exiting the program : exit

Exits the program.
Format: exit

3.20. Saving the data

Address book data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.21. Real time synchronisation with calendar [coming in v2.0]

TaskBook will be able to synchronise with the calendar in real time so that functionalities that require real time date tracking can be introduced.

3.22. Setting reminders [coming in v2.0]

Users will be able to set reminders that can be triggered a few days before the actual deadline to remind them that a task has to be completed.

3.23. Checking off completed milestones [coming in v2.0]

Users will soon be able to strike off (not delete!) their milestones when they have completed them for easier tracking of what they have or have not done!

3.24. Lock Task Book [coming in v2.0]

Task Book will be password-protected to ward off intruders.
Format: lock

3.25. Unlock Task Book [coming in v2.0]

Task Book can be unlocked so that authenticated students can log into the Task Book to access sensitive information.
Format: unlock PASSWORD

4. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.

Q: Why do I get this error when I tried to add milestones with a rank of "0" or "-1"?

FAQ invalidRank

A: You can only enter non-zero, positive integers for rank!

Q: Why do I get this error when I tried to add a milestone?

FAQ invalidIndex

A: You can only add milestones to existing tasks! In this case, there is only 1 task entered into the Task Book, hence attempting to add a milestone to index 2 of the Task Book will result in an error!

5. Command Summary

  • Help : help

  • Select : select dd/DAY mm/MONTH yyyy/YEAR or select DAY/MONTH/YEAR
    e.g. select dd/1 mm/1 yyyy/2018

  • Add task : add c/MODULE_CODE t/ACTION d/DESCRIPTION p/PRIORITY_LEVEL h/HOURS_TO_COMPLETE
    e.g. add c/CS2113 t/Complete 2113 Tutorial d/with code done p/high h/2

  • Complete : complete i/INDEX h/HOURS_COMPLETED
    e.g. complete i/1 h/2

  • Delete : delete INDEX e.g. delete 1

  • Sort : sort s/METHOD
    e.g. sort s/priority

  • Defer deadline : defer i/INDEX dd/DAY mm/MONTH yyyy/YEAR
    e.g. defer i/1 dd/01 mm/01 yyyy/2018

  • Edit : edit i/INDEX [t/TITLE] [d/DESCRIPTION] [c/MODULE CODE] [p/PRIORITY] [h/HOURS]
    e.g. edit i/1 t/Complete CS2271 tutorial d/Edit editTask to fit TaskBook c/CS2113 p/high h/4

  • Add milestone : add_milestone i/INDEX m/MILESTONE DESCRIPTION r/RANK
    e.g. add_milestone i/1 m/Q1 - 3 r/1

  • Track : track

  • List : list

  • History : history

  • Undo : undo

  • Redo : redo

  • Clear : clear

  • Exit : exit