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

[Hue Koh] iP #456

Open
wants to merge 76 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
55f9f9f
docs/README.md: Tweak document template
Jan 7, 2024
f837ddb
Add Gradle support
May 24, 2020
a6f7324
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
61a827b
Created BMO.java, my own chatbot
huekoh Jan 25, 2024
af6c7c5
Updated BMO.java
huekoh Jan 25, 2024
c856ca2
Implemented list adder
huekoh Jan 25, 2024
79772ec
implemented checklog array
huekoh Jan 25, 2024
bb1c6e8
created Task.java
huekoh Jan 25, 2024
2b558e2
Created more .java files
huekoh Jan 25, 2024
67c24ef
created subclasses of task
huekoh Jan 28, 2024
8a5a225
Implemented text ui testing
huekoh Jan 28, 2024
e4abdc2
Improved error handling
huekoh Jan 29, 2024
ed1370c
added task deletion option
huekoh Jan 29, 2024
aea83d7
Added save and load of tasks data
huekoh Feb 5, 2024
492ccfc
Update BMO.java addLog function
huekoh Feb 6, 2024
383e95f
Create BMO.java formatDateTime function
huekoh Feb 6, 2024
b3a931f
Merge branch 'branch-level-8'
huekoh Feb 6, 2024
66fdcbd
Abstract data manager out
huekoh Feb 12, 2024
ae27309
Abstracted out UI, Parser, TaskList, Commands, and Storage
huekoh Feb 14, 2024
37145eb
Troubleshooting
huekoh Feb 15, 2024
6a53c79
Ensured errors don't crash terminal
huekoh Feb 15, 2024
16a7afd
Merge pull request #1 from huekoh/A-MoreOOP
huekoh Feb 15, 2024
e5370f5
Revert "Merge pull request #1 from huekoh/A-MoreOOP"
huekoh Feb 15, 2024
08a57ae
Removed redundant imports
huekoh Feb 15, 2024
5f73efc
Merge branch 'A-MoreOOP'
huekoh Feb 15, 2024
2378bb2
Revert "Merge branch 'A-MoreOOP'"
huekoh Feb 15, 2024
66051d4
Abstract data manager out
huekoh Feb 12, 2024
445f021
Abstracted out UI, Parser, TaskList, Commands, and Storage
huekoh Feb 14, 2024
3e4b733
Troubleshooting
huekoh Feb 15, 2024
4f552d2
Ensured errors don't crash terminal
huekoh Feb 15, 2024
908319e
Removed redundant imports
huekoh Feb 15, 2024
4d17dbd
Organised classes into java packages
huekoh Feb 18, 2024
b770bc2
Merge remote-tracking branch 'upstream/add-gradle-support'
huekoh Feb 18, 2024
36422eb
Merge remote-tracking branch 'upstream/add-gradle-support'
huekoh Feb 18, 2024
337914f
Merge branch 'A-Gradle'
huekoh Feb 18, 2024
88cdc9d
Added JUnit testing for Storage.java and Parser.java
huekoh Feb 18, 2024
86bb968
Merge branch 'JUnit'
huekoh Feb 18, 2024
9f9badd
Updated relative path of data file in Storage.java
huekoh Feb 18, 2024
09ddc37
Implemented JAR
huekoh Feb 18, 2024
d69e803
Added Java documentation
huekoh Feb 18, 2024
aa75aa1
Added more java documentation
huekoh Feb 18, 2024
4174b23
Fomatted java files according to Google Coding Style
huekoh Feb 18, 2024
fa3147e
Update DueCommand.java
huekoh Feb 18, 2024
4c6129d
Merge branch 'A-CodingStandard'
huekoh Feb 18, 2024
b5808c5
Fomat to google java code style
huekoh Feb 18, 2024
bf2b38e
Implemented find task by keyword
huekoh Feb 18, 2024
fedd628
Merge branch 'Level-9'
huekoh Feb 18, 2024
3b5c008
Implemented Checkstyle
huekoh Feb 18, 2024
184bcbf
Fixed code to adhere to checkstyle test
huekoh Feb 24, 2024
a5cb836
Updated GUI up to JavaFX tutorial 2
huekoh Feb 25, 2024
09a4de3
Updated GUI to have user interaction
huekoh Feb 25, 2024
d4d44c7
Updated GUI code to use FXML, still buggy
huekoh Feb 25, 2024
df48379
Updated all UI.class methods to return a String
huekoh Feb 25, 2024
0a61b24
Updated execute() of command to return a string for response
huekoh Feb 25, 2024
484327e
Removed separation lines from UI
huekoh Feb 25, 2024
c378142
Removed unused methods from BMO.java
huekoh Feb 26, 2024
2d6c2ab
Add assertions
huekoh Feb 26, 2024
14be28c
Update Parser.java
huekoh Feb 26, 2024
f52e71c
Add assertions
huekoh Feb 26, 2024
45c213a
Update Parser.java
huekoh Feb 26, 2024
c7c93b3
Refactor TaskList.java constructor
huekoh Feb 26, 2024
2788eba
Merge pull request #3 from huekoh/A-Assertions
huekoh Feb 26, 2024
12cc784
Merge branch 'master' into A-CodeQuality
huekoh Feb 26, 2024
3aba4a8
Merge pull request #4 from huekoh/A-CodeQuality
huekoh Feb 26, 2024
aaf84da
Add Ui.png
huekoh Feb 26, 2024
6f8118f
Add compareTo methods for task classes
huekoh Feb 26, 2024
74a3e1a
Add sort command to sort task log
huekoh Feb 27, 2024
fd441b7
Update Ui.java with new method printSortEmptyLog()
huekoh Feb 27, 2024
683bdcc
Update README.md
huekoh Feb 28, 2024
025a761
Rebrand BMO to GMO
huekoh Feb 29, 2024
868d500
Credit code reuses
huekoh Feb 29, 2024
837c9b0
Update Gmo.java javadocs
huekoh Feb 29, 2024
d030bc5
Update README.md
huekoh Feb 29, 2024
05d97c0
Fix checkstyle violations
huekoh Feb 29, 2024
b5424dd
Update assets
huekoh Feb 29, 2024
d63d186
Update README.md with Ui.png
huekoh Feb 29, 2024
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
52 changes: 32 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
# Duke project template
# GMO (GameMate Organizer) 👾 🚀
> "Who wants to play video games?" - GMO

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.
**GMO's not a bad influence... he**
- helps you remember your tasks
- ~SULKS~ _reminds_ you when you are slaved by work
- tells you to hurry so you can play with him!

## Setting up in Intellij
**All you need to do is**
1. Download GMO [here](https://github.com/huekoh/ip)
2. Double click it
3. Start telling GMO your dues
4. Let him keep track of them for you 🤩

Prerequisites: JDK 11, update Intellij to the most recent version.
And he is **FREE**

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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
GMO's Features:
- [X] Keep track of tasks (todos, dues, events)
- [X] Manage task status
- [X] Sort tasks by date
- [ ] Tell you to skip lecture

And if you are a Java programmer, use him to practice your coding too! Here's GMO's `constructor` method:
``` ruby
public GMO() {
ui = new Ui();
storage = new Storage();

try {
tasks = new TaskList(storage.loadData(), ui, storage);
} catch (IOException e) {
System.out.println("Error: Unable to load data. " + e.getMessage());
tasks = new TaskList(ui);
}
}
```
65 changes: 65 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
plugins {
id 'checkstyle'
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.1.2'
}

mainClassName = 'gmo.Launcher'

repositories {
mavenCentral()
}

checkstyle {
toolVersion = '10.2'
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
testImplementation 'org.mockito:mockito-core:3.12.4'

String javaFxVersion = '17.0.7'

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 {
mainClass.set("gmo.Launcher")
}

shadowJar {
archiveBaseName = "gmo"
archiveClassifier = null
dependsOn("distZip", "distTar")
}

run {
standardInput = System.in
}
Loading