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

[Foo Jing Yi] iP #449

Open
wants to merge 107 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
3b19ba1
Add Gradle support
May 24, 2020
77511f4
Add Message.java with constructor, reply() method, and enum for comma…
foojingyi Aug 20, 2020
6c96bd9
Added getCmd() method to return command
foojingyi Aug 20, 2020
2777c68
Created user input feature and respond to user inputs, deleted defaul…
foojingyi Aug 20, 2020
09e2eb0
Changed ECHO command type to ADD with appropriate ouput
Aug 20, 2020
52872bf
Added a HashSet "list" to keep all added items
Aug 20, 2020
e8d0b49
Added HashSet "list" as variable in Message and to the constructor fo…
Aug 20, 2020
8cd1a6a
Change HashSet instances to List implemented with ArrayList to preser…
Aug 20, 2020
8e532e7
Updated reply() method for ADD command to add to list
Aug 20, 2020
2f575a1
Change sc.next() to sc.nextLine() so that new Message objects and ini…
Aug 20, 2020
3d27ce2
Added Command type LIST and reply() case for this type
Aug 20, 2020
bfad948
Updated chatbot's tone in replies
Aug 20, 2020
a12d247
Added Task.java class, adapting from example given
Aug 20, 2020
33bf0df
Changed list from list of String to list of Task, and added status ic…
Aug 20, 2020
c7910a9
Added Command type DONE and updated reply() method for this case
Aug 20, 2020
bfb4cbd
Overrode toString method for Task objects such that status icon is pa…
Aug 20, 2020
d68bc56
Added Deadline, Event and Todo classes extending Task, adapted from e…
Aug 20, 2020
6139e1e
Changed accessibility for "private" variables to "protected"
Aug 20, 2020
86f01bb
Changed ADD Command type to NOT_FOUND for inputs that don't match any…
Aug 20, 2020
ebd9ad3
Changed switch statements to if statements in Message.java, updated r…
Aug 20, 2020
0a72af0
Fixed bug caused by typo in Event class, changed "dl" to "time"
Aug 20, 2020
3381f40
Added reply() method for cases of Command types TODO, DEADLINE and EVENT
Aug 20, 2020
839111a
Updated files in text-ui-test to use the I/O redirection technique to…
Aug 20, 2020
de39330
Added DukeException.java to handle exceptions from the chatbot.
Aug 20, 2020
758a8e4
Added NoCommandException.java and NoDescriptionException.java to hand…
Aug 20, 2020
2a5ce27
Updated Duke.java and Message.java such that incorrect inputs of 1. i…
Aug 20, 2020
04e0bbe
Added WrongItemIndexException.java to deal with user input errors fro…
Aug 20, 2020
086487c
Changed exceptions caught in main class to specifically DukeExceptions
Aug 20, 2020
f677798
Changed errors arising from using "done" commands to be handled with …
Aug 20, 2020
b285f63
Added DELETE command type and its corresponding reply() method case
Aug 20, 2020
729fbcf
Ignore "data/duke.txt" when it is created.
Aug 27, 2020
9cc342e
Read file "data/duke.txt" from hard disk on start up and pass it to e…
Aug 27, 2020
4435cac
Change format of toString for Deadline and Event so that it is easier…
Aug 27, 2020
e724755
Add FileToListReader.java to convert a file from hard disk to list of…
Aug 27, 2020
1e93d96
Write to file "data/duke.txt" when changes are made to list of tasks
Aug 27, 2020
a1711a0
Teach duke to parse date and times inputted as "yyyy-MM-dd HH:mm" and…
Aug 27, 2020
eb41a03
Merge branch 'branch-Level-7'
Aug 27, 2020
692d003
Merge branch 'branch-Level-8' and resolve conflicts
Aug 27, 2020
400181a
Change Deadline and Event to work with LocalDateTime objects rather t…
Aug 27, 2020
4641470
Change FileToListReader.java to Storage.java, and added functionality…
Aug 28, 2020
0e2d60c
Add Ui.java to deal with interactions with user
Aug 28, 2020
02060a6
Abstract content of load() and update() methods to new methods parseT…
Aug 28, 2020
c217a62
Ignore tasks.txt created through using the chatbot
Aug 28, 2020
0862515
Update welcome message in Ui.java
Aug 28, 2020
7abd6e1
Add TaskList.java to contain the list of task and methods for manipul…
Aug 28, 2020
5865350
Add methods to Task.java and its children to support functionality of…
Aug 28, 2020
9c00f72
Separate Message.java functionality into Parser.java and Command.java…
Aug 28, 2020
3ebac0e
Remove bottom line from error message
Aug 28, 2020
7377d8f
Update Duke.java with more OOP structure using the new classes
Aug 28, 2020
674b42c
Divide classes into packages and refactored accordingly
Aug 31, 2020
5cd15c7
Added JUnit tests including dummyTest() for Duke and tests for Task m…
Sep 1, 2020
f641c4d
Ignore Manifest file created when jar is built
Sep 1, 2020
517e09c
Add JavaDoc comments to all public classes and non-overridden methods
Sep 1, 2020
d084ede
Change indentation and variable names to comply with coding standards
Sep 1, 2020
78ed732
Add find command
Sep 1, 2020
1a83d10
Merge branch 'branch-A-JavaDoc'
Sep 1, 2020
8b61904
Merge branch 'branch-A-CodingStandard'
Sep 1, 2020
c095ea5
Resolve conflicts
Sep 1, 2020
3d4e0dd
Simplify finding keywords by removing whitespaces and comparing in lo…
Sep 1, 2020
d7fad1c
Change error handling for development purposes
Sep 3, 2020
1cfde58
Review formatting and moved CommandType enum to its own file
Sep 3, 2020
f34acd0
Merge remote-tracking branch 'origin/add-gradle-support'
Sep 3, 2020
5116894
Add checkstyle files and change checkstyle version
Sep 3, 2020
cef2839
Add dependencies for JavaFX in build.gradle
Sep 3, 2020
568289c
Try HelloWorld GUI application
Sep 3, 2020
2b9c430
Add according to JavaFX tutorial 2
Sep 3, 2020
01d7af9
Add according to JavaFX tutorial 3
Sep 3, 2020
43c1fa3
Add according to JavaFX tutorial 4
Sep 4, 2020
2f9cd8a
Convert MainWindow to use the fx:root construct
Sep 9, 2020
9182cb9
Implement basic GUI
Sep 10, 2020
c8e9f16
Merge branch 'branch-Level-10'
Sep 10, 2020
b414ce2
Refactor execute command
Sep 10, 2020
9f1450c
Fix bug where deleting the last item in the list results in an error
Sep 10, 2020
2a5b62b
Add assertions
Sep 10, 2020
ee160bf
Refactor repeated code in date formatting and task handling
Sep 10, 2020
10a3091
Merge pull request #1 from foojingyi/branch-A-Assertions
foojingyi Sep 10, 2020
d6fec0d
Merge branch 'master' of https://github.com/foojingyi/ip
Sep 10, 2020
740f1eb
Merge branch 'master' into branch-A-CodeQuality
Sep 10, 2020
21f3d42
Merge pull request #2 from foojingyi/branch-A-CodeQuality
foojingyi Sep 10, 2020
7298c01
Merge branch 'master' of https://github.com/foojingyi/ip
Sep 10, 2020
9745094
Improve code quality
Sep 11, 2020
b819617
Move reply strings to Ui instead of within command objects
Sep 17, 2020
f280b79
Specify errors for AddCommand
Sep 17, 2020
b0f45d7
Set up CI
Sep 17, 2020
314b8a6
Set up CI from GitHubActions
foojingyi Sep 17, 2020
a0e1081
Remove wrongly put .yml file
Sep 17, 2020
5ce9a68
Implement more flexible search
Sep 17, 2020
523f0c3
Create gui package
Sep 17, 2020
6c97df7
Resolve bug where the first task in a list is added to file with a bl…
Sep 17, 2020
a6a88dd
Resolve bug where file cannot be loaded
Sep 17, 2020
487312c
Make GUI application quit Exit command
Sep 18, 2020
528ac62
Organise import statements for Ui.java
Sep 18, 2020
ae1e474
Change file on disk to save to.
Sep 18, 2020
33db2f0
Commit MANIFEST.MF file
Sep 18, 2020
cca9d95
Rename bot from duke to meimei and changed bot profile picture in GUI
Sep 18, 2020
019a2e6
Refactor exception classes names and variable names to fit with Meimei
Sep 18, 2020
b535320
Improve coding style according to coding standards
Sep 18, 2020
4037a86
Change user profile and changed mentions of duke to meimei
Sep 18, 2020
70f88c2
Change format of the reader friendly date and times
Sep 18, 2020
b85a7da
Add Ui.png to docs folder
Sep 18, 2020
b47957c
Update README for Meimei Bot
Sep 18, 2020
86334ec
Set theme jekyll-theme-architect
foojingyi Sep 18, 2020
b545ebc
Update build.gradle
Sep 18, 2020
c8beb1f
Shorten line in MainWindow.java to fit with coding conventions
Sep 21, 2020
215ce02
Delete unnecessary test class and fix import statement order
Sep 21, 2020
907230e
Change to separate imports in TastTest.java
Sep 21, 2020
ee28f71
Fix files according to date time format
Sep 21, 2020
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
34 changes: 34 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Java CI

on: [push, pull_request]

jobs:
build:
strategy:
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.platform }}

steps:
- name: Set up repository
uses: actions/checkout@master

- name: Set up repository
uses: actions/checkout@master
with:
ref: master

- name: Merge to master
run: git checkout --progress --force ${{ github.sha }}

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1

- name: Setup JDK 11
uses: actions/setup-java@v1
with:
java-version: '11'
java-package: jdk+fx

- name: Build and check with Gradle
run: ./gradlew check
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
duke.txt
tasks.txt
gui-test.txt
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
# meimei.MeimeiBot 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 @@ -15,7 +15,7 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
1. Click `Open or Import`.
1. Select the project directory, and click `OK`
1. If there are any further prompts, accept the defaults.
1. After the importing is complete, 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:
1. After the importing is complete, locate the `src/main/java/meimei.MeimeiBot.java` file, right-click it, and choose `Run meimei.MeimeiBot.main()`. If the setup is correct, you should see something like the below:
```
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 = "meimei.Launcher"
}

shadowJar {
archiveBaseName = "meimei"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
Loading