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

[Johannes] iP #498

Open
wants to merge 66 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
f1c8472
Added Level-1 functionality, Greet, Echo, Exit
jwdavis0200 Aug 17, 2022
187c115
Fixed cosmetic bugs and a technical bug where whitespace will result …
jwdavis0200 Aug 17, 2022
324e89a
Added bye method for more general implementation for the end of opera…
jwdavis0200 Aug 17, 2022
9734e6d
Added storeman method for storing of lists of input and outputting th…
jwdavis0200 Aug 17, 2022
5fc2e89
Added Task Class to encapsulate tasks passed as input.
jwdavis0200 Aug 17, 2022
de5b284
Added three subclasses of Task; Deadline, Event, Todo
jwdavis0200 Aug 17, 2022
e014ef7
Removed reduncant, unused checklist method
jwdavis0200 Aug 17, 2022
31322c5
Edited Todo Class to meet specifications of project
jwdavis0200 Aug 17, 2022
f6a01bb
Added support for tracking of three types of classes, Todo, Event and…
jwdavis0200 Aug 17, 2022
a0d05fa
Replaced contains method with startsWith for program correctness and …
jwdavis0200 Aug 17, 2022
18f224e
Added three subclasess of Task; Todo, Event, Deadline
jwdavis0200 Aug 17, 2022
288b3d9
removed redundant, not used checklist method(checklist functionality …
jwdavis0200 Aug 17, 2022
25b4a83
Various bug fix for Level-3
jwdavis0200 Aug 17, 2022
ff240bc
Change to Guard clause to ensure correctness and better flexibility o…
jwdavis0200 Aug 17, 2022
f86fe54
Bug Fix for Event TAG attribute
jwdavis0200 Aug 17, 2022
0be8c1d
Added support for subclasses of Task; for Todo, Event, Deadline tracking
jwdavis0200 Aug 17, 2022
71136ec
Added DukeException for throwing Duke-caused Exceptions
jwdavis0200 Aug 17, 2022
e80eff2
Added feature for storeman method to throw DukeException if input is …
jwdavis0200 Aug 17, 2022
238cd67
Added to gitignore
jwdavis0200 Aug 17, 2022
0b8ae87
added to gitignore
jwdavis0200 Aug 17, 2022
e0c1635
Support for delete added
jwdavis0200 Aug 17, 2022
e6d2fb3
updated gitignore, added test-ui-test(but to be configured to be igno…
jwdavis0200 Aug 17, 2022
cecaaf1
removed debug statement
jwdavis0200 Aug 17, 2022
88cf1a8
update files to be ignored
jwdavis0200 Aug 18, 2022
2a3278f
Updated input, expected and actual as well as runtest.bat to automate…
jwdavis0200 Aug 18, 2022
eee3ade
Merge branch 'master' into temp
jwdavis0200 Aug 18, 2022
cc7549a
Merge pull request #1 from jwdavis0200/temp
jwdavis0200 Aug 18, 2022
925dbc0
Add save and load functionality to Duke and minor changes to String r…
jwdavis0200 Aug 24, 2022
1935377
Add storage.txt as a file to be ignored by .gitignore
jwdavis0200 Aug 24, 2022
6d29dff
Merge pull request #2 from nus-cs2103-AY2223S1/add-gradle-support
jwdavis0200 Aug 24, 2022
b00830b
Enable Duke to process inputs by users for time-related inputs to be …
jwdavis0200 Aug 24, 2022
8f29232
Merge branch 'branch-level-7'
jwdavis0200 Aug 25, 2022
f30de1d
Modify toString methods of Deadline and Event
jwdavis0200 Aug 25, 2022
7d023d1
Merge branch 'master' of https://github.com/jwdavis0200/ip_own
jwdavis0200 Aug 25, 2022
ce2c786
Remove wildcard import in favour of specific imports of classes
jwdavis0200 Aug 25, 2022
8198c1d
Add more OOP principles
jwdavis0200 Aug 25, 2022
d1bdfa7
Add Parser class
jwdavis0200 Aug 25, 2022
31df34b
Modify Duke, Storage, TaskList, Ui class to support OOP principles wi…
jwdavis0200 Aug 25, 2022
dd3160c
Remove some import messages.
jwdavis0200 Aug 25, 2022
f895775
Add folders and package the classes.
jwdavis0200 Aug 25, 2022
a69734c
Add basic JUnit tests for Event and Todo classes
jwdavis0200 Aug 25, 2022
b7bf4d6
Add find functionality to Duke
jwdavis0200 Aug 25, 2022
c2f31b8
Add task to build.gradle file to automate building of fat jar and rem…
jwdavis0200 Aug 26, 2022
8e3c478
Remove method add from Storage class, implement add method in TaskLis…
jwdavis0200 Aug 26, 2022
fd27527
Fix code to meet Checkstyle.
jwdavis0200 Aug 30, 2022
244af75
Add incomplete Basic GUI functionality to Duke
jwdavis0200 Aug 31, 2022
7587212
Document classes implementing UI.
jwdavis0200 Aug 31, 2022
14a0ab7
Change save method into static
jwdavis0200 Sep 7, 2022
0eeb832
Modify build.gradle
jwdavis0200 Sep 7, 2022
61b464b
Add Assert statements.
jwdavis0200 Sep 7, 2022
bf94579
Merge pull request #3 from jwdavis0200/branch-Assertions
jwdavis0200 Sep 7, 2022
e5945b3
Improve Code Quality
jwdavis0200 Sep 7, 2022
ac4d7b7
Improve Code Quality
jwdavis0200 Sep 7, 2022
e538329
Merge pull request #4 from jwdavis0200/branch-CodingStandard
jwdavis0200 Sep 7, 2022
fd4355d
Add duplicate detection feature to Duke.
jwdavis0200 Sep 13, 2022
18b975d
Update README.md
jwdavis0200 Sep 13, 2022
e3ae2d2
Update README.md
jwdavis0200 Sep 14, 2022
a767bfe
Modify README to suit product for user guide.
jwdavis0200 Sep 14, 2022
398ecc7
Merge branch 'master' of https://github.com/jwdavis0200/ip_own
jwdavis0200 Sep 14, 2022
12e32db
Modify to fix file reading bug
jwdavis0200 Sep 15, 2022
0eb20d2
Update Readme
jwdavis0200 Sep 16, 2022
5f60da7
Modify the guard clauses of Storage constructor.
jwdavis0200 Sep 16, 2022
990680c
Remove HTML tracking.
jwdavis0200 Sep 16, 2022
d43ca9b
Move README.md
jwdavis0200 Sep 16, 2022
117f869
Update build.gradle for name of archive
jwdavis0200 Sep 24, 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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ src/main/resources/docs/
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
/text-ui-test/EXPECTED-UNIX.TXT
storage.txt

/docs/*.html
63 changes: 51 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
# Duke project template
# Duke, your Personal Task List Manager

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.
Duke is here to organise and **carry** you through your work life!

## Setting up in Intellij
## Using Duke

Prerequisites: JDK 11, update Intellij to the most recent version.
1. Download Duke jar file.
2. Just *Double-Click* it!

### Guide to using Duke

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
____ _
Expand All @@ -22,3 +17,47 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```

Some inputs you can use to start using Duke:

```
todo <Todo task> //adds a Todo task into your task list.
deadline <Deadline task> <yyyy-MM-dd HH:mm> //adds a Deadline task into your task list.
event <Event task> <yyyy-MM-dd HH:mm HH:mm> //adds an Event task into your task list.

mark <Task number> //marks the n<</sup> item in the task list as done.
unmark <Task number> //marks the n<sup>th</sup> item in the task list as not done.
find <Task> //finds the task with that description from the task list.
remove <Task number> //removes the n<sup>th</sup> item in the task list.

```
### Start of using application.

![welcomeDuke](https://user-images.githubusercontent.com/89232083/190049715-b3ade24c-2630-4002-bad0-945560f32e7a.png)

This is the welcome page when you first launch the application. To start adding tasks, just input your command in the text box and press the `Enter` key or click the `Enter` button right beside the text box.

![Screenshot (124)](https://user-images.githubusercontent.com/89232083/190051826-8a724486-c0b4-41bb-9f1e-23fb85166797.jpg) ![Screenshot (126)](https://user-images.githubusercontent.com/89232083/190051850-c214ef40-95fe-4aa1-a29d-1180b582f4ae.png)

You can do the same steps with the rest of the commands listed [here].(https://github.com/jwdavis0200/ip_own/edit/master/README.md#guide-to-using-duke)

### Terminating the program

To stop using the app, just send bye to Duke and the application will close.
Your tasks will be saved in the application data for you to continue using the next time you start Duke!

### For Pro-users
If you want to use your own set of data, you can do so by replacing the storage.txt file with your own txt file with the same name.

**Please** make sure you use the same format as Duke to allow for successful reading of the app data.

```

[T][X] read book
[D][ ] assignment (by: 2022-07-08 08:30)
[E][X] project meeting (at: 2022-08-08 12:30 to 2022-08-08 13:30)

```

Have fun using Duke V2, more features will be coming to you!

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

}
checkstyle {
toolVersion= '10.2'
}

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 = "dukechatbot.duke.Launcher"
}

shadowJar {
archiveBaseName = "DukeTaskBot"
archiveClassifier = null
}

run{
standardInput = System.in
}

jar {
manifest {
attributes "Main-Class" : "dukechatbot.duke.Launcher"
}
}
task customFatJar(type: Jar) {
manifest.from jar.manifest
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
baseName 'DukeChatbot'
with jar

}
62 changes: 48 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
# User Guide
# Duke, your Personal Task List Manager

## Features
Duke is here to organise and **carry** you through your work life!

### Feature-ABC
## Using Duke

Description of the feature.
1. Download Duke jar file.
2. Just *Double-Click* it!

### Feature-XYZ
### Guide to using Duke

Description of the feature.
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```

## Usage
Some inputs you can use to start using Duke:

### `Keyword` - Describe action
```
todo <Todo task> //adds a Todo task into your task list.
deadline <Deadline task> <yyyy-MM-dd HH:mm> //adds a Deadline task into your task list.
event <Event task> <yyyy-MM-dd HH:mm HH:mm> //adds an Event task into your task list.

mark <Task number> //marks the n<</sup> item in the task list as done.
unmark <Task number> //marks the n<sup>th</sup> item in the task list as not done.
find <Task> //finds the task with that description from the task list.
remove <Task number> //removes the n<sup>th</sup> item in the task list.

```
### Start of using application.

![welcomeDuke](https://user-images.githubusercontent.com/89232083/190049715-b3ade24c-2630-4002-bad0-945560f32e7a.png)

This is the welcome page when you first launch the application. To start adding tasks, just input your command in the text box and press the `Enter` key or click the `Enter` button right beside the text box.

Describe the action and its outcome.
![Screenshot (124)](https://user-images.githubusercontent.com/89232083/190051826-8a724486-c0b4-41bb-9f1e-23fb85166797.jpg) ![Screenshot (126)](https://user-images.githubusercontent.com/89232083/190051850-c214ef40-95fe-4aa1-a29d-1180b582f4ae.png)

Example of usage:
You can do the same steps with the rest of the commands listed [here].(https://github.com/jwdavis0200/ip_own/edit/master/README.md#guide-to-using-duke)

`keyword (optional arguments)`
### Terminating the program

Expected outcome:
To stop using the app, just send bye to Duke and the application will close.
Your tasks will be saved in the application data for you to continue using the next time you start Duke!

Description of the outcome.
### For Pro-users
If you want to use your own set of data, you can do so by replacing the storage.txt file with your own txt file with the same name.

**Please** make sure you use the same format as Duke to allow for successful reading of the app data.

```
expected output

[T][X] read book
[D][ ] assignment (by: 2022-07-08 08:30)
[E][X] project meeting (at: 2022-08-08 12:30 to 2022-08-08 13:30)

```

Have fun using Duke V2, more features will be coming to you!

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.
Loading