Botling User Guide

Botling is a task management chatbot that helps you track your to-dos, deadlines, and events via simple yet effective text commands. All your tasks are automatically saved, and even sorted according to priority.
Table of Contents
Quick Start
-
Ensure you have
Java 17or above installed in your computer. - Download the latest
.jarfile here. -
Copy the file into your desired folder, and double-click on the file to run the application.
-
Alternatively, run
java -jar Botling.jarin your console to run the application. You should see a similar interface appear as shown above. -
Easily get started with Botling by typing
helpinto the chat!
All commands and their arguments will be shown. -
To get started, it is as easy as this:
todo chores. Botling will immediately add your task to its list! - For more details, refer to Features.
Features
Notes about the command format:
-
Words demarcated with
<>are parameters to be supplied by the user. - Words following
/(e.g./byindeadline) are commands. If the user input contains multiple commands (e.g.deadline assignment 1 /by today /by tomorrow /by the day after, the first command (in this case/by) will be greedily chosen.
The remaining input:today /by tomorrow /by the day afterwill be used as the parameter.// Demonstration of parameter seperation. Task name: assignment 1 Deadline today /by tomorrow /by the day after -
Parameters must be provided in sequential order.
- Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be not be ignored.
Instead they will be unrecognized.
Help Command
help
Provides a quick reminder of all the commands implemented.

Bye Command
bye
Closes the application.
List Command
list
Lists all current tasks that is recorded by Botling.
Find Command
find <name>
Lists all recorded tasks that contains <name> within its task name.
This method is case-insensitive.
Mark / Unmark / Delete Commands
mark <X>, unmark <X>, delete <X>
These commands follow the same format, where only the index of the task needs to be specified.
Note that the application uses 1 based indexing, as provided by the list and the find commands.
To-do Command
todo <name>
A basic task labelled <name>, representing a to-do with no urgency.
Deadline Command
deadline <name> /by <deadline>
A deadline task labelled <name>, with the deadline at <deadline>.
For information on the date specification of <deadline>, refer to Date Specification.
Event Command
event <name> /from <start> /to <end>
An event labelled <name>, that starts from <start> till <end>.
For information on the date specification of <start> and <end>, refer to Date Specification.
Date Specification
Although deadline and event commands can take in date time formats, it is not compulsory.
Currently, the following date time formats are supported:
-
yy(yy)-MM-dd(e.g. 25-02-21) -
dd/MM/yy(yy)(e.g. 21/02/25) -
dd MMM yy(yy)(e.g. 21 Feb 25)
Notes:
- The
()is optional (i.e. you may use the last two digits of the year) -
ddandMMrefers to numerical digits, whereasMMMrefers to the short form name of the month (e.g.Jan,Feb, etc.). - The
HHmm(24-hour time format) is completely optional, and Botling will assume it to be0000by default. - Dates in the past are actually accepted.
However theeventstartdate must be before theenddate.
Sorting Tasks
By default, Botling comes with a basic sorting function to help you prioritize your tasks! The rules are as follows:
- For tasks with provided dates (according to date specifications:
- Those with the earliest end dates (the
<deadline>fordeadlinetasks and the<end>foreventtasks) will be prioritized first. -
eventtasks that do not have anenddate will then use either their time of creation (when user enters the task) of their<start>date as a proxy. -
eventtasks with the same<end>date will then be sorted by their<start>date.
- Those with the earliest end dates (the
- Then, tasks will be sorted according to their date of creation.
- Any remaining conflicts will be resolved via lexicographical ordering of their
<name>.
Data Storage
The data is located under ./data/history.txt.
This file can be ported between different applications to be used by Botling.
Known Issues

Due to the fact that JavaFX WebView objects are not recommended for this project due to its large size, making selectable and colorable text within the chatbot requires an overlay of a TextArea object onto a TextFlow object. Due to the fact that their proportions are innately different, the margins have to be hardcoded. Botling is optimized for 1920x1080 at 125% screen scale. Resolutions and scales differing from this are likely to cause the selected text to be misaligned from the displayed text. Thus, it is recommended that the user uses the select all option (as shown in the demo) to copy the text if required. This specific part of the project was with the help of the following sources:
- https://stackoverflow.com/questions/79395124/javafx-overlaying-textflow-with-textarea?noredirect=1#comment140023326_79395124
(P.S. If you have a more elegant solution, please feel free to contact me. Thank you!)
Image Sources
Images were obtained from the following links: