Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 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
85bbeba
Rename, Greet, Exit
ais555 Aug 26, 2025
b018146
Echo
ais555 Aug 26, 2025
f289915
Add the "Add" and "List" features
ais555 Aug 26, 2025
87b2c2c
Add "Mark as Done"
ais555 Aug 26, 2025
339e6a7
Improve the toString method of Task
ais555 Aug 27, 2025
c08f19a
Implement Todos, Deadlines and Events
ais555 Aug 27, 2025
ccfa22d
Implement automated text UI testing
ais555 Aug 28, 2025
ac7b876
Implement basic error handling
ais555 Aug 28, 2025
d83b392
Implement deleting tasks
ais555 Aug 28, 2025
9dd864c
Implement task saving and loading
ais555 Sep 3, 2025
4aca85f
Merge branch 'branch-Level-7' onto master
ais555 Sep 3, 2025
86ba608
Add date parsing and formatting
ais555 Sep 3, 2025
2dc9bf4
Merge branch 'branch-Level-8' onto master
ais555 Sep 3, 2025
1c55295
Fix warnings and style
ais555 Sep 3, 2025
edf32cc
Extract Storage class
ais555 Sep 3, 2025
e15b8af
Extract JohnChatter constructor, run() method
ais555 Sep 3, 2025
86dc1fa
Extract Ui class
ais555 Sep 3, 2025
fcfc1cd
Extract Parser class
ais555 Sep 3, 2025
6a5fcc5
Extract TaskList class
ais555 Sep 3, 2025
a50f239
Merge branch 'branch-A-MoreOOP' onto master
ais555 Sep 3, 2025
d9cdac1
Move classes into johnchatter package
ais555 Sep 4, 2025
a95f248
Merge branch 'add-gradle-support'
ais555 Sep 4, 2025
cee1adf
Implement validity check on parsed task indexes
ais555 Sep 4, 2025
e676dc6
Add ParserTest, TaskListTest
ais555 Sep 4, 2025
5faa146
Edit mainClass and archiveBaseName in build.gradle
ais555 Sep 4, 2025
6da2871
Add JavaDoc comments
ais555 Sep 4, 2025
f942e8b
Tweak code to comply with standard
ais555 Sep 4, 2025
90f98e5
Implement finding tasks with keyword
ais555 Sep 4, 2025
68793d3
Merge branch 'branch-A-JavaDoc'
ais555 Sep 4, 2025
29afb6a
Merge branch 'branch-A-CodingStandard'
ais555 Sep 4, 2025
844da18
Merge branch 'branch-Level-9'
ais555 Sep 4, 2025
3f0d24f
Implement simple GUI
ais555 Sep 11, 2025
f0151bb
Merge branch 'branch-level-10'
ais555 Sep 11, 2025
de8fc98
Add assertions
ais555 Sep 18, 2025
ef841ee
Improve abstraction in Parser
ais555 Sep 18, 2025
0b34754
Avoid magic Strings
ais555 Sep 18, 2025
780d5c2
Reduce nesting of happy path
ais555 Sep 18, 2025
63e878b
Improve commenting
ais555 Sep 18, 2025
bdbecdf
Merge pull request #2 from ais555/branch-A-Assertions
ais555 Sep 18, 2025
52e21a8
Merge branch 'master' into branch-A-CodeQuality
ais555 Sep 18, 2025
e8c69e8
Merge pull request #3 from ais555/branch-A-CodeQuality
ais555 Sep 18, 2025
f3ee869
Implement tagging and better search
ais555 Sep 21, 2025
dfcb5dd
Merge branch 'branch-BCD-Extension'
ais555 Sep 21, 2025
0daa6b4
Change UI icons
ais555 Sep 21, 2025
14d9316
Fix bug with writing data
ais555 Sep 21, 2025
b5af42a
Write more tests for ParserTest
ais555 Sep 21, 2025
9f7cbe8
Write more tests for TaskList
ais555 Sep 21, 2025
5e32796
Set up product website
ais555 Sep 22, 2025
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
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'
}

test {
useJUnitPlatform()

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

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

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

shadowJar {
archiveBaseName = "johnchatter"
archiveClassifier = null
}

run{
standardInput = System.in
}
139 changes: 123 additions & 16 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,137 @@
# Duke User Guide
# john chatter - User Guide

// Update the title above to match the actual product name
welcome to john chatter, a chatbot that helps you manage your various tasks

// Product screenshot goes here
## Adding basic todos

// Product intro goes here
Adds a todo to your list.

## Adding deadlines
Format: `todo NAME`

// Describe the action and its outcome.
Examples:

// Give examples of usage
`todo cs2103t project`

Example: `keyword (optional arguments)`
`todo cook dinner`

// A description of the expected outcome goes here
## Adding tasks with a deadline

```
expected output
```
Adds a task with a deadline to your list.

## Feature ABC
Format: `deadline NAME /by WHEN`

// Feature details
Examples:

`deadline ma1522 homework /by monday`

## Feature XYZ
`deadline return books /by 22-9-2025`


## Adding events with a start and end time

Adds a task with a deadline to your list.

Format: `event NAME /from START /to END`

Examples:

`event exams /from 6-10-2025 /to 11-10-2025`

`event recess week /from 22-9-2025 /to 28-9-2025`

## View your list of tasks

Displays a list of your tasks with their relevant info.

Format: `list`

## Delete

Removes a task from your list by its index.

Format: `delete INDEX`

Examples:

`delete 1`

`delete 2`

## Mark complete

Marks a task as complete using the index of the task on the list.

Format: `mark INDEX`

Examples:

`mark 1`

`mark 2`

## Mark incomplete

Marks a task as incomplete using the index of the task on the list.

Format: `unmark INDEX`

Examples:

`unmark 1`

`unmark 2`

## Tag

Adds a tag to categorise a task. Each task can have multiple tags.

Format: `tag INDEX TAG_NAME`

Examples:

`tag 1 school`

`tag 1 important`

`tag 2 fun`

## Untag

Removes an existing tag from a task.

Format: `untag INDEX TAG_NAME`

Examples:

`untag 1 school`

`untag 2 fun`

## Find by name

Display a filtered version of your list with tasks with names that match the keywords.

If more than one keyword is given, tasks must match ALL keywords.

Format: `find KEYWORD OPTIONAL_KEYWORD OPTIONAL_KEYWORD ...`

Examples:

`find homework`

`find math homework`

## Find by tag

Display a filtered version of your list with tasks that have the specified tag(s).

If more than one tag is given, tasks must match ALL tags.

Format: `findtag TAG OPTIONAL_TAG OPTIONAL_TAG ...`

Examples:

`findtag school`

`findtag school impt`

// Feature details
Binary file added docs/Ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading