ChadBot is a chatbot named Chad designed to help you manage your tasks.
todo {task description}
like todo wash shirts
.You can add to-do tasks, deadline tasks which are tasks that must be done by a deadline, and event tasks which are tasks that occur at a certain point in time.
You can see your tasks by listing them all out, or by finding tasks with matching keywords.
Once finished with your tasks, you can mark them as done.
The UI adjusts accordingly when the app window is resized.
Even after exiting, the data of all the tasks is automatically saved. This is loaded once the app is started again.
Commands are described using command arguments which are in turn described with a command format using the notation
as_is_argument {replaceable argument}
where as_is_argument
indicates an as-is command argument that is to be typed as-is, and
where {replaceable argument}
indicates a replaceable command argument that is to be replaced with a user-specified
argument. Usually the text within the braces of a replaceable argument describes what should be specified there.
For example,
deadline {task description} /by {deadline in yyyy/M/d HHmm format (24 hours)}
indicates that
deadline
and /by
should be typed out as-is, while
{task description}
should be replaced by a user-specified task description, and
{deadline in yyyy/M/d HHmm format (24 hours)}
should be replaced by a user-specified deadline in that date-time
format.
todo
- Add to-do taskAdds a to-do task to the tasks list. A to-do task is a task that just has to be done and only has a task description.
Format:
todo {task description}
Example of usage:
todo read textbook
Expected outcome:
Chad will show you what task was just added as well as the number of tasks that are now currently in the tasks list after adding the task.
[T]
indicates that the task is a to-do task.
[ ]
indicates that it is not marked as done.
Got it. I've added this task:
[T][ ] read textbook
Now you have 4 tasks in the list.
deadline
- Add deadline taskAdds a deadline task to the tasks list. A deadline task is a task with a deadline.
Format:
deadline {task description} /by {deadline in yyyy/M/d HHmm format (24 hours)}
Example of usage:
deadline apply for student exchange /by 2021/10/5 1730
Expected outcome:
Chad will show you what task was just added as well as the number of tasks that are now currently in the tasks list after adding the task.
[D]
indicates that the task is a deadline task.
[ ]
indicates that it is not marked as done.
(by: 17:30 October 5 2021)
indicates that the task is to be done by the deadline of 5 October 2021 17:30.
Got it. I've added this task:
[D][ ] apply for student exchange (by: 17:30 October 5 2021)
Now you have 4 tasks in the list.
event
- Add event taskAdds an event task to the tasks list. An event task is a task that occurs at a specific point in time.
Format:
event {task description} /at {time in yyyy/M/d HHmm format (24 hours)}
Example of usage:
event project meeting /at 2021/9/18 2215
Expected outcome:
Chad will show you what task was just added as well as the number of tasks that are now currently in the tasks list after adding the task.
[E]
indicates that the task is an event task.
[ ]
indicates that it is not marked as done.
(at: 22:15 September 18 2021)
indicates that the task will be done at 18 September 2021 22:15.
Got it. I've added this task:
[E][ ] project meeting (at: 22:15 September 18 2021)
Now you have 4 tasks in the list.
list
- List tasksLists out all the tasks in the tasks list.
Format:
list
Example of usage:
list
Expected outcome:
Chad will show you all the tasks in the tasks list.
Here are the tasks in your list:
1.[T][X] read book
2.[D][ ] return book (by: 17:00 June 6 2022)
3.[E][ ] graduation (at: 23:59 June 30 2024)
find
- Find tasksFinds any tasks from the tasks list that match a query.
Format:
find {query}
Example of usage:
find book
Expected outcome:
Chad will show you any tasks from the tasks list that match the query. The numbers do not enumerate the results list but
instead correspond to the actual task numbers on the tasks list. This provides a reference to be used for other commands
such as done
or delete
which require the task number as an argument.
Here are the 3 matching tasks in your list:
1.[T][X] read book
2.[D][ ] return book (by: 17:00 June 6 2022)
4.[T][ ] read textbook
done
- Mark task doneMarks a task as done.
Format:
done {tasks list task number of the task to be marked as done}
Example of usage:
done 4
Expected outcome:
Chad will show what task was just marked as done.
[X]
indicates the task is marked as done.
Nice! I've marked this task as done:
[T][X] read textbook
delete
- Delete taskDeletes a task from the tasks list.
Format:
delete {tasks list task number of the task to be deleted}
Example of usage:
delete 4
Expected outcome:
Chad will show what task was just deleted and the current number of tasks remaining in the tasks list after deleting the task.
Noted. I've removed this task:
[T][ ] read textbook
Now you have 3 tasks in the list.
undo
- UndoUndoes an undo-able command. An undo-able command is a command that can be undone. The undo-able commands are:
todo
event
deadline
done
delete
Format:
undo
Example of usage:
undo
Expected outcome:
Chad will show what command was just undone.
Okay, I have undone the following command:
done 4
bye
- ExitExits the app.
Format:
bye
Example of usage:
bye
Expected outcome:
Chad will say goodbye before the app exits.
Goodbye. Hope we see each other again soon.
The data is stored in the tasks.txt
file which is located in the data
folder which is in the same folder as the JAR
file.
tasks.txt
file or the data
folder for my data to be saved?There is no need to create the tasks.txt
file or the data
folder; these are created automatically for you.
ChadBot is a greenfield individual project for CS2103T Software Engineering, a module that was a part of the Computer Science curriculum of the National University of Singapore (NUS) for those who matriculated in the NUS Academic Year (AY) 19/20. ChadBot was done in the AY 21/22 Semester 1 version of CS2103T Software Engineering. ChadBot was written in Java, using the JavaFX library for its GUI, and JUnit for its unit tests. ChadBot is based off of Project Duke. ChadBot’s GitHub repository can be found here.
ChadBot was programmed by Jay Aljelo Saez Ting.