duke

View project on GitHub

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

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.