A ChatBot to Track Tasks

Duke is a personal chat-bot to help you keep track of your tasks, events, or deadlines. It is optimized for keyboard users, but has a GUI for the looks as well.
java -jar duke.jar in a terminal to start Duke. A data directory will be created in the location you execute the command from.
help to get started!todo DESCRIPTION Adds a task with the given DESCRIPTION.
Example of usage:
todo Return CLRS book to the library.
> I've added the following task:
> [📝][ ] Return CLRS book to the library.
deadline DESCRIPTION / DATE TIME Adds a task with the given DESCRIPTION and a deadline specified by DATE and TIME.
Date format
dd-mm-yyyy.- may be replaced by /.Time format:
hhmm.hh:mm.Example of usage:
deadline CS2103T iP / 16-09-2022 2359
> I've added the following task:
> [⏰][ ] CS2103T iP (by: 16 Sep 2022 11:59 PM)
event DESCRIPTION / DATE TIME Adds an event with the given DESCRIPTION and a time specified by DATE and TIME.
Date and time format is the same as the deadline command.
Example of usage:
event CS2103T lecture / 16-09-2022 1600
> I've added the following task:
> [📅][ ] CS2103T lecture (at: 16 Sep 2022 4:00 PM)
list Lists all tasks in the task list.
Example of usage:
list
> List of tasks:
> 1. [📝][ ] Return CLRS book to the library.
> 2. [⏰][ ] CS2103T iP (by: 16 Sep 2022 11:59 PM)
> 3. [📅][ ] CS2103T lecture (at: 16 Sep 2022 4:00 PM)
check INDEX Marks the task at the given INDEX as done.
You may want to use the list command to find the index of the task you want to mark as done.
Example of usage:
check 1
> I've updated the following task:
> [📝][✔] Return CLRS book to the library.
uncheck INDEX Marks the task at the given INDEX as not done.
Example of usage:
uncheck 1
> I've updated the following task:
> [📝][ ] Return CLRS book to the library.
delete INDEX Deletes the task at the given INDEX.
Example of usage:
delete 1
> I've deleted the following task:
> [📝][ ] Return CLRS book to the library.
list
> List of tasks:
> 1. [⏰][ ] CS2103T iP (by: 16 Sep 2022 11:59 PM)
> 2. [📅][ ] CS2103T lecture (at: 16 Sep 2022 4:00 PM)
find KEYWORD Finds all tasks that contain the given KEYWORD.
The search is case-insensitive.
Example of usage:
find cS
> Task containing the keyword "cS":
> 1. [⏰][ ] CS2103T iP (by: 16 Sep 2022 11:59 PM)
> 2. [📅][ ] CS2103T lecture (at: 16 Sep 2022 4:00 PM)
help Shows a help message with a list of commands and their usage.
exit Exits the program with a goodbye message.
All the data is saved in the file ./data/data.txt, relative to the directory you execute the jar from.
You can modify task list by directly editing this file. Each line of the file describes one task.
The format is the following:
TASK SYMBOL | IS DONE? | DESCRIPTION [| ARGS...]
TASK SYMBOL is T for todo task, D for deadline, and E for event tasks.IS DONE? is 0 or 1 depending whether the task is due or not.DESCRIPTION is the description of the task.ARGS... take in a date time for deadline and events. The date-time must be in the
format h-M-yy HHmm. Specifically, day and month number should not have leading zeros, and year must have
2 digits.Example data file:
T | 0 | Return CLRS book to the library.
D | 0 | CS2103T iP. | 16-9-22 2359
E | 0 | CS2103T lecture. | 16-9-22 1800
However, do note that if the data file is corrupted, Duke will not startup. It will show you a warning about the corruption and you can choose to keep the file and investigate, or start with a new file.