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

[Chin Sek Yi] IP #663

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
68c58c1
Add Gradle support
May 24, 2020
03523ec
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
81a9c53
build.gradle: Prevent generating a second JAR file
aureliony Jul 16, 2024
2af8896
add level-0
ChinSekYi Aug 25, 2024
6232d36
Level-1
ChinSekYi Aug 25, 2024
21ebb58
add level-2
ChinSekYi Aug 25, 2024
f1888d7
add Level-3
ChinSekYi Aug 25, 2024
054b2bf
Level-4
ChinSekYi Aug 25, 2024
09e0c53
A-TextUiTesting
ChinSekYi Aug 25, 2024
063a261
add temp changes
ChinSekYi Aug 26, 2024
f2c0320
add Level-5
ChinSekYi Aug 27, 2024
871c080
add Level-6
ChinSekYi Aug 27, 2024
5f572d2
add A-Enums
ChinSekYi Aug 27, 2024
37d7038
Add javadoc comments
ChinSekYi Aug 31, 2024
a84ec19
Add Level-7
ChinSekYi Aug 31, 2024
5b42654
Add Level-8
ChinSekYi Aug 31, 2024
ac2cca1
Update ui-test
ChinSekYi Aug 31, 2024
6e450a7
Add A-MoreOOP
ChinSekYi Aug 31, 2024
51ee42c
Add A-Packages
ChinSekYi Aug 31, 2024
91a78e8
Fix Ui bugs
ChinSekYi Sep 1, 2024
f42da35
Merge branch 'add-gradle-support'
ChinSekYi Sep 1, 2024
4482781
Update build.gradle
ChinSekYi Sep 1, 2024
4208820
Update A-Gradle
ChinSekYi Sep 1, 2024
40eb02c
Add A-JUnit
ChinSekYi Sep 1, 2024
c526c4c
Add A-Jar
ChinSekYi Sep 1, 2024
7c7c765
Add A-JavaDoc
ChinSekYi Sep 1, 2024
b7cf644
Edit code format
ChinSekYi Sep 1, 2024
5dfcf1b
Add A-CodingStandard
ChinSekYi Sep 1, 2024
bf7f773
merge branch-A-CodingStandard to master
ChinSekYi Sep 1, 2024
2958677
Add Level-9
ChinSekYi Sep 1, 2024
8e05c70
Edit gitignore
ChinSekYi Sep 5, 2024
8eab433
configure checkstyle
ChinSekYi Sep 5, 2024
80a0f0a
Set up GUI
ChinSekYi Sep 6, 2024
73b1e4d
Add Level-10
ChinSekYi Sep 6, 2024
c2107c2
Fix GUI bugs, disable checkstyle
ChinSekYi Sep 6, 2024
6e2c4fd
Configure GUI
ChinSekYi Sep 6, 2024
1a2f8aa
Add GUI elements
ChinSekYi Sep 6, 2024
700c335
Fix master branch
ChinSekYi Sep 12, 2024
d61e565
Add A-Assertions
ChinSekYi Sep 12, 2024
0b05aa0
Improve code quality
ChinSekYi Sep 12, 2024
5c64585
Merge pull request #3 from ChinSekYi/branch-A-CodeQuality
ChinSekYi Sep 12, 2024
ff4a2d2
Edit java stream for printing tasklist
ChinSekYi Sep 12, 2024
2e056b4
Merge pull request #4 from ChinSekYi/branch-A-Streams
ChinSekYi Sep 12, 2024
26afa9f
Add A-CI
ChinSekYi Sep 12, 2024
05bada8
Update README.md
ChinSekYi Sep 12, 2024
3e836fd
Add sort extension
ChinSekYi Sep 12, 2024
418166c
Merge pull request #5 from ChinSekYi/branch-C-Sort
ChinSekYi Sep 12, 2024
63514cf
Improve code quality
ChinSekYi Sep 12, 2024
757c4b9
Improve code quality
ChinSekYi Sep 12, 2024
71bcaed
Implement FuzzyMatch
ChinSekYi Sep 12, 2024
902d2f9
Refactor ui
ChinSekYi Sep 12, 2024
b516368
Improve code quality
ChinSekYi Sep 19, 2024
81059dc
Improve code quality
ChinSekYi Sep 19, 2024
4ecc022
Add apache commons text jar dependencies
ChinSekYi Sep 19, 2024
88dce93
Improve GUI
ChinSekYi Sep 19, 2024
1646c09
Edit GUI
ChinSekYi Sep 19, 2024
ac47cdd
Add personality
ChinSekYi Sep 19, 2024
31e5bea
Update GUI
ChinSekYi Sep 20, 2024
bedb837
Add User Guide
ChinSekYi Sep 20, 2024
72cece6
Add User Guide
ChinSekYi Sep 20, 2024
3d17899
Add User Guide
ChinSekYi Sep 20, 2024
4ed6a6c
Add User Guide
ChinSekYi Sep 20, 2024
8caaf1c
Delete files
ChinSekYi Sep 20, 2024
4716fd2
Update README.md
ChinSekYi Sep 20, 2024
0fd55a0
Delete Audio
ChinSekYi Sep 22, 2024
45b1986
Add changes in CarlyList
ChinSekYi Sep 22, 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
50 changes: 50 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
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 17
uses: actions/setup-java@v1
with:
java-version: '17'
java-package: jdk+fx

- name: Build and check with Gradle
run: ./gradlew check

- name: Perform IO redirection test (*NIX)
if: runner.os == 'Linux'
working-directory: ${{ github.workspace }}/text-ui-test
run: ./runtest.sh

- name: Perform IO redirection test (MacOS)
if: always() && runner.os == 'macOS'
working-directory: ${{ github.workspace }}/text-ui-test
run: ./runtest.sh

- name: Perform IO redirection test (Windows)
if: always() && runner.os == 'Windows'
working-directory: ${{ github.workspace }}/text-ui-test
shell: cmd
run: runtest.bat
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,14 @@ bin/

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

# Ignore all .class files (Java compiled bytecode)
# *.class

# Ignore the data directory where chatbot stores its task data
/data/

# Avoid committing binary files (*.class, *.jar, *.exe)
*.class
*.jar
*.exe
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: carly.Carly

30 changes: 8 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,10 @@
# Duke project template
[![Java CI](https://github.com/ChinSekYi/ip/actions/workflows/gradle.yml/badge.svg)](https://github.com/ChinSekYi/ip/actions/workflows/gradle.yml)

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.
# Carly project
Carly is an intuitive chatbot designed to help you manage your tasks effortlessly. With simple command-based interactions, you can easily create, mark, unmark, delete, and find tasks—all in one place. Whether you’re planning a busy day or keeping track of deadlines, Carly is here to streamline your productivity. Experience efficient task management like never before with Carly!

## Setting up in Intellij

Prerequisites: JDK 17, update Intellij to the most recent version.

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 17** (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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
## Acknowledgements
- Javadoc comments in this project were created with the assistance of ChatGPT.
- FuzzyMatch class method getBestMatch() was created with the assistance of ChatGPT.
- Images used from : https://www.behance.net/gallery/14439933/Square-Animals
- Send button sound from: https://pixabay.com/sound-effects/search/buttons/
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 '7.1.2'
}

repositories {
mavenCentral()
}

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'
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'
implementation 'org.apache.commons:commons-text:1.10.0'
}

test {
useJUnitPlatform()

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

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

application {
mainClass.set("carly.ui.Launcher")
}

shadowJar {
archiveBaseName = "carly"
archiveClassifier = null
}

run{
standardInput = System.in
}

Binary file added build/libs/carly.jar
Binary file not shown.
Loading