Bhaymax is a chatbot app that is designed to manage tasks {i.e., to-do items, deadlines and events}.
.jar
) file. You can download the latest version from this URL..jar
file (downloaded in step 2.) to the folder you want to use as the home folder for the application.java -jar bhaymax.java
Greets the chatbot. (And the chatbot greets you back!)
Format: hello
or hi
todo
Adds a to-do item to be tracked.
Format: todo {description}
Explanation of parameters:
{description}
: (Compulsory) A brief description about the
to-do item to be created.Examples:
todo get notes from friend
todo buy groceries for mother
todo study
deadline
Adds a deadline item to be tracked.
Format: deadline {description} /by {due-by date}
Explanation of parameters:
{description}
: (Compulsory) A brief description about the
deadline item to be created.{due-by date}
: (Compulsory) The date and time at which the
deadline is due by, in the format dd/MM/yyyy HH:mm
{description}
after deadline
, {description}
and {due-by
date}
separated by ` /by `)Examples:
deadline submit report /by 20/03/2025 23:59
deadline finish essay /by 05/01/2025 13:00
event
Adds an event to be tracked.
Format: event {description} /from {start date} /to {end date}
Explanation of parameters:
{description}
: (Compulsory) A brief description about the
event to be created.{start date}
: (Compulsory) The date and time at which the
event starts, in the format dd/MM/yyyy HH:mm
{end date}
: (Compulsory) The date and time at which the
event end, in the format dd/MM/yyyy HH:mm
{description}
after event
, {description}
and {start date}
separated by ` /from `, etc.)Examples:
event mid-terms /from 05/03/2025 12:00 /to 05/03/2025
14:00
event movie screening /from 22/02/2025 13:00 /to
22/02/2025 15:00
list
Shows a list of all to-do items, deadlines and events created.
Format: list
filter
Filters deadlines and events by date.
Format: search {filter_option} {date / date and time}
Explanation of parameters:
{filter_option}
: One of 6 values - /before
, /on
,
/after
, /before_time
, /on_time
, /after_time
_time
if you also wish to
specify the time to filter by{date / date and time}
: The date or the date and time to
filter by, in the format dd/MM/yyyy
and dd/MM/yyyy HH:mm
respectively
{filter_option}
provided contains the suffix
_time
, then a time is also required for the filterExamples:
filter /before 02/03/2025
filter /on 02/03/2025
filter /after 02/03/2025
filter /before_time 02/03/2025 23:59
filter /on_time 02/03/2025
filter /after_time 02/03/2025 23:59
Note that for the last three examples the
{filter_option}
is suffixed with_time
as we are specifying the time (alongside the date) to filter the tasks by.
search
Searches for a task that has a description matching the provided search term.
Format: search {keyword or phrase}
Explanation of parameters:
{keyword or phrase}
: (Compulsory) A keyword or a phrase to
search forExamples:
search exam
search buy
search movie
mark
Marks a task (i.e., a to-do item, deadline or event) as completed.
Format: mark {index of task}
Explanation of parameters:
{index of task}
: (Compulsory) The index number of the task to be
marked as completed. This number can be retrieved using the output
of list
.Examples:
mark 11
mark 1
mark 23
unmark
Marks a task (i.e., a to-do item, deadline or event) as incomplete.
Format: unmark {index of task}
Explanation of parameters:
{index of task}
: (Compulsory) The index number of the task to be
marked as incomplete. This number can be retrieved using the output
of list
.Examples:
unmark 11
unmark 1
unmark 23
delete
Removes a task (i.e., a to-do item, deadline or event) from getting tracked.
Format: delete {index of task}
Explanation of parameters:
{index of task}
: (Compulsory) The index number of the task to be
deleted. This number can be retrieved using the output
of list
.Examples:
delete 11
delete 1
delete 23
clear
Clears the chat (box) area.
Format: clear
bye
or exit
Exits the program.
Format: bye
or exit
The data file is automatically created when a task is added to the program.
It is saved at [JAR file location]/data/tasks.txt
.
Tasks are stored in the following format:
T | {task completion status} | {task description}
{task completion status}
: Indicates whether the task has
been marked as completed. It can take one of two values:
1
- Indicates the task has been marked as completed0
- Indicates the task has been marked as incomplete{task description}
: A brief description about the
to-do item.D | {task completion status} | {task description} | {due-by date}
{task completion status}
: Indicates whether the task has
been marked as completed. It can take one of two values:
1
- Indicates the task has been marked as completed0
- Indicates the task has been marked as incomplete{task description}
: A brief description about the
deadline.{due-by date}
: The date and time the deadline item is due
by. Specified in the format dd/MM/yyyy HH:mm
.E | {task completion status} | {task description} | {start date} | {end date}
{task completion status}
: Indicates whether the task has
been marked as completed. It can take one of two values:
1
- Indicates the task has been marked as completed0
- Indicates the task has been marked as incomplete{task description}
: A brief description about the
event.{start date}
: The date and time at which the event starts, in the format dd/MM/yyyy HH:mm
.{end date}
: The date and time at which the event ends, in the format dd/MM/yyyy HH:mm
.