Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
3b19ba1
Add Gradle support
May 24, 2020
a75fcee
build.gradle: Update version to 8.29
Aug 29, 2020
407ffa5
Level-1
chanellNg Jan 21, 2021
06f0689
Add files via upload
chanellNg Jan 21, 2021
9b617be
Level-2
chanellNg Jan 21, 2021
4006726
Update Level_1.java
chanellNg Jan 21, 2021
5487996
Add files via upload
chanellNg Jan 21, 2021
b5c3290
update
chanellNg Jan 21, 2021
27b1dca
Delete Level_1.java
chanellNg Jan 21, 2021
2ebb099
Delete Level_2.java
chanellNg Jan 21, 2021
575b392
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Jan 21, 2021
ce02ad4
Level-3
chanellNg Jan 21, 2021
38ed607
Level-4
chanellNg Jan 21, 2021
45deb86
Level-6
chanellNg Jan 21, 2021
ae29bdd
update
chanellNg Jan 21, 2021
ec45d14
A-TextUiTesting
chanellNg Jan 27, 2021
8dfff5e
Level-7
chanellNg Jan 31, 2021
5557dcb
Delete Level_7.java
chanellNg Jan 31, 2021
cabc8e2
Level-7 branch
chanellNg Jan 31, 2021
ff30251
Level-8 branch
chanellNg Jan 31, 2021
73a64ba
Level-8
chanellNg Jan 31, 2021
8a94ea4
Merge branch 'branch-Level-8'
chanellNg Jan 31, 2021
c942d11
branch-A-JavaDoc
chanellNg Jan 31, 2021
4f0a9d5
Add files via upload
chanellNg Jan 31, 2021
add4617
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Jan 31, 2021
1c760e8
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Jan 31, 2021
d10b9a1
Merge branch 'branch-A-JavaDoc'
chanellNg Jan 31, 2021
743980d
A-MoreOOP
chanellNg Feb 1, 2021
26ef9ce
OOP
chanellNg Feb 1, 2021
b7970f1
A-Packages
chanellNg Feb 1, 2021
c72addf
A-JUnit
chanellNg Feb 1, 2021
a929bc3
A-JUnit
chanellNg Feb 1, 2021
d3c2107
A-CodingStandard and A-JavaDoc
chanellNg Feb 2, 2021
11af796
Added JavaDoc comments.
chanellNg Feb 2, 2021
97c5ab0
branch-Level-9
chanellNg Feb 2, 2021
2b307f3
Level-9
chanellNg Feb 2, 2021
7fd1218
Merge remote-tracking branch 'origin/add-gradle-support'
chanellNg Feb 8, 2021
98b7b46
Updated Gradle and Checkstyle
chanellNg Feb 8, 2021
4851440
Level-10
chanellNg Feb 9, 2021
498e37f
Level-10 GUI
chanellNg Feb 9, 2021
17312a9
Added resources files
chanellNg Feb 9, 2021
8d0acb9
Added assert statments
chanellNg Feb 13, 2021
ed4a16f
Merge pull request #2 from chanellNg/branch-A-Assertions
chanellNg Feb 13, 2021
aeb15f7
Made changes to improve code quality
chanellNg Feb 13, 2021
d5e2d9a
Merge pull request #3 from chanellNg/branch-A-CodeQuality
chanellNg Feb 13, 2021
bd46e79
BCD extention- adding edit functionality
chanellNg Feb 13, 2021
446ca55
Added BCD extentsion -Edit function
chanellNg Feb 13, 2021
194b0bc
Updated user guide and made changes to Ui
chanellNg Feb 17, 2021
6f462ad
Added product snapshot
chanellNg Feb 17, 2021
925acea
Set theme jekyll-theme-cayman
chanellNg Feb 17, 2021
28aa931
Updated background color
chanellNg Feb 17, 2021
7bebc15
Delete Ui.png
chanellNg Feb 17, 2021
77eec58
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Feb 17, 2021
b231f90
Updated Ui
chanellNg Feb 17, 2021
b2572af
Updated gui and shadowJar
chanellNg Feb 17, 2021
87ed919
Set theme jekyll-theme-minimal
chanellNg Feb 17, 2021
6cd61be
Updated user guide in docs folder
chanellNg Feb 17, 2021
b993914
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Feb 17, 2021
17cda08
Set theme jekyll-theme-cayman
chanellNg Feb 17, 2021
30702c2
Updated JavaDoc comments
chanellNg Feb 18, 2021
fffce7c
Merge branch 'master' of https://github.com/chanellNg/ip
chanellNg Feb 18, 2021
b65e6ea
Update README.md
chanellNg Jun 9, 2021
d1837f3
Update README.md
chanellNg Jun 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 168 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Duke project template
# Duke project

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.
This is a project named after the Java mascot _Duke_. Given below are instructions on how to use the interactive Duke bot.

# User Guide
## Setting up in Intellij

Prerequisites: JDK 11, update Intellij to the most recent version.
Expand All @@ -12,12 +13,168 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
1. Select the project directory, and click `OK`.
1. If there are any further prompts, accept the defaults.
1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).
1. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
1. After that, locate the `src/main/java/Launcher.java` file, right-click it, and choose `Run Launcher.main()`.
1. Refer to the Features below for details of each command.

## Features

***NOTE: Words in UPPER_CASE are the parameters to be supplied by the user.***

### Adding a task:
&nbsp;
#### Adding a ToDo task: `todo`

Adds a new ToDo task to the Duke's tasklist.

Format: `todo CONTENT`

- The content field must be provided.

Examples:

- `todo hello`
- `todo read book`

&nbsp;

#### Adding a Deadline task: `deadline`

Adds a new Deadline task to the Duke's tasklist.

Format: `deadline CONTENT /by DATE_AND_TIME`

- The date and time must be in the format DD/MM/YYYY HH:MM
- Both fields must be provided.

Examples:
- `deadline read book /by 12/12/2020 18:30`
- `deadline return book /by 10/10/2020 10:00`

&nbsp;
#### Adding an Event task: `event`

Adds a new Event task to the Duke's tasklist.

Format: `event CONTENT /at DATE_AND_TIME`

- The date and time must be in the format DD/MM/YYYY HH:MM
- Both fields must be provided.

Examples:
- `event go for meeting /at 12/10/2020 18:00`
- `event meet groupmates /at 10/10/2020 10:30`

&nbsp;

### Listing all tasks: `list`

Shows a list of all tasks in the Duke's tasklist.

Format: `list`

&nbsp;
### Marking a task as done: `done`

Marks an existing task in the Duke's tasklist as done.

Format: `done INDEX`

- Updates the task status to done for the task at the specified `INDEX`
- The index refers to the index number shown in the displayed tasklist.
- The index **must be a positive integer**.

Examples:
- `list` followed by `done 3` marks the 3rd task in the tasklist as done.

&nbsp;
### Deleting a task: `delete`

Deletes an existing task from the Duke's tasklist.

Format: `delete INDEX`

- Deletes the task at the specified `INDEX`
- The index refers to the index number shown in the displayed tasklist.
- The index **must be a positive integer**.

Examples:
- `list` followed by `delete 1` deletes the 1st task in the tasklist.

&nbsp;
### Finding a task by content: `find`

Finds tasks with contents that contain the given keyword/s.

Format: `find KEYWORD OR KEYWORDS`

- The search is **case-sensitive**.
- Only the contents of the tasks are searched.
- The following tasks will be returned:
1. content matching the keyword/s
2. the keyword/s form a part of the content

Examples:
- `find read` returns both task with content `read book` and task with content `read` from the tasklist.

&nbsp;

### Editing a task: `edit`

&nbsp;

#### Editing a task's content: `edit_content`

Edits an existing task's content in the Duke's tasklist.

Format: `edit INDEX content NEW_CONTENT`

- Edits the content of the task at the specified `INDEX`
- The index refers to the index number shown in the displayed tasklist.
- The index **must be a positive integer**.
- Existing content will be updated to `NEW_CONTENT`.
- All fields must be provided.

Examples:
- `edit 1 content read new book` edits the content of the 1st task in the tasklist to `read new book`.

&nbsp;

#### Editing a task's date and time: `edit_datetime`

Edits an existing task's date and time in the Duke's tasklist.

Format: `edit INDEX datetime NEW_DATETIME`

- Edit the date and time of the task at the specified `INDEX`
- The index refers to the index number shown in the displayed tasklist.
- The index **must be a positive integer**.
- The date and time must be in the format DD/MM/YYYY HH:MM
- Existing date and time will be updated to `NEW_DATETIME`.
- All fields must be provided.

Examples:
- `edit 2 datetime 12/12/2020 18:30` edits the date and time of the 2nd task in the tasklist to `12/12/2020 18:30`.

&nbsp;
### Exiting the program: `bye`

Saves the tasklist's changes to the file at relative filepath `/data/duke.txt`.

Format: `bye`


&nbsp;
##Command Summary


Action | Format, Examples
------------ | -------------
Add | ToDo Task <br /> `todo CONTENT` </br> e.g. `todo hello` </br> </br> Deadline Task </br> `deadline CONTENT /by DATE_AND_TIME` </br> e.g. `deadline read book /by 12/12/2020 18:30` </br></br> Event Task </br> `event CONTENT /at DATE_AND_TIME` </br> e.g. `event go for meeting /at 12/10/2020 18:00`
List | `list`
Done | `done INDEX` <br /> e.g. `done 3`
Delete | `delete INDEX` <br /> e.g. `delete 1`
Find | `find KEYWORD OR KEYWORDS` <br /> e.g. `find read`
Edit | Edit content <br />`edit INDEX content NEW_CONTENT` <br /> e.g. `edit 1 content read new book` <br /> <br /> Edit date and time <br /> `edit INDEX datetime NEW_DATETIME` <br /> e.g. `edit 2 datetime 12/12/2020 18:30` <br />
Exit | `bye`


61 changes: 61 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.1.0'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

String javaFxVersion = '11'

implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'linux'
}

test {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed"

showExceptions true
exceptionFormat "full"
showCauses true
showStackTraces true
showStandardStreams = false
}
}

application {
mainClassName = "ip.src.main.java.Launcher"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
Loading