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

[yyccbb] iP #454

Open
wants to merge 65 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 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
57f578c
Rename to Nihao. Create App and PrintHandler classes.
yyccbb Jan 31, 2024
35557dd
Add echo functionality. Change personality.
yyccbb Feb 1, 2024
99d83a5
Add DataHandler class. Add temporary storage functionality.
yyccbb Feb 1, 2024
7c6e3e5
Create action, exception and handler packages. Refactor action firing…
yyccbb Feb 1, 2024
c9a8cd5
Add error handling. Add printed message for mark, unmark and list Act…
yyccbb Feb 1, 2024
6152325
Add support for todo deadline and event. Refactor TaskAction.
yyccbb Feb 1, 2024
135582a
Configure batch automated text UI testing
yyccbb Feb 2, 2024
fddb674
Create 3 exception classes. Update test input.
yyccbb Feb 5, 2024
bc9aa9d
Add delete task functionality. Update test cases accordingly.
yyccbb Feb 5, 2024
5b6f5fe
Use enums for commands
yyccbb Feb 5, 2024
4a481c0
DataHandler class: support local data persistence
yyccbb Feb 6, 2024
c90a86e
Merge branch 'branch-Level-7'
yyccbb Feb 6, 2024
ddb681a
InputHandler class: remove own instance
yyccbb Feb 7, 2024
5939c6d
Task classes: store timestamps with LocalDateTime
yyccbb Feb 7, 2024
c459d0f
DeleteAction: support delete all
yyccbb Feb 7, 2024
ebff38e
Update textUI test
yyccbb Feb 7, 2024
779fe60
Merge branch 'branch-Level-8'
yyccbb Feb 7, 2024
11e4de3
Create ExitAction class to handle "bye" command
yyccbb Feb 7, 2024
59c3142
Create package nihao to host all packages and classes
yyccbb Feb 7, 2024
908cbb6
Merge branch 'add-gradle-support'
yyccbb Feb 7, 2024
54a3554
Configure build.gradle
yyccbb Feb 7, 2024
eb9aaaf
Configure codebase to use Gradle
yyccbb Feb 7, 2024
322da80
Action and Task classes: add .equals()
yyccbb Feb 8, 2024
35a02de
Create DataHandlerTest class
yyccbb Feb 8, 2024
db26f71
DataHandler: create data directory when absent
yyccbb Feb 10, 2024
fab4bd3
Add JavaDoc comments for most classes and methods
yyccbb Feb 12, 2024
645708b
Change some constants to variables
yyccbb Feb 12, 2024
5f6575b
TaskTypeAdapter: add class description
yyccbb Feb 12, 2024
f7dceac
Add find task by keyword functionality
yyccbb Feb 12, 2024
44457f7
Merge branch 'branch-A-JavaDoc'
yyccbb Feb 12, 2024
29eb1ba
Merge branch 'branch-A-CodingStandard'
yyccbb Feb 12, 2024
3ee1a45
Merge branch 'branch-Level-9'
yyccbb Feb 12, 2024
ea389a4
Update README.md
yyccbb Feb 15, 2024
8611f23
Fix coding style
yyccbb Feb 18, 2024
8917b05
Create GUI
yyccbb Feb 18, 2024
6c0fdfa
Update GUI to use fxml
yyccbb Feb 19, 2024
1487cee
Change GUI theme to Cupertino-dark
yyccbb Feb 23, 2024
5beeef6
Merge branch 'branch-Level-10'
yyccbb Feb 23, 2024
6ef0d3d
Merge branch 'branch-A-CheckStyle'
yyccbb Feb 23, 2024
501c56a
Use assertions in the code
yyccbb Feb 26, 2024
ee11d18
DataHandler: refactor read() method
yyccbb Feb 26, 2024
aa4249a
DataHandler: improve code quality
yyccbb Feb 26, 2024
68176da
PrintHandler: improve code quality
yyccbb Feb 26, 2024
31189d6
Fix CheckStyle
yyccbb Feb 26, 2024
a9db28c
Merge pull request #2 from yyccbb/branch-A-CodeQuality
yyccbb Feb 26, 2024
c7b55bd
Revert "Merge CodeQuality with master"
yyccbb Feb 26, 2024
d8a6f5d
Merge pull request #3 from yyccbb/revert-2-branch-A-CodeQuality
yyccbb Feb 26, 2024
8a27e48
Merge pull request #4 from yyccbb/branch-A-Assertions
yyccbb Feb 26, 2024
06b7802
DataHandler: update method header comments
yyccbb Feb 26, 2024
4e686da
Merge pull request #5 from yyccbb/branch-A-CodeQuality
yyccbb Feb 26, 2024
b63cedc
DataHandler: refactor read() method
yyccbb Feb 26, 2024
5c6480f
DataHandler: improve code quality
yyccbb Feb 26, 2024
a64fa2f
PrintHandler: improve code quality
yyccbb Feb 26, 2024
3566f23
Fix CheckStyle
yyccbb Feb 26, 2024
daf742c
DataHandler: update method header comments
yyccbb Feb 26, 2024
4fdba1f
Merge pull request #7 from yyccbb/new-branch-A-CodeQuality
yyccbb Feb 26, 2024
a060f2b
Add short aliases for all commands
yyccbb Feb 26, 2024
e66c08c
DialogueBox: fix text area width
yyccbb Feb 27, 2024
568709c
UI: add greeting message
yyccbb Feb 27, 2024
afd5f3a
Update the user guide
yyccbb Feb 27, 2024
66593fe
Update Gradle build configuration
yyccbb Feb 27, 2024
6ab4f34
Fix a mistake in the user guide
yyccbb Mar 20, 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
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,15 @@ src/main/resources/docs/
*.iml
bin/

# java class files
*.class

# simple text UI test
/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT

# local storage
data/PersistentData.json

# jar binary
*.jar
46 changes: 26 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
# Duke project template
# Nihao
> "Say nihao to Nihao!"

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.
Nihao frees your mind of having to remember things you need to do. It's,
* text-based
* easy to learn
* ~~FAST~~ SUPER FAST to use

## Setting up in Intellij
All you need to do is,
1. download it from [here](https://github.com/yyccbb/ip/releases/tag/A-Jar).
2. double-click it.
3. add your tasks.
4. let it manage your tasks for you :pilot:

Prerequisites: JDK 11, update Intellij to the most recent version.
And it 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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
### Features:

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

***
If you are a Java programmer, you can use it to practice Java too. Here's the `main` method:
```java
public static void main(String[] args) {
DataHandler.read();
nihao.run();
}
```
68 changes: 68 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '7.1.2'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
testImplementation 'junit:junit:4.13.1'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1'

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("nihao.App")
}

checkstyle {
toolVersion = '10.2'
}

shadowJar {
archiveBaseName.set('nihao')
archiveClassifier.set('')
dependsOn("distZip", "distTar")
}

run{
standardInput = System.in
enableAssertions = true
}
Loading