Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Zhang Yubin] ip #471

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
d839859
Add Gradle support
May 24, 2020
a320dbd
Level-1
Kimowarui Aug 19, 2021
56dd70a
Level-2
Kimowarui Aug 19, 2021
98b4bdc
Level-3
Kimowarui Aug 19, 2021
5bf86fe
Level-4
Kimowarui Aug 19, 2021
15b129b
Level-5
Kimowarui Aug 19, 2021
9c82281
Level-6
Kimowarui Aug 19, 2021
79c9bdf
A-TextUiTesting
Kimowarui Aug 26, 2021
010e34e
Some modifications from last week ip
Kimowarui Aug 26, 2021
0cc48f4
Auto Save
Kimowarui Aug 26, 2021
e4d564e
Auto Date and Times
Kimowarui Aug 26, 2021
e1e5885
Make the program more OOP
Kimowarui Sep 15, 2021
a046802
Divide classes into packages
Kimowarui Sep 15, 2021
13513a0
Add JUnit tests
Kimowarui Sep 15, 2021
e23ab33
Add JUnit tests
Kimowarui Sep 15, 2021
9e90dc7
Add JavaDoc comments
Kimowarui Sep 15, 2021
d9cd2c8
Tweak the code to comply with a coding standard
Kimowarui Sep 15, 2021
6f75690
Give users a way to find a task by searching for a keyword.
Kimowarui Sep 15, 2021
a8adc43
Merge branch 'branch-A-CodingStandard'
Kimowarui Sep 15, 2021
ac088aa
Merge branch 'branch-Level-9'
Kimowarui Sep 15, 2021
6f56ccd
Merge remote-tracking branch 'origin/add-gradle-support' into branch-…
Kimowarui Sep 17, 2021
5ab9d28
Fix some coding style using Gradle
Kimowarui Sep 18, 2021
3e1041e
Add a GUI to Duke
Kimowarui Sep 19, 2021
55e5b87
Make it more OOP
Kimowarui Sep 20, 2021
8397082
Add Assertions feature: Assert input given by user will always be valid
Kimowarui Sep 20, 2021
14e72e8
Improve code quality
Kimowarui Sep 20, 2021
1a5e30c
Merge branch 'branch-A-CodeQuality'
Kimowarui Sep 20, 2021
4b75f2c
Add snooze feature selected from category B, C, or D
Kimowarui Sep 20, 2021
c3b7bdd
Improve the GUI
Kimowarui Sep 21, 2021
192bb10
Update README.md
Kimowarui Sep 21, 2021
a4539eb
Add files via upload
Kimowarui Sep 21, 2021
8d35eac
Update README.md
Kimowarui Sep 21, 2021
fec1ca4
Set theme jekyll-theme-architect
Kimowarui Sep 21, 2021
99fe33e
Update README.md
Kimowarui Sep 21, 2021
67a5a7a
Set theme jekyll-theme-hacker
Kimowarui Sep 21, 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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke project template
# duke.main.Main.Duke project template

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.

Expand All @@ -13,7 +13,7 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
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).<br>
In the same dialog, set the **Project language level** field to the `SDK default` option.
3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:
3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run duke.main.Main.Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:
```
Hello from
____ _
Expand Down
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 = "duke.main.Launcher"
}

shadowJar {
archiveBaseName = "Duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
1 change: 1 addition & 0 deletions data/tasks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
T | 1 | return book
176 changes: 167 additions & 9 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,187 @@
# User Guide
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.

You can download it from [Here](https://github.com/Kimowarui/ip/releases)

## Introduction
Duke frees your mind of having to remember things you need to do. It's,

* text-based
* easy to learn
* SUPER FAST to use

![Ui](/docs/Ui.png)

## Features

### Feature-ABC
### 1. Feature-AddNewTask

Add a task of "todo", "event", "deadline" type.

### 2. Feature-ShowTaskList

Show every task you have added into a list.

### 3. Feature-MarkDone

Mark a task as done.

### 4. Feature-DeleteTask

Delete a task in your list.

Description of the feature.
### 5. Feature-Save&Load

### Feature-XYZ
Save the tasks in the hard disk automatically whenever the task list changes. Load the data from the hard disk when Duke starts up.

Description of the feature.
### 6. Feature-FindTask

Find a list of task with given keyword.

## Usage

### `Keyword` - Describe action
### 1. `list` - List all the tasks

Duke lists all the tasks added to a TaskList.

Example of usage:

`list`

Expected outcome:

A list of tasks.

```
Here are tasks in your list:
1.[T][X] read a book
2. [D][ ] return a book (by: 22/08/2019)
```

### 2. `done <index>` - Mark a task as done

Duke marks a task as done.

Example of usage:

`done 1`

Expected outcome:

Mark a specific task as done.

```
done:
[T][X] return book
```

### 3. `delete <index>` - Delete a task

Duke remove a task from a TaskList.

Example of usage:

`delete 1`

Expected outcome:

Delete a specific task.

```
removed:
[T][X] return book
Now you have 1 tasks in the list.
```

### 4. `find <keyword>` - Search tasks

Describe the action and its outcome.
Duke searchs a list of tasks by given keyword.

Example of usage:

`keyword (optional arguments)`
`find book`

Expected outcome:

Description of the outcome.
A list of tasks containing the keyword.

```
expected output
Here are the matching tasks in your list:
1.[D][ ] return a book (by: 22/08/2019)
2.[T][ ] read a book
```

### 5. `todo <task>` - Add a Todo task to TaskList

Duke adds a Todo task to a TaskList.

Example of usage:

`todo read a book`

Expected outcome:

Adds a Todo task into TaskList.

```
added:
[T][ ] read a book
Now you have 2 tasks in the list.
```

### 6. `event <task> /at <time>` - Add a Event task to TaskList

Duke adds a Event task to a TaskList.

Example of usage:

`event borrow a book /at 2019=08-22`

Expected outcome:

Adds a Event task into TaskList.

```
added:
[E][ ] borrow a book (at: 22/08/2019)
Now you have 3 tasks in the list.
```

### 7. `deadline <task> /by <time>` - Add a Deadline task to TaskList

Duke adds a Deadline task to a TaskList.

Example of usage:

`deadline return a book /at 2019=08-29`

Expected outcome:

Adds a Deadline task into TaskList.

```
added:
[D][ ] return a book (by: 29/08/2019)
Now you have 4 tasks in the list.
```

### 7. `snooze <index> <time>` - Change time of task

Duke changes the time of a task.

Example of usage:

`snooze 1 2019=08-29`

Expected outcome:

A task with newTiming replaces the original one.

```
You have successfully postpone a task!!!
Here are the delayed task with new timing:
[D][ ] return a book (by: 29/08/2019)
```

Binary file added docs/Ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-hacker
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading