User Guide
Duke is an interactive desktop app used to keep track of tasks to be completed. It is optimized for use through a Command Line Interface (CLI) while providing a minimalistic and elegant Graphical User Interface (GUI). If you can type fast and wish to keep track of tasks this way, then this might be the app for you!
Quick Start
- Ensure you have Java 11 or above installed in your computer.
- Download “Duke.jar” from here.
- Copy the file to the desired location where you would normally access it.
- Double-click the file to start the app. The GUI will look similar to the image below. Upon using it for the first
time, a new folder named “data” will be created in the same directory in order to store task data.
- Type the command in the text box and press Enter to execute the command. You can begin by trying the few commands
in-order below.
todo some task
: Adds a todo-tasksome task
.list
: Lists all current task. You should see “some task” added in step 1.done 1
: Marks the 1st task. In this case, it is the todo-task “some task”.list
: Lists all current task. Notice that the task is now marked as complete.delete 1
: Deletes the 1st task.bye
: Closes the app.
- Refer to the features below for more commands and the details of each command.
Features
Note the following about the command format:
- The first word of the command is always the command identifier.
e.g.
{identifier} {details}
where{identifier}
is a single word identifying the command type. - Commands are case-sensitive.
e.g. for the command
todo
,TODO
andtOdO
will not be recognised. - Fields in curly braces such as
{description}
are for you to specify the input. - Note further command format specifications for the individual commands.
General commands
Listing tasks: list
Shows all tasks that have been added to Duke.
Format: list
Finding tasks: find
Finds tasks with description containing the given word or phrase.
Format: find {keyword or phrase}
- The search is case-sensitive. e.g.
TASK
will not matchtask
. - The search will find exact matches of the keyword or phrase provided. e.g.
one t
will findone time
but notonetime
ort one
.
Example:
find CS2103
finds all tasks withCS2103
in its description
Outcome:
- A list of tasks will be sent by Duke. The format resembles that of the
list
command.
Exiting the app: bye
Exits the app.
Format: bye
Add commands
Below are commands that add different types of tasks and their details.
Adding ToDo-type task: todo
Adds a task with a description that needs to be completed.
Format: todo {description}
{description}
cannot be empty.
Examples:
todo CS2103 Individual Project
Adds a todo-task with descriptionCS2103 Individual Project
.
Outcome:
- A todo-task is added. The task can be seen when the
list
command is called. It will appear with the identifier[T]
for todo.
Adding Deadline-type task: deadline
Adds a task with a description and a deadline.
Format: deadline {description} /by {deadline}
- The
{deadline}
must be specified. - The
{deadline}
is of the formatDD-MM-YYYY HHmm
.
Examples:
deadline Individual Project /by 18-09-2020 2359
Adds a deadline with descriptionIndividual Project
and deadline at18-09-2020 2359
.
Outcome:
- A deadline is added. The task can be seen when the
list
command is called. It will appear with the identifier[D]
for deadline.
Adding Event-type task: event
Adds a task with a description, a start timing and an end timing.
Format: event {description} /at {timings}
- The
{timings}
must be specified. - The
{timings}
is of the formatDD-MM-YYYY HHmm-DD-MM-YYYY HHmm
orDD-MM-YYYY HHmm-HHmm
if the start and end timings are on the same day. - The start timing must come before the end timing.
Examples:
event CS2103 Lecture /at 18-09-2020 1600-1800
Adds an event with descriptionCS2103 Lecture
, start timing at18-09-2020 1600
and end timing at18-09-2020 1800
.event Recess Week /at 19-09-2020 0000-27-09-2020 2359
Adds an event with descriptionRecess Week
, start timing at19-09-2020 0000
and end timing at27-09-2020 2359
.
Outcome:
- An event is added. The task can be seen when the
list
command is called. It will appear with the identifier[E]
for event.
Adding recurring tasks: -r
Adds a recurring task which recurs based on the specified interval. Task must be a deadline or event.
Format: {recurring task specification} -r {interval}
{recurring task specification}
must be a full command for adding either a deadline or event. e.g.deadline CS2103 IP /by 18-09-2020 2359 -r {interval}
{interval}
is of the formXO
whereO
refers to the interval specifier. The specifier is not case-sensitive.D
for dayW
for weekM
for monthY
for year
X
refers to the multiplier- Multiplier must be a positive integer. e.g. 1, 2, …
- Multiplier is optional. If a multiplier is not specified, it is set to 1.
- The recurring task only recurs when Duke is opened after the end-timing for the recurring task. The task will be pushed back by multiples of the recurring interval until the end timing exceeds the current time. It is marked as undone regardless of the original completion status.
Example:
deadline weekly assignment /by 17-09-2020 2359 -r W
Adds a recurring deadline with descriptionweekly assignment
, first deadline at17-09-2020 2359
and recurring interval of 1 week.event project meeting /at 16-10-2020 1400-1600 -r 2D
Adds a recurring event with descriptionproject meeting
, first event on16-10-2020
from1400-1600
and recurs every 2 days.
Outcome:
- The recurring tasks is added to the list. The recurring task can be identified by the
(Recurring: {interval})
at the end of the task.
State-changing commands
Completing a task: done
Marks a task as complete.
Format: done {index}
{index}
must be a positive integer. e.g. 1, 2, …{index}
index refers to the number shown on the task when thelist
command is used.
Example:
done 2
Marks the 2nd task shown by thelist
command as done.
Outcome:
- If the task was previously undone (denoted with the symbol ✘), then that task is now marked as done (with the symbol ✓).
Deleting a task: delete
Deletes a task from the list.
Format: delete {index}
{index}
must be a positive integer. e.g. 1, 2,…{index}
index refers to the number shown on the task when thelist
command is used.
Outcome:
- The task at
{index}
will be removed from the list and is no longer shown when thelist
command is used.
Command summary
Action | Format |
---|---|
List | list |
Find | find {keyword or phrase} |
Exit | bye |
ToDo | todo {description} |
Deadline | deadline {description} /by {deadline} |
Event | event {description} /at {timings} |
Recurring Task | {recurring task specification} -r {interval} |
Done | done {index} |
Delete | delete {index} |