Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 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
9024653
Progress until Level-8
inzk0518 Sep 7, 2025
2c049e9
Added packages
inzk0518 Sep 19, 2025
a92ac1e
Merge branch 'add-gradle-support'
inzk0518 Sep 19, 2025
8d02272
Added JUnit tests and fix some issue
inzk0518 Sep 19, 2025
039c602
fixed wrong index binding issue for mark, unmark and delete command
inzk0518 Sep 20, 2025
bad57a7
did some modification
inzk0518 Sep 20, 2025
a1152fe
Added JavaDoc comments
inzk0518 Sep 20, 2025
922e820
Follow the Coding Standard
inzk0518 Sep 21, 2025
4d304a1
Add JavaDoc comments
inzk0518 Sep 20, 2025
d3ce9dc
Add find command
inzk0518 Sep 21, 2025
0961afa
Merge branch 'branch-A-JavaDoc'
inzk0518 Sep 21, 2025
ba8ecb7
Merge branch 'branch-A-CodingStandard'
inzk0518 Sep 21, 2025
ad7f57d
Merge branch 'branch-Level-9'
inzk0518 Sep 21, 2025
1629388
nothing but for branch-Level-7
inzk0518 Sep 21, 2025
fa8079d
standardize code to the code standard
inzk0518 Sep 21, 2025
f60fb34
Merge branch 'branch-Level-7'
inzk0518 Sep 21, 2025
ae6160b
Merge branch 'branch-Level-8'
inzk0518 Sep 21, 2025
cd31aea
Add GUI
inzk0518 Sep 25, 2025
f159ebf
Merge branch 'branch-Level-10'
inzk0518 Sep 25, 2025
b8276f2
Add Assertion to Parser.parse(String) method
inzk0518 Sep 26, 2025
dfcb193
Improve code quality
inzk0518 Sep 26, 2025
2f78d2e
Merge pull request #1 from inzk0518/branch-A-Assertions
inzk0518 Sep 27, 2025
4c36b6b
Merge pull request #2 from inzk0518/branch-A-CodeQuality
inzk0518 Sep 27, 2025
6eb0e5e
Add edit command
inzk0518 Sep 27, 2025
2140383
Add edit command
inzk0518 Sep 27, 2025
d876a36
Merge branch 'branch-A-Extension'
inzk0518 Sep 27, 2025
d4ddc77
Add comment on AI use
inzk0518 Sep 27, 2025
8cce4fd
Add Ui.png
inzk0518 Sep 27, 2025
bdfc34b
Add User Guide
inzk0518 Sep 28, 2025
f21c1a8
Add User Guide
inzk0518 Sep 28, 2025
86ea0b0
Add more JavaDoc comments
inzk0518 Sep 28, 2025
e8101d6
Add missing Welcome message and fix some line to fit Coding Standard
inzk0518 Sep 28, 2025
6b0c348
Fix print null message behind bot replies
inzk0518 Sep 28, 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 {
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'

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

test {
useJUnitPlatform()

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

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

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

shadowJar {
archiveBaseName = "faith"
archiveClassifier = null
}

run{
standardInput = System.in
}
9 changes: 9 additions & 0 deletions data/tasks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
T | 1 | read book
T | 0 | return book
T | 0 | shit
D | 0 | return book | 21/5/2025 1600
D | 0 | return book | 20/5/2025
T | 0 | poop
D | 0 | readbook | 10/9/2024
T | 1 | read book
D | 1 | read book | 10/9/2025
158 changes: 142 additions & 16 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,156 @@
# Duke User Guide
# User Guide for Faith

// Update the title above to match the actual product name
Welcome to **Faith**, your personal task manager chatbot.
Faith helps you keep track of tasks, deadlines, and events — all from a simple chat interface.

// Product screenshot goes here
![UI](Ui.png)

// Product intro goes here
---

## Adding deadlines
## Quick Start

// Describe the action and its outcome.
1. **Launch the app**
- Run the JAR file with `java -jar faith.jar`.
- A GUI window will open.

// Give examples of usage
2. **Type a command** in the text field and hit **Enter** or click **Send**.

Example: `keyword (optional arguments)`
3. **Faith will respond** in the chat window.

// A description of the expected outcome goes here
4. **Exit the app** using the `bye` command or close the chat window. Your tasks are saved automatically.

```
expected output
```
---

## Feature ABC
## Features

// Feature details
### 1. Viewing all tasks: `list`
Shows all the tasks in your list.

**Example:**
list

## Feature XYZ
---

// Feature details
### 2. Adding a todo: `todo`
Adds a task without a date.

**Format:**
todo DESCRIPTION

**Example:**
todo read book

---

### 3. Adding a deadline: `deadline`
Adds a task with a due date (and optionally time).

**Format:**
deadline DESCRIPTION /by DATE [TIME]

- DATE can be in formats like `20/5/2025` or `2025-12-02`.
- TIME is optional, e.g., `1600`.

**Example:**
deadline return book /by 20/5/2025 1800

---

### 4. Adding an event: `event`
Adds a task with a start and end time.

**Format:**
event DESCRIPTION /from DATE [TIME] /to DATE [TIME]

**Example:**
event team meeting /from 20/5/2025 1400 /to 20/5/2025 1600

---

### 5. Marking/unmarking tasks: `mark` / `unmark`
Marks a task as done or not done.

**Format:**
mark INDEX
unmark INDEX

**Example:**
mark 2
unmark 4

---

### 6. Deleting tasks: `delete`
Removes a task from the list.

**Format:**
delete INDEX

**Example:**
delete 3

---

### 7. Finding tasks: `find`
Searches for tasks by keyword.

**Format:**
find KEYWORD

**Example:**
find book

---

### 8. Editing tasks: `edit`
Update a task without deleting it first. You can change only **one field at a time**.

**Formats:**
edit INDEX /desc NEW_DESCRIPTION
edit INDEX /by NEW_DATE [TIME] (for deadlines)
edit INDEX /from NEW_DATE [TIME] (for events)
edit INDEX /to NEW_DATE [TIME] (for events)

**Examples:**
edit 2 /desc read another book
edit 3 /by 21/5/2025 1800
edit 4 /to 1/6/2025 1030

---

### 9. Exiting: `bye`
Exits the app. Your tasks are saved automatically.

**Example:**
bye

---

## FAQ

**Q: Where are my tasks saved?**
A: In the `data/tasks.txt` file in the same folder as the app. They will load automatically next time you run Faith.

**Q: What happens if I type the wrong command?**
A: Faith will tell you what went wrong and show the correct format.

---

## Command Summary

| Command | Format (examples) |
|----------|---------------------------------------------------------|
| list | `list` |
| todo | `todo read book` |
| deadline | `deadline return book /by 20/5/2025 1800` |
| event | `event meeting /from 20/5/2025 1400 /to 20/5/2025 1600` |
| mark | `mark 2` |
| unmark | `unmark 2` |
| delete | `delete 3` |
| find | `find book` |
| edit | `edit 2 desc/ read another book` |
| bye | `bye` |

---

*End of User Guide*
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