Skip to content
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
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
54effa8
Delete Duke.java
underscoregt Jan 28, 2026
5e12392
Update .gitignore
underscoregt Jan 28, 2026
6c6bbb4
Create Amia.java
underscoregt Jan 28, 2026
57f574c
Add /vscode to .gitignore
underscoregt Jan 28, 2026
9eab409
Add in command loop
underscoregt Jan 28, 2026
ae25774
Add tasks and update loop
underscoregt Jan 28, 2026
cde6e9d
Change "exit" command to "bye"
underscoregt Jan 28, 2026
7496047
Add task class, add mark/unmark class, rewrite printing
underscoregt Jan 28, 2026
b1fc770
fix exit code
underscoregt Jan 28, 2026
b8b4ee5
Create subclasses for Task
underscoregt Jan 28, 2026
4d37236
Fix missing bracket in Event.java
underscoregt Jan 28, 2026
7d39b54
Add ToDo, Deadline, Event commands
underscoregt Jan 28, 2026
92a6202
Create automated testing
underscoregt Jan 28, 2026
d211085
Add AmiaException and improve input validation
underscoregt Jan 28, 2026
bac672d
Add deleting of tasks
underscoregt Jan 28, 2026
abf5ff7
Add CommandType enum and refactor command handling
underscoregt Jan 28, 2026
58bfa11
Add toFileString and make Task abstract
underscoregt Feb 9, 2026
f6632e3
Add Storage for task persistence
underscoregt Feb 9, 2026
1cd1e9d
Use LocalDateTime for Deadline/Event dates
underscoregt Feb 9, 2026
252a071
Add Ui class and refactor Amia I/O
underscoregt Feb 11, 2026
3d96c7a
Change Storage to instance-based class
underscoregt Feb 11, 2026
be33c60
Add Parser utility and refactor Amia
underscoregt Feb 11, 2026
8e6c654
Add TaskList class and implement in Amia
underscoregt Feb 11, 2026
7667bec
Centralize index validation in TaskList
underscoregt Feb 11, 2026
e8a3aa1
Fix bug regarding loading and saving times
underscoregt Feb 11, 2026
54dfb34
Organize code into amia subpackages
underscoregt Feb 11, 2026
49694bc
Merge branch 'add-gradle-support'
underscoregt Feb 11, 2026
415f86c
Enable Checkstyle, Java 17, update main class
underscoregt Feb 12, 2026
e95b46a
Add checkstyle.xml and suppressions.xml
underscoregt Feb 13, 2026
dcf511a
Add unit tests for Parser and TaskList
underscoregt Feb 13, 2026
2ff9a1c
Format code & clean up whitespace
underscoregt Feb 13, 2026
74b9f00
Update build.gradle
underscoregt Feb 13, 2026
71c6358
Add Javadoc to core classes and methods
underscoregt Feb 13, 2026
a99ecee
Encapsulate Parser info fields; use getters
underscoregt Feb 13, 2026
e903087
Make Deadline.by private; refine imports
underscoregt Feb 13, 2026
8c512f4
Add 'find' command and task matching
underscoregt Feb 13, 2026
2530c48
Squashed commit of the following:
underscoregt Feb 13, 2026
1af94db
Merge branch 'branch-A-CodingStandard'
underscoregt Feb 13, 2026
07181ee
Fix command duplication when merging
underscoregt Feb 13, 2026
78c5104
Remove duplicated text during merging
underscoregt Feb 13, 2026
d44e48d
Revert "Remove duplicated text during merging"
underscoregt Feb 13, 2026
9810e6f
Revert "Fix command duplication when merging"
underscoregt Feb 13, 2026
e8e06ec
Fix merge errors, add Javadoc to findTask
underscoregt Feb 13, 2026
5aef3a1
Introduce Command classes and refactor Amia
underscoregt Feb 16, 2026
fab117e
Add JavaFX GUI components and resources
underscoregt Feb 16, 2026
817a83f
Use JAR-relative default storage path
underscoregt Feb 16, 2026
cff716a
Extract command parsing into Parser.parse
underscoregt Feb 16, 2026
eabaa4c
Refactor Amia constructors and extract loadTasks
underscoregt Feb 16, 2026
32f3e69
Refactor parser and task index naming
underscoregt Feb 16, 2026
f0fe861
Match command by first word instead of prefix
underscoregt Feb 16, 2026
f5327fd
Split AddCommand into specific add commands
underscoregt Feb 16, 2026
1228a87
Use try-with-resources for BufferedWriter
underscoregt Feb 16, 2026
601f351
Skip malformed lines when loading storage
underscoregt Feb 16, 2026
544397f
Centralize error messages into ErrorMessages
underscoregt Feb 16, 2026
7344d8f
Wrap INVALID_DEADLINE_FORMAT string
underscoregt Feb 16, 2026
50d219b
Return defensive copy in TaskList.toArrayList
underscoregt Feb 16, 2026
e1e1694
Refactor command handling and CLI loop
underscoregt Feb 16, 2026
c7b7077
Delegate welcome display to ui.showWelcome()
underscoregt Feb 16, 2026
0e9456c
Refactor task parsing into helper method
underscoregt Feb 16, 2026
c0f47ee
Extract add-task message into Ui
underscoregt Feb 16, 2026
ea27a7e
Centralize MAX_TASKS constant in TaskList
underscoregt Feb 16, 2026
7d8153c
AddCommand base class; refactor add commands
underscoregt Feb 16, 2026
588d34a
Add Ui.formatTaskCountMessage helper
underscoregt Feb 18, 2026
87c043b
Merge pull request #2 from underscoregt/branch-A-CodeQuality
underscoregt Feb 18, 2026
23c424d
Add assertion for null task from createTask
underscoregt Feb 18, 2026
ad41631
Add null-check assertions across codebase
underscoregt Feb 18, 2026
bdd2149
Merge pull request #4 from underscoregt/branch-A-Assertions
underscoregt Feb 18, 2026
e9856e9
Support multi-index delete/mark/unmark
underscoregt Feb 18, 2026
11a132f
Revert "Add 'find' command and task matching"
underscoregt Feb 19, 2026
2ef04c5
Merge branch 'branch-Level-9'
underscoregt Feb 19, 2026
ff500e9
Add AI.md describing GitHub Copilot usage
underscoregt Feb 19, 2026
07f3b52
Set application window title to 'Amia'
underscoregt Feb 19, 2026
c6c2abb
Revise docs: Amia User Guide and UI image
underscoregt Feb 19, 2026
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: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,8 @@ bin/

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

*.class
/.vscode/

data/
17 changes: 17 additions & 0 deletions AI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# AI Tool Used

- GitHub Copilot

# Usage

- Used for JavaDoc documentation. Wrote two down manually, and used as example for Copilot to follow.
- Used to generate commit messages, with manual editing where required for brevity.
- Used to create basic assertions for `A-Assertions`.
- Used to check for code quality issues, using the CS2103T website as a guide.
- Used to merge JavaFX Tutorial, with manual coding first done to bridge the gap, and Copilot used to change variable names, function names etc.

# Observations

- Copilot can be very effective at widescale things, as long as given sufficient examples to work on; however without such examples, the format or style of the code may be undesired. Specifying the scope is also important, as without it, the AI may try to edit the whole code base vs just a certain subset of files.
- Without sufficient context, Copilot will miss out on small details, e.g. when writing commits/PRs. Especially when there are large diffs, Copilot will try to summarize all the changes made, but may miss out on small things that are extremely key to the change being made.
- Overall, a lot of time is saved from manually writing code/documentation. A decent amount of issues were also brought up regarding the structure, that I did not know about/would not have noticed.
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'
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

checkstyle {
toolVersion = '11.0.0'
}

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'
}

test {
useJUnitPlatform()

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

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

application {
mainClass.set("amia.Launcher")
}

shadowJar {
archiveBaseName = "amia"
archiveClassifier = null
}

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