duke

View the Project on GitHub marcfyk/duke

User Guide

Duke is a offline java application that helps you track and manage various tasks.
Tasks that you can track are ToDos, Deadlines and Events.
Duke also utilises of local storage, remembering your tasks even after the application has been closed.

Overview

overview-1 overview-2 overview-3

Features

List of Features:

  1. Tracks various types of tasks
  2. Text search through your saved tasks
  3. View your tasks chronologically by time
  4. Interact with chatbot
  5. Tasks are saved on local storage

Tracks various types of tasks

Duke can manage your pending tasks such as todos, deadlines, and events. Tasks can be given a text description. Tasks such as todos only has a text description while tasks such as deadlines and events must be supplied with a Date and Time as well.

Todos are pending tasks that you may want to save to duke that does not have any time restriction.
Examples of such tasks could be revision sessions, movies to watch, etc.

Deadlines are pending tasks that you may want to save to duke that are to be completed by a certain date or time.
Examples of such tasks could be assignments, house chores, etc.

Events are pending tasks that you may want to save to duke that are going to be available at a certain date or time.
Examples of such tasks could be examinations, driving lessons, etc.

These tasks can be added, marked as done, or deleted by our list of available commands found here.
For a more detailed description and guide of our commands, you can find it here.

Text search through your saved tasks

Duke allows the user to quickly look up tasks by matching text. Since you may have many types of tasks saved into duke, you may be overwhelmed when searchin for particular tasks due to the sheer size of tasks being tracked by duke. Therefore, with duke’s search capabilities, you will be able to filter out only the relevant tasks that you want to look up.

The relevant command can be found here.
For a more detailed description, you can find it here.

View your tasks chronologically by time

Duke automatically sorts your tasks in chronological order, allowing you to view your tracked tasks sorted by date and time. Our tasks that we track of for ourselves are rarely given chronologically by their date, be it as a deadline or as a scheduled event. Therefore we automatically sort your tasks by date so that you can get the best picture of their urgency and their relation with one another.

This feature is done automatically and do not require any specific commands.

Interact with chatbot

You interact with duke in a chatbot fashion, allowing you to ‘talk’ to your application, breaking off from a monotonous interaction with Duke.

Tasks are saved on local storage

Duke saves your tasks to your machine’s local storage. That means that you do not need to keep your application running!
Duke will remember what tasks you are tracking even when you close the application.

Commands

List of commands

Usage

todo - Adds a todo task to Duke

Adds a todo task for duke to track.
The format for adding a todo is todo <todo description>.

// user input
todo Revise CS2103T Lecture Notes on UML 

// response
    ____________________________________________________________
     Got it. I've added this task:
       [T][N] Revise CS2103T Lecture Notes on UML
     Now you have 1 tasks in the list.
    ____________________________________________________________

todo-pic

deadline - Adds a deadline task to Duke

Adds a deadline task for duke to track.
The format for adding a deadline is deadline <deadline description> /by <date d/m/yyyy> <time 24 hour clock>.

// user input
deadline CS2102 Assignment 2 /by 14/9/2019 2359

// response
    ____________________________________________________________
     Got it. I've added this task:
       [D][N] CS2102 Assignment 2 (by: 14th of September 2019 11:59pm)
     Now you have 1 tasks in the list.
    ____________________________________________________________

deadline-pic

event - Adds an event task to Duke

Adds a event task for duke to track.
The format for adding a event is event <event description> /by <date d/m/yyyy> <time 24 hour clock>.

// user input
event CS2103T Finals /at 29/11/2019 0900

// response
    ____________________________________________________________
     Got it. I've added this task:
       [E][N] CS2103T Finals (at: 29th of November 2019, 9:00am)
     Now you have 1 tasks in the list.
    ___________________________________________________________e

event-pic

list - Lists out all tracked tasks

Lists out all tasks being tracked by duke.
Tasks are sorted according to their dates and times, with todo tasks being displayed first since they do not have dates and times.
The format for listing out all tasks is list.

Suppose the following commands are keyed in sequence.

  1. event CS2103T Finals /at 29/11/2019 0900
  2. deadline CS2102 Assignment 2 /by 14/9/2019 2359
  3. todo Revise CS2103T Lecture Notes on UML
// user input
list

// response
    ____________________________________________________________
     Here are the tasks in your list:
     1.[T][N] Revise CS2103T Lecture Notes on UML
     2.[D][N] CS2102 Assignment 2 (by: 14th of September 2019 11:59pm)
     3.[E][N] CS2103T Finals (at: 29th of November 2019, 9:00am)
    ___________________________________________________________e

list-pic

done - Mark a task as done

Marks a task as done.
Tasks that are done are marked with Y, while undone tasks are marked with N.
The format for marking a task as done is done <index>.

Suppose the following commands are keyed in sequence.

  1. event CS2103T Finals /at 29/11/2019 0900
  2. deadline CS2102 Assignment 2 /by 14/9/2019 2359
  3. todo Revise CS2103T Lecture Notes on UML
// user input
done 1

// response
    ____________________________________________________________
     Nice! I've marked this task as done:
       [T][Y] Revise CS2103T Lecture Notes on UML
    ____________________________________________________________

// user input
list

// response
    ____________________________________________________________
     Here are the tasks in your list:
     1.[T][Y] Revise CS2103T Lecture Notes on UML 
     2.[D][N] CS2102 Assignment 2 (by: 14th of September 2019 11:59pm)
     3.[E][N] CS2103T Finals (at: 29th of November 2019, 9:00am)
    ____________________________________________________________

done-pic

delete - Deletes a task from Duke

The format for deleting a task is delete <index>.

Suppose the following commands are keyed in sequence.

  1. event CS2103T Finals /at 29/11/2019 0900
  2. deadline CS2102 Assignment 2 /by 14/9/2019 2359
  3. todo Revise CS2103T Lecture Notes on UML
// user input
delete 1

// response
    ____________________________________________________________
     Noted. I've removed this task:
       [T][N] Revise CS2103T Lecture Notes on UML
     Now you have 2 tasks in the list.
    ____________________________________________________________

// user input
list

// response
    ____________________________________________________________
     Here are the tasks in your list:
     1.[D][N] CS2102 Assignment 2 (by: 14th of September 2019 11:59pm)
     2.[E][N] CS2103T Finals (at: 29th of November 2019, 9:00am)
    ____________________________________________________________

delete-pic

find - Finds tasks matching a specific text

Searches and retrieves tasks that match a certain text.
The format for searching for tasks by a given matching text is find <text match>.

Suppose the following commands are keyed in sequence.

  1. event CS2103T Finals /at 29/11/2019 0900
  2. deadline CS2102 Assignment 2 /by 14/9/2019 2359
  3. todo Revise CS2103T Lecture Notes on UML
// user input
find CS2103T

// response
    ____________________________________________________________
     Here are the tasks in your list:
     1.[T][N] Revise CS2103T Lecture Notes on UML
     2.[E][N] CS2103T Finals (at: 29th of November 2019, 9:00am)
    ____________________________________________________________
// user input
find CS2102

// response
    ____________________________________________________________
     Here are the tasks in your list:
     1.[D][N] CS2102 Assignment 2 (by: 14th of September 2019 11:59pm)
    ____________________________________________________________

// user input
find CS3230

// response
    ____________________________________________________________
     Here are the tasks in your list:

    ____________________________________________________________

find-pic-1 find-pic-2

bye - Tells Duke bye

Tells Duke bye.
Format of telling duke bye is bye.

// user input
bye

// response
    ____________________________________________________________
     Bye. Hope to see you again soon!
    ____________________________________________________________

bye-pic