Duke is a desktop application that is designed for keeping track of the various tasks at hand. It is optimized for use via a Command Line Interface (CLI) while still having Graphical User Interface (GUI). As a skilled typer, you should be able to carry out various actions such as adding new tasks and marking a task as done much faster than the traditional GUI apps.
This is an implementation of Project Duke , an educational software project designed to take the new software developer through the steps of building a small software incrementally, while applying as many Java and SE techniques as possible along the way.
- Ensure you have Java 11 or above installed in your Computer.
- Download the latest ip.jar from here.
- Copy the file to the folder you want to use as the home folder. [] Make sure you have the priviledge to create a new directory and edit files within the directory.
- Double-click the file to start the app. The GUI should appear in a few seconds (as shown below).
- Type the command in the command box and press Enter to execute it.
- For the details of each command, refer to the Features below.
Action | Format & Example |
---|---|
Add a ToDo task | todo EVENT_TITLE e.g: todo Assigment 1 |
Add a Deadline task | deadline EVENT_TITLE /by DATE TIME e.g: deadline Assignment 1 /by 2020-09-14 18:00 |
Add an Event task | event EVENT_TITLE /at DATE TIME - TIME e.g: event Birthday Party /at 2020-09-14 18:00 20:00 |
List | list |
Mark a Task as Done | done INDEX e.g: done 2 |
Delete a Task | delete INDEX e.g: delete 2 |
Find tasks with keyword | find KEYWORD e.g: find homework |
Archive data into a separate file | archive LOCATION_TO_SAVE e.g: archive data\dukeII.txt |
Load Data | load FILE_LOCATION e.g: load data\dukeII.txt |
Save | save |
End the session | bye |
Words in UPPER_CASE are the parameters to be supplied by the user. e.g. in todo TITLE, TITLE is a parameter which can be used as todo homework.
In the Graphic Display, dialogue in Red Box indicates a Warning or error.
Add a todo list.
Format: todo EVENT_TITLE
E.g:
todo homework
Add a deadline list. The DATE should be in YYYY-MM-DD format and TIME should be HH:MM format.
Format: deadline EVENT_TITLE /at DATE TIME - TIME
E.g:
deadline Assignment 1 /by 2020-09-14 18:00
Add a deadline list. The DATE should be in YYYY-MM-DD format and TIME should be HH:MM format.
Format: event EVENT_TITLE /at DATE TIME - TIME
E.g:
event Birthday Party /at 2020-09-14 18:00 20:00
List out all the tasks added to the application in order of the entry.
Format: list
Mark the task at INDEX as done.
INDEX should be a positive integer, e.g. 1, 2, 3, 4... and the order is in entry order.
If you are not sure about the order, check with list
command.
Format: done INDEX
E.g.
- 'done 5'
Delete the task at INDEX as done.
INDEX should be a positive integer, e.g. 1, 2, 3, 4... and the order is in entry order.
If you are not sure about the order, check with list
command.
Once the delete is completed, the index of all subsequent tasks will move down by 1.
Format: delete INDEX
E.g.
- 'delete 5'
Save all the file into the default folder.
The default folder is data\duke.txt
which will be located in the same folder as the application .jar
file.
Format: save
Saves all the data of the current progress into the DESTINATION.
DESTINATION should point to a .txt
file and takes relative position from the folder that contains the application .jar.
Format: archive DESTINATION
E.g.
archive data\dukeII.txt
Load the archived file at the DESTINATION.
DESTINATION should point to a .txt
file and takes relative position from the folder that contains the application .jar.
It will not override the current data until save
or bye
command is entered.
Format: archive DESTINATION
E.g.
archive data\dukeII.txt
Close the application window after 2 seconds.
The application will automatically save the file to the default file path.
Format: bye
Credit goes to
- NUS CS2103T AY20201 Semester 1 Teaching Team for the starter code and guidance
- Refers to SE-Education Adress Book Level 3 for the layout and content of this User Guide.
- Thanks to Jame_D's answer in stackoverflow implement the function that close windows after a few seconds.