duke

Starter code for the Duke project

View on GitHub

User Guide

What is Duke?

Duke is a personal assistant chatbot that helps a person keep track of various things.

Features

1 - Adding of tasks

Keep track of various tasks by adding them to the task list in Duke.

2 - Can support up to 3 different types of tasks

Supports the adding of Todo, Deadline and Event tasks. For Deadline and Event tasks, Duke can help to keep track of the given due date or the event date and time respectively.

3 - Mark task as done

Allows the user to mark an existing task as done.

4 - Display the list of tasks

Display the full task list. Uses symbol [T], [D] and [E] respectively to differentiate between the Todo, Deadline and Event tasks. Also uses the (X) and (✓) respectively to show if the task is done or not.

5 - Delete a task

Deletes an existing task in the task list.

6 - Storing/Loading of tasks

Data on the task list is stored locally on the computer. Thus, information on the existing task list will not be lost when Duke terminates. This data will be loaded at the next execution of Duke.

7 - Find a task in the list using a keyword

Ability to find a particular task or a group of tasks in the task list using a keyword.

Usage

todo - Adds a Todo task

Adds a task of the Todo type and its task description to the task list.

Syntax: todo <task description>

Example of usage: todo read book

Expected outcome:

Got it. I've added this task:
[T][✘] read book
Now you have 11 tasks in the list.

deadline - Adds a Deadline task

Adds a task of the Deadline type with its task description and due date to the task list.

Syntax: deadline <task description> /by <date and time>

Example of usage: deadline return book /by Sunday 2359

Expected outcome:

Got it. I've added this task:
[D][✘] return book (by: Sunday 2359)
Now you have 12 tasks in the list.

event - Adds a Event task

Adds a task of the Event type with its task description and event date and time to the task list.

Syntax: event <task description> /at <date and time>

Example of usage: event project meeting /at Mon 2-4pm

Expected outcome:

Got it. I've added this task:
[E][✘] project meeting (at: Mon 2-4pm)
Now you have 13 tasks in the list.

done - Mark a task as done

Marks an existing task as done, i.e. changes the cross mark (X) to a check mark (✓).

Syntax: done <task number>

Example of usage: done 11

To get the task number of a task, use the function list(will be elaborated below)

Expected outcome:

Nice! I've marked this task as done:
[T][✓] read book

delete - Delete a task from the task list

Deletes a task and removes it from the task list. Immediately propagate the deletion to the local datafile stored on computer.

Syntax: delete <task number>

Example of usage: delete 8

To get the task number of a task, use the function list(will be elaborated below)

Expected outcome:

Noted. I've removed this task:
[E][✘] skype meeting (at: 26/2/2020 2-5pm)
Now you have 9 tasks in the list.

list - Display all the tasks in the task list

These symbols [T],[D] and [E] are used to differentiate between the todo, deadline and event tasks. Also uses the (X) and (✓) respectively to show if the task is done or not. The number beside each task is the task number (used for done and delete function).

Syntax: list

Expected outcome:

Here are the tasks in your list:
1. [D][✘] return book (by: June 6th)
2. [E][✓] project meeting (at: Aug 6th 2-4pm)
3. [T][✓] buy drinks
4. [D][✘] 2113 iP (by: monday)
5. [E][✘] watch movie (at: friday 4pm)

find - Find a task in the task list

Using a specified keyword, find all the tasks in the task lists that have this keyword in their task description.

Syntax: find <keyword>

Example of usage: find book

Expected outcome:

Here are the matching tasks in your list:
1. [D][✘] return book (by: June 6th)
2. [T][✓] read book