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

[Gregg] iP #509

Open
wants to merge 40 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
c053b71
Level-1
Hoodineee Aug 17, 2022
a4b55e7
Level-2
Hoodineee Aug 17, 2022
fd5961d
Level-3
Hoodineee Aug 17, 2022
d21e760
Level-4
Hoodineee Aug 17, 2022
5397e2c
A-TextUiTesting
Hoodineee Aug 17, 2022
bf91f2e
Level-5
Hoodineee Aug 17, 2022
6badea5
Level-6
Hoodineee Aug 17, 2022
32ff663
Amend to OOP new head branch
Hoodineee Aug 26, 2022
5b2ee85
Add save feature
Hoodineee Aug 26, 2022
9769490
Add date and time format feature
Hoodineee Aug 26, 2022
095b520
Merge branch 'Level-8-new-head' into new-head
Hoodineee Aug 26, 2022
3c84725
Add more OOP
Hoodineee Aug 27, 2022
199fd4d
Organize the classes into suitable java packages
Hoodineee Aug 28, 2022
2871b24
Merge branch 'add-gradle-support' into new-head
Hoodineee Aug 28, 2022
61d8501
Add JUnit tests to test the behavior of some code
Hoodineee Aug 28, 2022
dd69271
Package the App as a Jar file
Hoodineee Aug 29, 2022
622b3e5
Add JavaDoc comments to most of the code
Hoodineee Aug 29, 2022
42efcef
Add Find feature
Hoodineee Aug 29, 2022
a94bf3b
Fix some minor bugs in DateFormat
Hoodineee Sep 1, 2022
639a817
Update README.md
Hoodineee Sep 2, 2022
ffb6cf7
Update README.md
Hoodineee Sep 2, 2022
eab2776
Update README.md
Hoodineee Sep 2, 2022
baa7238
Add a GUI to Duke
Hoodineee Sep 3, 2022
6088d45
Use assert feature
Hoodineee Sep 7, 2022
d41e5bb
Improve code quality
Hoodineee Sep 7, 2022
1fd7621
Merge pull request #1 from Hoodineee/branch-A-Assertions
Hoodineee Sep 7, 2022
caec4e1
Merge pull request #2 from Hoodineee/branch-A-CodeQuality
Hoodineee Sep 7, 2022
29ba577
Add notes extension
Hoodineee Sep 7, 2022
13d4701
Use GFMD
Hoodineee Sep 10, 2022
007e9c2
Improve use of assert feature
Hoodineee Sep 10, 2022
4d3f10b
Merge remote-tracking branch 'origin/master'
Hoodineee Sep 10, 2022
024b274
Add representative screenshot
Hoodineee Sep 18, 2022
01d07e4
Add User Guide
Hoodineee Sep 18, 2022
e00a7c3
Fix some bugs
Hoodineee Sep 18, 2022
d69b727
Fix bugs in DateFormat
Hoodineee Sep 18, 2022
871fd35
Update README.md
Hoodineee Sep 18, 2022
df4b98e
Update README.md
Hoodineee Sep 18, 2022
9d162cf
Fix find command bugs
Hoodineee Sep 18, 2022
554fb9b
Fix more bugs on DateFormat
Hoodineee Sep 18, 2022
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
48 changes: 28 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
# Duke project template
# DukePro
> “Your mind is for having ideas, not holding them.” – David Allen ([source](https://dansilvestre.com/productivity-quotes))

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.
DukePro frees your mind of having to remember things you need to do. It's,

## Setting up in Intellij
- text-based
- easy to learn
- ~~FAST~~ *SUPER* FAST and EASY to use

Prerequisites: JDK 11, update Intellij to the most recent version.
All you need to do is,

1. Open Intellij (if you are not in the welcome screen, click `File` > `Close Project` to close the existing project first)
1. Open the project into Intellij as follows:
1. Click `Open`.
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).<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:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
1. download it from [here](https://github.com/Hoodineee/ip).
2. double-click it.
3. add your tasks.
4. let it manage your tasks for you :wink:

And it is **FREE**!

Features:

- [x] Managing tasks
- [ ] Managing deadlines (coming soon)
- [ ] Reminders (coming soon)

If you Java programmer, you can use it to practice Java too. Here's the `main` method:
```java
public class Main {
public static void main(String[] args) {
Application.launch(MainApp.class, args);
}
}
```
56 changes: 56 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.1.0'
}

repositories {
mavenCentral()
}

dependencies {
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'

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'
}

test {
useJUnitPlatform()

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

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

application {
mainClassName = "Launcher"
}

shadowJar {
archiveBaseName = "DuckWifaKnife"
archiveClassifier = null
}

run{
standardInput = System.in
}
1 change: 1 addition & 0 deletions data/duckwifaknife.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[D][ ] commit ip (by: Feb 2 2022)
159 changes: 149 additions & 10 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,168 @@
# User Guide
DuckWifaKnife, a friendly duck that helps you manage your tasks

## Features
### Feature - `todo`

### Feature-ABC
Adds a Todo type task to your tasklist.

Description of the feature.
### Feature - `deadline`

### Feature-XYZ
Adds a Deadline type task to your tasklist.

Description of the feature.
### Feature - `event`

Adds an Event type task to your tasklist.

### Feature - `notes`

Adds a note to your noteslist.

### Feature - `list`

Lists out all the tasks and notes in your tasklist and noteslist.

### Feature - `mark`

Marks the specific task in the index given as done in the tasklist.

### Feature - `unmark`

Marks the specific task in the index given as not done in the tasklist.

### Feature - `find`

Find any matching task in the tasklist with the given keyword.

### Feature - `delete`

Deletes the specific task in the index given.

### Feature - `bye`

Closes the program.

## Usage

### `Keyword` - Describe action
### `todo` - The todo feature will be activated.

Describe the action and its outcome.
A Todo type task will be created and added to the tasklist.

Example of usage:

`keyword (optional arguments)`
`todo finalise ip`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917787-9783b9df-4e8b-458f-b167-34337fc92d71.png)

### `deadline` - The dealine feature will be activated.

A Deadline type task will be created and added to the tasklist.

Example of usage:

`deadline commit ip /by 20/09/2022 2359`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917832-7492ea68-2e54-461e-b5e8-90b58f383baa.png)

### `event` - The event feature will be activated.

A Event type task will be created and added to the tasklist.

Example of usage:

`event done with ip celebration /at 21/09/2022 0000`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917846-f5df45c6-ef52-4ab0-acea-df2c9bfaab61.png)

### `notes` - The notes feature will be activated.

A Note will be created and added to the noteslist.

Example of usage:

`notes i'm bad at coding`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917860-c0f3c0f2-1f40-41ff-8d9b-c6db562544f3.png)

### `list` - The list feature will be activated.

Lists all the tasks and notes in the tasklist and noteslist.

Example of usage:

`list`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917875-f2413279-36e8-4645-b7ff-87ea16c662a4.png)

### `mark` - The mark feature will be activated.

The task at the index given will be marked as done.

Example of usage:

`mark 2`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917885-421d6875-f07a-4ec2-a1a3-c22038b38a8e.png)

### `unmark` - The mark feature will be activated.

The task at the index given will be marked as done.

Example of usage:

`unmark 2`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190917896-b1405211-8bc3-4096-be1a-d9adeec50513.png)

### `find` - The find feature will be activated.

Finds any tasks or notes with the given keyword.

Example of usage:

`find ip`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190918104-f0d69d66-3b1d-4244-878b-da9f1110cc5d.png)

### `delete` - The delete feature will be activated.

The task at the index given will deleted.

Example of usage:

`delete 2`

Expected outcome:

![image](https://user-images.githubusercontent.com/97339748/190918126-981a1876-3077-49fa-b6f5-017b89508660.png)

### `bye` - The bye feature will be activated.

Closes the program.

Example of usage:

`bye`

Expected outcome:

Description of the outcome.
The program will close.

```
expected output
Bye. Hope to see you again soon!
```
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.
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