View on GitHub

ip

Duke project

User Guide

This product is an educational software project that helps user to keep track of various things.
The link is website for user guide

Quick start

Using IntelliJ

  1. Ensure you have Java 11 or above installed in your Computer
  2. Download the IntelliJ
  3. Set up the correct JDK version as follows:
    1. Click Configure > Structure for New Projects and then Project Settings > Project > Project SDK
    2. If JDK 11 is listed in the drop down, select it. If it is not, click New... and select the directory where you installed JDK 11
    3. Click OK
  4. Download the latest project from here.
  5. Import the project into Intellij.
  6. Go to the sr folder and find src\main\java\dukes\dukes.Duke
  7. Right click the dukes.Duke and select Run dukes.Launcher
  8. The program now should run on the Console (usually located at the bottom side)
  9. Type the command and press Enter to execute it.
    1.Refer to teh Feature below for details of each command.

Using Command Line

  1. ‘Build’ the project using IntelliJ.
  2. Open the Terminal/Command Prompt.
  3. cd into the project’s out\artifacts\ip_jar.
  4. Type java -jar ip.jar then Enter to execute .
  5. Now you can interact with the program through the CLI.

Features

Notes about the command format:

Viewing help: help

Usage

Shows all available commands that the user can input.

Format: help

Example of usage:
help

Expected outcome:

Use following commands to control me:
     - todo [desc]\n"
     - event [desc] /at [date time]
     - deadline [desc] /by [date time]
     - list\n"
     - done [task number]
     - bye|exit (exits duke)
     - find [keyword]
     * date format - DD/MM/YYYY 
     * time format - HHmm

Adding a task: todo

Usage

Adding a task in the task list and show the total number of task in the list.

todo - Adding a task into a task list.


>The keyword ‘todo’ with description can be upper and lowercase letters and its outcome will not include the keyword.
>If you key in the keyword without description. There will be an error message:”OOPS!!! The description of a todo cannot be empty. “

Format: todo Description

Example of usage:
TOdo Read BOOK

Expected outcome:

Got it. I've added this task: 
[T][X] Read book
Now you have 1 task in the list.

Adding a deadline task: deadline

Usage

Adding a deadline task helps to know the deadline for the specific task in the task list and show the total number of task in the list.

deadline - Adding a deadline task


>The keyword ‘deadline’ with description can be upper and lowercase letters and the outcome will not include the keyword.
>The date and time format need to include.
>If you key in the keyword without description. There will be an error message:”OOPS!!! The description of a deadline cannot be empty.”
>If you forgot to include the date and time or /by, there will be reminder message:”OOPS!!! Please refer to [Help] to key in Correct Format.”
>If you key in a wrong format for date and time. There will be message to guide you :”Please input a date in this format : dd/MM/yyyy HHmm.”

Format: deadline Description /by dd/mm/yyyy HHmm

Example of usage:
deadline return book /by 12/12/2021 1800

Expected outcome:

Got it. I've added this task: 
[D][X] return book (by:12-Dec-2021 06:00 PM)
Now you have 2 tasks in the list.

Adding an event task: event

Usage

Adding an event task helps to remind the user to attend the event with specific date and time in the task list and show the total number of task in the list.

event - Adding an event task


>The keyword ‘event’ with description can be upper and lowercase letters and The outcome will not include the keyword.
>TThe date and time format need to include.
>If you key in the keyword without description. There will be an error message:”OOPS!!! The description of an event cannot be empty.”
>If you miss the date and time or /at, there will be reminder message:”“OOPS!!! Please refer to [Help] to key in Correct Format.”
>If you key in a wrong format for date and time. There will be message to guide you :”Please input a date in this format : dd/MM/yyyy HHmm.”

Format: event Description /at dd/mm/yyyy HHmm

Example of usage:
EVENT join club /at 12/11/2021 0900

Expected outcome:

Got it. I've added this task: 
[E][X] join club (at:12-Nov-2021, 09:00 AM)
Now you have 3 tasks in the list.

Marking a specific task: done

Usage

Marking a specific task to remind the user that he has finished the task.

done - Marking a specific task from the task list.


>The keyword ‘done’ can be upper and lowercase letters
>The outcome will be change X to Y in the specific task.
>The index refers to the index number shown in the displayed task list.
>the index must be positive integer 1,2,3… and must be in the list.
>If you key in the keyword without INDEX. There will be an error message:”OOPS!!! Please refer to [Help] to key in Correct Format.”
>If you key in the index number that is out of the list. There will be an error message :”OOPS!!! There is no specific task number in the list.”

Format: done INDEX

Example of usage:
Done 1 or DONE 1 or done 1

Expected outcome:

<br/>Nice! I've marked this task as done:
<br/>[T][Y] Read book

Deleting a task: delete

Usage

Delete a specific task from task list to helps remove the completed task and tidy the task list. It will show the total number of Tasks left in the task list.

delete - Deleting a specific task from the task list.


>The keyword ‘delete’ can be upper and lowercase letters and its outcome will be remove the specific task and reduce the total number of task in the list.
>The index refers to the index number shown in the displayed task list
>The index must be a positive integer 1,2,3… and must be in the list.
>If you key in the index number that is out of the list. There will be an error message:”OOPS!!! There is no specific task to delete.”
>If you key in the keyword without INDEX. There will be an error message:”OOPS!!! Please refer to [Help] to key in Correct Format.”

Format: delete INDEX

Example of usage:
Delete 1 or DELETE 1 or delete 1

Expected outcome:

Noted. I've removed this task: 
[T][Y] Read book
Now you have 2 task in the list.

###Listing all Tasks: list

Usage

It shows a list of tasks with a number. It helps to summarize the task list.

list - Listing all Tasks with number.


>The keyword ‘list’ can be upper and lowercase letters and its outcome will be show a list of task in the task list
>If you key in the keyword with empty task.There will be an error message:”OOPS!!! There are no Tasks in your list.”

Format: list

Example of usage:
list or List or LIST

Expected outcome:

Here are the Tasks in your list:
1.[D][X] return book (by:12-Dec-2021 06:00 PM)
2.[E][X] join club (at:12-Nov-2021, 09:00 AM)

Locating Tasks by description_keyword: find

Usage

It helps to search a task that contain any of the given description_keyword, and the search is case-insensitive. e.g book will match BOOK. Therefore, the user can easily find out the specific task base on find function.

find - Locating Tasks with given description_keyword


>The keyword ‘find’ can be upper and lowercase letters and its outcome will be show a list of task in the task list when the task is match the specific description keywords.
>The order of the description_keyword does not matter.
>If you key in the specific description_keyword that does not match the task in your list.There will be an error message:”OOPS!!! There is no matching Tasks in your list.”
>If you only key in the keyword, there will be an error message:”OOPS!!! The description of a find cannot be empty.”

Format: find description_keyword[more_keyword]

Example of usage:
step 1.TODO Read BOOK
step 2. find book or Find BOok or FIND BOOK

Expected outcome:

Here are the matching Tasks in your list:
1.[T][X] Read BOOK
2.[D][X] return book (by:12-Dec-2021 06:00 PM)

Exiting the program: exit/bye

Usage

It helps to end the program.

exit/bye - Exiting the program


The keyword ‘exit/bye’ can be upper and lowercase letters and a bye message will be show:”Bye. Hope to see you again soon!”.
the Launcher will auto exit.

Format: exit or bye

Example of usage:
bye/exit/BYE/EXIT/Bye/Exit

Expected outcome:

Bye. Hope to see you again soon!

Loading the data

Auto-load the data from the hard disk when duke starts up.
The file name and location e.g., [project_root]/data/duke.txt

###Saving the task in the hard-disk It auto-save the Tasks and auto create a text file after exiting the program, and the format of display will be change when task save in hard disk. It saves the user’s time as there is no need to save manually.

Exceptions message

Usage

It helps to handle error message that will guide the user.

Example of usage:
book

Expected outcome:
OOPS!!! I’m sorry, but I don’t know what that means :-(

Command Summary

Action Format Examples
Help help help
Todo todo Description todo read book
Deadline deadline Description /by dd/mm/yyyy HHmm deadline return book /by 12/12/2021 1800
Event event Description /at dd/mm/yyyy HHmm event join club /at 11/12/2021 1300
List list list
Find find description_keyword[more_keywords] find book
Done done INDEX done 1
Delete delete INDEX delete 1
Exit exit exit
Bye bye bye