Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 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
61a6f48
add Level 0
Jan 29, 2025
fe650e9
Add Echo
Jan 30, 2025
211a6a3
Add list and add ability
Jan 30, 2025
3eff652
Add a Task class and Mark as Done feature
Jan 30, 2025
88572fb
Add Todo, Event and Deadline class
Jan 30, 2025
5645300
Add Automated Text UI Testing
Jan 30, 2025
5933032
Add exception to handle errors
Jan 30, 2025
e75f75a
Add Delete feature
Jan 30, 2025
f790b26
Add the ability to save the tasks in the hard disk automatically
Feb 5, 2025
76abfed
Try merge test
Feb 5, 2025
97b0f7e
Merge branch 'master' into branch-Level-7
Feb 5, 2025
4fcc72d
Fix merge problem
Feb 5, 2025
2b76a89
Add dates and times
Feb 6, 2025
8c237df
Test a
Feb 6, 2025
7d974bc
Test b
Feb 6, 2025
ab9c0a8
Test c
Feb 6, 2025
2b6ef87
Merge branch 'master' of https://github.com/Xzh119/ip
Feb 6, 2025
cc00b02
Make the code more OOP
Feb 6, 2025
d6bb590
Divide classes into packages
Feb 6, 2025
caeb8bb
Merge branch test
Feb 7, 2025
2c302ba
Merge test 2
Feb 7, 2025
072ecca
Merge test 3
Feb 7, 2025
06843ed
Merge test 4
Feb 7, 2025
cbec99d
Merge branch 'branch-Test-C'
Feb 7, 2025
1cc4f07
Add comment for Parser class
Feb 13, 2025
1e4f6c8
Merge branch 'add-gradle-support'
Feb 14, 2025
120de94
Set up gradle
Feb 14, 2025
1691d60
Add test for Ui and Parser
Feb 14, 2025
977322d
Package a jar file and add a new release
Feb 17, 2025
ef154c3
Add JavaDoc comments
Feb 18, 2025
a9e2083
Tweak the code to comply with a coding standard
Feb 18, 2025
ef0e7b9
Add the ability to find tasks
Feb 18, 2025
cfc7a4b
Merge branch 'branch-A-JavaDoc'
Feb 18, 2025
0739ecc
Merge branch 'branch-A-CodingStandard'
Feb 18, 2025
75cf833
Merge branches and fix conflicts
Feb 18, 2025
f95b4ec
Add a GUI to the chatbot
Feb 20, 2025
1067151
Merge branch 'branch-Level-10'
Feb 20, 2025
2574e02
Fix potential conflicts
Feb 20, 2025
b6e44f0
Change jar name
Feb 20, 2025
39340d5
Add assertions to DialogBox and Main
Feb 20, 2025
b1ee4bf
Add assertions to Parser for input validation
Feb 20, 2025
3abb3fd
Improve Code Quality
Feb 20, 2025
c970453
Merge pull request #2 from Xzh119/branch-A-Assertions
Xzh119 Feb 20, 2025
fa88352
Merge branch 'master' into branch-A-CodeQuality
Feb 20, 2025
bcc3ecc
Merge pull request #3 from Xzh119/branch-A-CodeQuality
Xzh119 Feb 20, 2025
b4de765
Revert "Improve Code Quality"
Xzh119 Feb 20, 2025
49e72bd
Merge pull request #4 from Xzh119/revert-3-branch-A-CodeQuality
Xzh119 Feb 20, 2025
36e723c
Merge pull request #5 from Xzh119/branch-A-CodeQuality
Xzh119 Feb 20, 2025
cf5bc8d
Friendlier syntax for commands
Feb 20, 2025
285637e
Merge branch 'branch-C-FriendlierSyntax'
Feb 20, 2025
93dedfe
Fix the bug of a redundant line generated by list command
Feb 20, 2025
d248e54
Add Ui picture
Feb 20, 2025
cc6b09d
Add a User Guide
Feb 20, 2025
4982e51
Add comments for Task
Feb 21, 2025
13a7b0a
Add a new exception
Feb 21, 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
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: samantha.main.Samantha

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("main.Launcher")
}

shadowJar {
archiveBaseName = "samantha"
archiveClassifier = null
}

run{
standardInput = System.in
}
19 changes: 19 additions & 0 deletions data/samantha.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
T | 1 | read book
T | 1 | write book
T | 1 | sleep
T | 0 | play
T | 0 | add task 7
T | 1 | ass
T | 1 | play football
E | 1 | project meeting | 2pm | 4pm
E | 0 | project meeting | 2pm | 4pm
D | 0 | return love | 2033-10-15
D | 0 | return book | 2025-09-15
D | 0 | finish 2103T | 2025-02-21
T | 0 | stay hungry
T | 0 | like
E | 0 | stay foolish | 7pm | 9pm
E | 0 | be foolish | 7pm | 9pm
D | 0 | ip | 2025-02-21
D | 0 | iptasks | 2025-02-21
D | 0 | return book | 2025-02-01
143 changes: 129 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,145 @@
# Duke User Guide
# Samantha User Guide

// Update the title above to match the actual product name
![UI Example](Ui.png)

// Product screenshot goes here

// Product intro goes here
**This is Samantha, a Java-based chatBot to manage your personal tasks.**

## Adding deadlines
## 1. Adding deadlines

// Describe the action and its outcome.
Add a deadline task by its description and due date.

// Give examples of usage
Example: `deadline ip /by 2025-02-21`

Example: `keyword (optional arguments)`
Expected output:
```
____________________________________________________________
Got it. I've added this task:
[D][ ] ip (by: Feb 21 2025)
Now you have 19 tasks in the list.
____________________________________________________________
```

## 2. Adding todos

Add a todo task by its description.

Example: `todo stay hungry`

```
____________________________________________________________
Got it. I've added this task:
[T][ ] stay hungry
Now you have 15 tasks in the list.
____________________________________________________________
```

## 3. Adding events

Add a event task by its description and time period.

// A description of the expected outcome goes here
Example: `event stay foolish /from 7pm /to 9pm`

Expected output:
```
expected output
____________________________________________________________
Got it. I've added this task:
[E][ ] stay foolish (from: 7pm to: 9pm)
Now you have 17 tasks in the list.
____________________________________________________________
```

## Feature ABC
## 4. Marking tasks as done

Mark a task as done.

Example: `mark 7`

Expected output:
```
____________________________________________________________
Nice! I've marked this task as done:
[T][X] add task 7
____________________________________________________________
```

## 5. Marking tasks as undone

Mark a task as done.

Example: `unmark 10`

Expected output:
```
____________________________________________________________
OK, I've marked this task as not done yet:
[E][ ] project meeting (from: 2pm to: 4pm)
____________________________________________________________
```

## 6. Listing tasks

List all the task so far.

Example: `list`

Expected output:
```
____________________________________________________________
Here are the tasks in your list:
1. [T][X] play
2. [D][ ] return book (by: Dec 12 2022)
3. [T][ ] read book
4. [T][X] write book
5. [T][ ] sleep
6. [T][ ] play
7. [T][X] add task 7
8. [T][X] ass
9. [T][X] play football
10. [E][ ] project meeting (from: 2pm to: 4pm)
11. [E][ ] project meeting (from: 2pm to: 4pm)
12. [D][ ] return love (by: Oct 15 2033)
13. [D][ ] return book (by: Sep 15 2025)
14. [D][ ] finish 2103T (by: Feb 21 2025)
____________________________________________________________
```

## 7. Deleting tasks

Delete the task according to its index.

Example: `delete 1`

Expected output:
```
____________________________________________________________
OK. I've removed this task:
[T][X] play
Now you have 19 tasks in the list.
____________________________________________________________
```

## 8. Finding tasks

Find the task according to its information.

Example: `find stay`

Expected output:
```
____________________________________________________________
Here are the matching tasks in your list:
1. [T][ ] stay hungry
2. [E][ ] stay foolish (from: 7pm to: 9pm)
____________________________________________________________
```

// Feature details
## 9. Special feature

**1. Friendlier syntax for commands.**

## Feature XYZ
Examples: `l for list, m for mark, u for unmark,
d for delete, t for todo, de for deadline,
e for event, f for find`

// Feature details
**2. Type 'bye' to exit.**
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