Duke is a light-weight task organiser, helping users to keep track of their deadlines, events, and daily tasks. In addition, all tasks that are managed by Duke are saved in a portable format so that users can easily upload or transfer their tasks to any desktop platform!
Each command begins with a keyword, followed by a number of compulsory parameters.
Words in UPPER_CASE are the required parameters for the command.
These parameters must be supplied by the user in order for the command to
execute successfully.
eg. in todo Wake up!, Wake up! is the DESCRIPTION parameter
of the todo command.
Parameters are CASE_SENSITIVE, and are not formatted during input processing.
DATE parameters must be supplied in the following format: yyyy-mm-dd.
eg. 2020-12-25 for 25 December 2020.
START_TIME and END_TIME are time parameters that must be
supplied in the following 24-hour format: HH:mm. eg. 08:30 for 8:30am.
Also, when a command has a START_TIME and END_TIME,
START_TIME must be before END_TIME.
All tasks types require a DESCRIPTION.
Descriptions are CASE_SENSITIVE, and will not be formatted.
Two tasks cannot have the same description if they belong to the same type of task.
deadline - Add a deadlineAdds a deadline to the task list.
A deadline is a task that has a completion date,
which must be specified after the /by keyword.
Format: deadline DESCRIPTION /by DATE
Example of usage:

In blue: Adding a todo with Buy Christmas presents as the DESCRIPTION, and
2020-12-24 as the DATE.
In red: A message confirming that the deadline was added successfully.
event - Add an eventAdds an event to the task list.
An event is a task that has a scheduled date and time interval,
which must be specified in that order after the /at keyword.
Format: event DESCRIPTION /at DATE START_TIME END_TIME
Example of usage:

In blue: Adding a todo with Christmas party as the DESCRIPTION,
2020-12-25 as the DATE,
09:00 as the START_TIME, and
15:00 as the END_TIME.
In red: A message confirming that the event was added successfully.
todo - Add a todoAdds a todo to the task list. A todo is a task that only has a description.
Format: todo DESCRIPTION
Example of usage:

In blue: Adding a todo with Practise piano as the DESCRIPTION.
In red: A message confirming that the todo was added successfully.
delete - Delete a taskRemoves a task from the task list by specifying their position in the current list.
To obtain the TASK_ID of a task, use the list command.
Format: delete TASK_ID
TASK_ID - the position number of the task in the current task list.Example of usage:

In blue: Deleting task number 1 in the list.
In red: A message confirming that the task deleted successfully.
done - Mark a task as doneMarks a task as done in the task list by specifying their position in the current list.
A tick will appear next to the task description to indicate that the task is done.
To obtain the TASK_ID of a task, use the list command.
Format: done TASK_ID
TASK_ID - the position number of the task in the current task list.Example of usage:

In blue: Marking task number 1 in the list as done.
In red: A message confirming that the task was successfully marked as done.
find - Find tasks by keywordSearches through the list of tasks, and displays all tasks that contain the exact keyword (or phrase) in their description. The keyword used to search is CASE_INSENSITVE, meaning that all the task descriptions and the keyword will be compared in LOWER_CASE.
Format: find KEYWORD
Example of usage:

In blue: Finding all tasks that have the keyword christmas.
In red: A message showing a list of tasks containing the CASE_INSENSITIVE keyword christmas.
list - Display the task listDisplays the list of tasks and orders them numerically. Tasks will be listed in the order that they were inserted into the list.
Format: list
Example of usage:

In blue: Asking for the list of tasks to be shown.
In red: A message showing the entire list of tasks, ordered numerically from earliest to latest addition.
bye - End the programStops the chat-bot from replying. The user can continue to input commands, but they will not be processed. Duke must be restarted in order to process more commands.
Format: bye
Example of usage:

In blue: Asking the bot to stop processing commands.
In red: A message confirming that the chat-bot stopped successfully.