Duke

Duke is a simple and pleasant todolist manager, with its own pre-defined commands. Users type in commands to tell Duke what to do for you.
Table Of Contents
Introduction
About
This is a java project created for CS2103T Software Engineering. This java project was developed using Java version 11.0.1 in MacOS Mojave Version 10.14.6
Author: Ong Bing Jue
Version: 0.2.0
Release Date: 30 Sepetember 2019
Github: http://github.com/bjhoohaha/duke
Getting Started
-
Java JDK 11
Download and install jdk 11 from:
https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html - Mac / Linux
java -jar Duke-0.1.3.jar - Windows
Double click the jar file to run
Credits
Natalia Raices
- Font designer for the ‘Delius Unicase’ font used in the graphical user interface
Features
- Add and delete different types of task items e.g.
todo,deadline,event - Displays different task items in list view
- Displays different task items in schedule view for all items or for a particular date
- Sets a task item as done
- Find your task items with keywords
- Sets a reminder for your task
- Platform compatibility with Windows, MacOS, Linux
Commands
A task in Duke can be classified into three main categories: todo, deadline, event
A todo task is a task item that only has a task description. A todo task does not contain a date field.
todo <taskDescription> : creates a new todo task
Example of usage:
todo borrow books
Expected Outcome:
A deadline task is a task item that has a task description and a task date. The task date indicates when the
deadline task is due by. The task date must follow a specified dd/MM/yy HH:mm format.
deadline <taskDescription> /by <taskDate> : creates a new deadline task
Example of usage:
deadline homework /by 30/09/2019 1200
Expected Outcome:

Possible Error:
InvalidParameters :
If either the <taskDescription> or <task date> is empty or the taskDate is not in the valid dd/MM/yy HH:mm
format
A event task is a task item that has a task description and a task date. The task date indicates when the
event task is happening at. The task date must follow a specified dd/MM/yy HH:mm format.
event <taskDescription> /at <taskDate> : creates a new event task
Example of usage:
event meeting /at 30/09/2019 1200
Expected Outcome:

Possible Error:
InvalidParameters :
If either the <taskDescription> or <task date> is empty or the taskDate is not in the valid dd/MM/yy HH:mm
format
Displays all task items in list view. The items are displayed in the order they are entered
list : view all task items in list view
Example of usage:
list
Expected Outcome:
Each task item can be marked as done. It marks the task at the specified index in list view as done.
done <index>: marks a specified task item as done
Example of usage:
done 1
Expected Outcome:

Possible Error:
InvalidParameters :
If the specified <index> is not valid
Each task item can be deleted. It deletes a task item at the specified index in list view.
delete <index>: delete a task item
Example of usage:
delete 1
Expected Outcome:

Possible Error:
InvalidParameters :
If the specified <index> is not valid
Find the task with a matching keyword entered by the user
find <keyword>: find task item with matching keyword
Example of usage:
find books
Expected Outcome:
Sets a reminder for a specified task. The reminder is set for the task with the specified index in the list view. The
date set for the reminder must follow the dd/MM/yy HH:mm format. To change the date for a reminder that has been set,
simply enter a new remind command and the date will be automatically overwritten.
remind <index> <reminderDate>: sets a reminder for a specified task
Example of usage:
remind 2 01/09/2019 0000
Expected Outcome:

InvalidParameters :
If the specified <index> is not valid or <reminderDate> is not in the correct date format
See all tasks in schedule view. The schedule view is sorted by date order.
schedule: see all task in schedule view
schedule <date>: see all task in schedule view for a specified date
Example of usage:
schedule
schedule 01/09/2019 0000
Expected Outcome:

Exits duke and displays the exit message.
Example of usage:
bye: exits duke and displays the exit message
Expected Outcome:
FAQ
Where does duke store its task?
Duke stores its tasks in a text file. The path for the text file can be found in ./data/duke.txt
What happens if I do not have ./data directory in my computer?
Duke automatically creates the parent directories if a write operation is required.
What happens if I accidentally deleted the .txtfile?
Don’t worry, duke creates a new ./data/duke.txt file each time there is any updates to the exisitng list of task
items
How do I turn off a reminder set for a task item?
Duke does not allow users to turn off reminders. However, users can enter a reminder that is overdue, duke automatically
clears all overdue reminders.
How do I update a reminder set for a task item?
You can update a reminder set for a task item by setting a new reminder for the task item. A new reminder overwrites the
previous reminder set.
Why do I get InvalidCommand error?
This may happen if the user enters an invalid command. Please check available Commands for more information
Why do I get InvalidParameter error?
This may happen if an invalid parameter is entered for the following command. Please check the individual commands in
Commands for more information.









