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

[Pontakorn Prasertsuk] iP #25

Open
wants to merge 60 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
0541256
ignore .class file
peppapighs Aug 12, 2022
e74f591
Level-1: greeting text & reading commands
peppapighs Aug 12, 2022
94c4aef
read input as line
peppapighs Aug 12, 2022
5e21c50
Level-2: add items to the list
peppapighs Aug 12, 2022
d95c6ca
add task class with status
peppapighs Aug 12, 2022
6f3cc18
Level-3: mark task as done and not done
peppapighs Aug 12, 2022
ea9ea5c
split input into arguments
peppapighs Aug 12, 2022
562ba72
add todo & deadline tasks
peppapighs Aug 12, 2022
89d72a0
Level-4: add event task
peppapighs Aug 12, 2022
d6a81e7
A-TextUiTesting: add test case
peppapighs Aug 12, 2022
6b87e2a
Level-5: handle possible errors
peppapighs Aug 12, 2022
f932a2a
Level-6: delete task
peppapighs Aug 12, 2022
ddaa77c
Format code with google-java-style
peppapighs Aug 19, 2022
00bcfb9
Refactor bot main logic
peppapighs Aug 19, 2022
ba03ba8
Use regex for splitting command
peppapighs Aug 20, 2022
41d913b
Add save & load tasks from file
peppapighs Aug 20, 2022
df38ec4
Format date with LocalDate
peppapighs Aug 20, 2022
d636831
Merge branch 'branch-Level-8'
peppapighs Aug 20, 2022
fe2a5f4
Extract & package classes
peppapighs Aug 20, 2022
0f776df
Merge branch 'add-gradle-support' of https://github.com/nus-cs2103-AY…
peppapighs Aug 20, 2022
f2e4507
Add Command classes for executing commands
peppapighs Aug 21, 2022
882e862
Refactor try-catch in Parser
peppapighs Aug 21, 2022
bcffb7f
Rename exception package to common package
peppapighs Aug 21, 2022
c234e5b
Add encode test for Task
peppapighs Aug 21, 2022
bd8637b
Fix task decode bug
peppapighs Aug 21, 2022
b30c497
Show numeric order for task list
peppapighs Aug 21, 2022
6911b06
Add TaskList & Parser tests
peppapighs Aug 21, 2022
da8202e
Configure gradle main class name
peppapighs Aug 21, 2022
68e5d19
Add Javadoc
peppapighs Aug 21, 2022
153e7de
Add find command
peppapighs Aug 21, 2022
1451003
Merge branch 'branch-Level-9'
peppapighs Aug 21, 2022
26b5bc3
Merge branch 'branch-A-JavaDoc'
peppapighs Aug 21, 2022
86b2268
Add Javadoc for FindCommand
peppapighs Aug 21, 2022
5f5e2bf
Format code to follow coding standard
peppapighs Aug 23, 2022
454229a
Reformat the coding style
peppapighs Aug 23, 2022
cfbf965
Add GUI for chatbot
peppapighs Aug 28, 2022
f176a36
Merge branch 'branch-Level-10'
peppapighs Aug 28, 2022
b39876c
Add JavaDoc for GUI classes
peppapighs Aug 31, 2022
fe8b33b
Add access modifiers for Task
peppapighs Sep 1, 2022
ea85b2d
Increase consistency with blank line before return
peppapighs Sep 4, 2022
216e235
Merge pull request #1 from peppapighs/branch-A-CodeQuality
peppapighs Sep 4, 2022
7804190
Add blank line before return statements
peppapighs Sep 4, 2022
9f5440c
Add assertion for file creation
peppapighs Sep 4, 2022
0852184
Merge pull request #2 from peppapighs/branch-A-Assertions
peppapighs Sep 4, 2022
401c5e2
Add gradle CI
peppapighs Sep 4, 2022
abfdfa0
Add reminder feature
Sep 4, 2022
0a3b9d9
Merge branch 'branch-B-Reminders'
Sep 4, 2022
d27c760
Add sort feature
Sep 4, 2022
1b7d5c0
Merge branch 'branch-C-Sort'
Sep 4, 2022
6d14e66
Save task list after being sorted
Sep 4, 2022
ccfe0af
Merge branch 'branch-C-Sort'
Sep 4, 2022
3136a41
Add notes feature
Sep 4, 2022
29cc699
Merge branch 'branch-D-Notes'
Sep 4, 2022
188fa5a
Add launcher class for GUI app
peppapighs Sep 14, 2022
5ec7f02
Add user guide for the chatbot
peppapighs Sep 14, 2022
7d84e9c
Add window title for the GUI app
peppapighs Sep 14, 2022
d583e91
Add product screenshot
peppapighs Sep 14, 2022
b3323e9
Improve code quality from soc-se-script
peppapighs Sep 14, 2022
35105a3
Fix build.gradle for cross-platform build
peppapighs Sep 20, 2022
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
34 changes: 34 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
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 11
uses: actions/setup-java@v1
with:
java-version: '11'
java-package: jdk+fx

- name: Build and check with Gradle
run: ./gradlew check
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
/out/
/*.iml

# vscode files
/.vscode/

# Gradle build files
/.gradle/
/build/
Expand All @@ -14,4 +17,9 @@ src/main/resources/docs/
bin/

/text-ui-test/ACTUAL.txt
/text-ui-test/data/
text-ui-test/EXPECTED-UNIX.TXT
/data/
/notes/

*.class
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 '5.1.0'
}

repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

String javaFxVersion = '11'

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 {
mainClassName = "duke.Launcher"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

run {
standardInput = System.in
}
230 changes: 219 additions & 11 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,237 @@
# User Guide

## Features
## Features

### Feature-ABC
### Manage tasks

Description of the feature.
Adds, deletes, marks as done, and finds tasks in the task list.

### Feature-XYZ
Tasks are automatically saved to a file on your computer.

Description of the feature.
### Manage notes

Adds and deletes notes in the list of saved text files

## Usage

### `Keyword` - Describe action
### `todo` - Adding a todo task

Adds a todo task to the task list.

Example of usage:

`todo TASK_DESCRIPTION`

Expected outcome:

A single todo task should be added into the list with `TASK_DESCRIPTION` as the description.

```
Task has been added!: [T][] TASK_DESCRIPTION
Total tasks: NUMBER_OF_TOTAL_TASKS
```

### `deadline` - Adding a deadline task

Adds a deadline task to the task list.

Example of usage:

`todo TASK_DESCRIPTION /by DATE`

Expected outcome:

A single deadline task should be added into the list with `TASK_DESCRIPTION` as the description and `DATE` as the deadline.

```
Task has been added!: [D][] TASK_DESCRIPTION (by: DATE)
Total tasks: NUMBER_OF_TOTAL_TASKS
```

### `event` - Adding a event task

Adds a event task to the task list.

Example of usage:

`event TASK_DESCRIPTION /at DATE`

Expected outcome:

A single event task should be added into the list with `TASK_DESCRIPTION` as the description and `DATE` as the date.

```
Task has been added!: [E][] TASK_DESCRIPTION (at: DATE)
Total tasks: NUMBER_OF_TOTAL_TASKS
```

### `list` - Listing all tasks

Lists all tasks in the task list.

Example of usage:

`list`

Expected outcome:

All tasks in the task list should be listed.

```
1) [T][] TASK_DESCRIPTION
2) [D][] TASK_DESCRIPTION (by: DATE)
3) [E][] TASK_DESCRIPTION (at: DATE)
...
```

### `reminder` - Listing all tasks with deadlines that are not done

Lists all tasks with deadlines that are not done in the task list sorted by their deadlines.

Example of usage:

`reminder`

Expected outcome:

All tasks with deadlines that are not done in the task list should be listed.

```
1) [D][] TASK_DESCRIPTION (by: DATE)
...
```

### `sort` - Sorting all tasks

Lexicographically sorts all tasks in the task list by their descriptions.

Example of usage:

`sort`

Expected outcome:

All tasks in the task list should be sorted.

```
1) [T][] TASK_DESCRIPTION
2) [D][] TASK_DESCRIPTION (by: DATE)
3) [E][] TASK_DESCRIPTION (at: DATE)
...
```

### `find` - Finding tasks

Finds all tasks in the task list that contain the keyword.

Example of usage:

`find KEYWORD`

Expected outcome:

All tasks in the task list that contain `KEYWORD` in their descriptions should be listed.

```
1) [T][] TASK_DESCRIPTION
2) [D][] TASK_DESCRIPTION (by: DATE)
3) [E][] TASK_DESCRIPTION (at: DATE)
...
```

### `mark` - Marking a task as done

Marks a task as done in the task list.

Example of usage:

`mark TASK_NUMBER`

Expected outcome:

The task with `TASK_NUMBER` as the index should be marked as done.

```
Task TASK_NUMBER is marked as done!
```

### `unmark` - Marking a task as not done

Marks a task as not done in the task list.

Example of usage:

`unmark TASK_NUMBER`

Expected outcome:

The task with `TASK_NUMBER` as the index should be marked as not done.

```
Task TASK_NUMBER is marked as not done!
```

### `delete` - Deleting a task

Deletes a task from the task list.

Example of usage:

`delete TASK_NUMBER`

Expected outcome:

The task with `TASK_NUMBER` as the index should be deleted.

```
Task TASK_NUMBER is deleted!
```

### `add_note` - Adding a note

Adds a note to the list of saved text files.

Example of usage:

`add_note NOTE_NAME /note NOTE_CONTENT`

Expected outcome:

A single note should be added into the list with `NOTE_NAME` as the name and `NOTE_CONTENT` as the content.

```
Note added.
```

### `load_note` - Loading a note

Loads a note from the list of saved text files.

Example of usage:

`load_note NOTE_NAME`

Expected outcome:

The note with `NOTE_NAME` as the name should be loaded.

```
Here is your note:
NOTE_CONTENT
```

### `delete_note` - Deleting a note

Describe the action and its outcome.
Deletes a note from the list of saved text files.

Example of usage:
Example of usage:

`keyword (optional arguments)`
`delete_note NOTE_NAME`

Expected outcome:

Description of the outcome.
The note with `NOTE_NAME` as the name should be deleted.

```
expected output
Note deleted successfully!
```
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.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading