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

[Agamjyot] IP #508

Open
wants to merge 81 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
57e2341
first commit
garfield-oo7 Aug 18, 2022
2b23dc8
Add Chatbot.java and modify Duke.java
garfield-oo7 Aug 18, 2022
c55c8ed
Duke Level-2: Add List
Aug 18, 2022
0660f25
Level-3: Mark as Done
garfield-oo7 Aug 19, 2022
9c8a970
Level-4 ToDos, Events, Deadlines
garfield-oo7 Aug 19, 2022
f257b8b
A-TextUiTesting
garfield-oo7 Aug 19, 2022
0ccc628
Level-6: Delete
garfield-oo7 Aug 19, 2022
bf66b62
Add ChatBot Exception class
garfield-oo7 Aug 19, 2022
4fe9d41
Level5: Handle Errors
garfield-oo7 Aug 19, 2022
3818960
Add Storage.java to save commands
garfield-oo7 Aug 29, 2022
57d85ac
Level-7 Save
garfield-oo7 Aug 29, 2022
f53dcee
Level-8 Date and Times
garfield-oo7 Aug 29, 2022
3afdcfa
Merge branch 'branch-Level-7'
garfield-oo7 Aug 29, 2022
384d581
Merge branch 'branch-Level-8'
garfield-oo7 Aug 29, 2022
8d6ddd7
Resolve conflict
garfield-oo7 Aug 30, 2022
c1bf358
Add ExecuteCommand() method
garfield-oo7 Sep 18, 2022
accb5a3
Add Ui.java
garfield-oo7 Sep 19, 2022
d9f7d38
Add TaskList.java
garfield-oo7 Sep 19, 2022
4523685
Extract out Command
garfield-oo7 Sep 19, 2022
5df069b
Rename ChatBotException to DukeException.java
garfield-oo7 Sep 19, 2022
9dd15c1
extract out Command even more
garfield-oo7 Sep 19, 2022
7bce990
Add Parser.java
garfield-oo7 Sep 19, 2022
49e2710
Make change Task.java subclass
garfield-oo7 Sep 19, 2022
88b482d
Finish A More OOP
garfield-oo7 Sep 19, 2022
4384133
Finished A-Packages
garfield-oo7 Sep 19, 2022
442ea6c
Add FindCommand.java
garfield-oo7 Sep 19, 2022
056eb0a
Follow coding standard
garfield-oo7 Sep 19, 2022
42706f7
Add JavaDocs
garfield-oo7 Sep 19, 2022
9c28a7c
Resolve conflict
garfield-oo7 Sep 19, 2022
51b2288
Merge branch 'A-JavaDoc'
garfield-oo7 Sep 19, 2022
4f3d6e9
Add gradle
garfield-oo7 Sep 21, 2022
c0827d8
Add JUnit Test
garfield-oo7 Sep 21, 2022
7b9bab4
Update build.gradle
garfield-oo7 Sep 22, 2022
dbf16c7
Add jar file
garfield-oo7 Sep 22, 2022
59b8e93
Update README.md
garfield-oo7 Sep 22, 2022
b3af198
Update User Guide
garfield-oo7 Sep 22, 2022
8a18dfb
Update user guide
garfield-oo7 Sep 22, 2022
4cea6b7
Fix bug in Event command
garfield-oo7 Sep 22, 2022
95a650f
Merge branch 'master' of github.com:garfield-oo7/ip
garfield-oo7 Sep 22, 2022
bf8695a
Update User guide
garfield-oo7 Sep 22, 2022
e848cc2
Update user guide
garfield-oo7 Sep 22, 2022
cbde808
Add simple GUI
garfield-oo7 Sep 28, 2022
e3fb39c
Finish Gui
garfield-oo7 Sep 28, 2022
7f9547b
fix bug in saveTaskList
garfield-oo7 Sep 28, 2022
df90777
Fix bug in saveTaskList function
garfield-oo7 Sep 28, 2022
ee8334f
Revert "fix bug in saveTaskList"
garfield-oo7 Sep 28, 2022
e837e13
Merge branch 'master' of github.com:garfield-oo7/ip
garfield-oo7 Sep 28, 2022
67177e2
Resolve merge conflict
garfield-oo7 Sep 28, 2022
62bc3da
Update build.gradle
garfield-oo7 Sep 28, 2022
b27f4b2
Update Ui.png
garfield-oo7 Sep 28, 2022
eb69c56
Add more exceptions
garfield-oo7 Oct 12, 2022
27889fa
Add more exceptions
garfield-oo7 Oct 12, 2022
83b6f98
Add more exceptions
garfield-oo7 Oct 12, 2022
5caa3a7
Update data file
garfield-oo7 Oct 12, 2022
c1b87ed
Update .gitignore file
garfield-oo7 Oct 12, 2022
ad0488a
Update .gitignore to ignore data file
garfield-oo7 Oct 12, 2022
5e973d5
Update duke,txt
garfield-oo7 Oct 12, 2022
6a8c444
Update image for chatbot and user
garfield-oo7 Oct 12, 2022
11569a4
Fix error in printing the list of tasks
garfield-oo7 Oct 12, 2022
71215d2
Refactor test
garfield-oo7 Oct 12, 2022
bb70659
Remove data file
garfield-oo7 Oct 12, 2022
fc79cf8
Update gui
garfield-oo7 Oct 12, 2022
f5d2536
Update find command
garfield-oo7 Oct 12, 2022
0832875
Update find command
garfield-oo7 Oct 12, 2022
40cd274
Change behaviour on application start up
garfield-oo7 Oct 13, 2022
741e01c
Add HelpCommand.java
garfield-oo7 Oct 13, 2022
64c3727
Update Scrollbar issue of GUI
garfield-oo7 Oct 16, 2022
9c7adf9
Remove unused import statements
garfield-oo7 Oct 16, 2022
dc7926c
Ignore empty user inputs
garfield-oo7 Oct 16, 2022
3ca54c8
Add header comments for pulbic class and methods
garfield-oo7 Oct 16, 2022
9b697d6
Fix error in Storage.java
garfield-oo7 Oct 16, 2022
8bffba6
Remove unnesscary files
garfield-oo7 Oct 17, 2022
761dc56
Add a new Ui.png image
garfield-oo7 Oct 17, 2022
d8654c7
Update README.md
garfield-oo7 Oct 17, 2022
6648332
Update README.md
garfield-oo7 Oct 17, 2022
7062d1d
Update README.md
garfield-oo7 Oct 17, 2022
810b80e
Update README.md
garfield-oo7 Oct 17, 2022
b083f5b
Update README.md
garfield-oo7 Oct 17, 2022
21d9bfa
Update README.md
garfield-oo7 Oct 17, 2022
3acb5cd
Update README.md
garfield-oo7 Oct 17, 2022
0aefd9e
Update README.md
garfield-oo7 Oct 17, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
/data/
63 changes: 63 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
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
}

checkstyle {
toolVersion = '8.29'
}

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

Duke is a chatbot that helps you keep track of tasks in the form of ToDo, Deadline and Event.

## Features

### Feature-ABC
### Adding a new Task

#### `ToDo`

This adds a new ToDo task to the list.

Format:

`todo <DESCRIPTION>`

Example Usage:

```
todo read book
```

Expected Output:

A new todo task is added to the task list.
```
Got it. I just added the task:
[T][ ] read book
Now you have 1 tasks in the list.
```

#### `Deadline`

This adds a new Deadline task to the list

Format:
`deadline <DESCRIPTION> /by <TIME>`

Example Usage:

```
deadline ip /by 22/09/2022 2359
```

Expected Output:

A new deadline task is added to the task list.
```
Got it. I just added the task:
[D][ ] ip (by: Sep 22 2022, 2359)
Now you have 2 tasks in the list.
```

#### `Event`

This adds a new Event task to the list


Format:
`event <DESCRIPTION> /at <TIME>`

Description of the feature.
Example Usage:

### Feature-XYZ
```
event meeting /at 22/09/2022 1600
```

Expected Outcome:

A new event task is added to the task list.
```
Got it. I just added the task:
[E][ ] meeting (at: Sep 22 2022, 1600)
Now you have 2 tasks in the list.
```

### Marking a task

#### `Mark`

Marks a task as done in the task list

Format:

`mark <TASK_ID>`

Example Usage:

```
mark 1
```
Expected Outcome:

Description of the feature.
If the first task exists in the task list it is marked as done.
```
Excellent! I have marked the task as done:
[T][X] read book
```

## Usage

### `Keyword` - Describe action
#### `Unmark`

Describe the action and its outcome.
Marks a task in the task list as not done.

Example of usage:
Format:

`keyword (optional arguments)`
`unmark <TASK_ID>`

Expected outcome:
Example Usage:

Description of the outcome.
```
unmark 1
```

Expected Outcome:

If the first task exists in the task list it is marked as not done.
```
expected output
Noted! I have marked the task as not done yet:
[T][] read book
```


### Deleting a Task:

#### `Delete`

Deletes a task from the task list

Format:

`delete <TASK_ID>`

Example Usage:

```
delete 1
```

Expected Outcome:

If the first task exists in the list it is deleted.
```
Noted. I've remove this task:
[T][X] read book
Now you have 2 tasks in the list.
```

### List

List all the task in the task list

Example Usage:

```
list
```

Expected Outcome:

List all the task from the task list.
```
1. [E][ ] meeting (at: Sep 22 2022)
2. [D][ ] ip (by: Sep 22 2022)
```


### Searching for a Task

#### `Find`

Given a keyowrd, return all the tasks from the task list containing the keyword

Format:

`find <kKEYWORD>`

Example Usage:

```
find read
```

Expected Outcome:

All tasks which contain the word read are showm.
```
[T][] read book
```

### Help

#### `help`

Display a list of all the commands in the application.

Example Usage:

```
help
```
Expected Outcome:

Shows the list of all the available commands.

### Exit the Program

#### `Bye`

Terminates the execution of the program

Example Usage:

```
bye
```
Expected Outcome:

Exits the application.
```
Bye. Looking forward to chating with you soon again!
```


## Command Summary

|Action|Format|Example|
|:-|:-|:-|
|ToDo|`todo <DESCRIPTION>`|`todo Play Games`|
|Deadline|`deadline <DESCRIPTION> /by <TIME>`|`deadline project submission /by 19/10/2022 2359`|
|Event|`event <DESCRIPTION> /at <TIME>`|`event Go to Singapore Zoo /at 10/12/2022 1000`|
|Mark|`mark <TASK_ID>`|`mark 3`|
|Unmark|`unmark <TASK_ID>`|`unmark 4`|
|Delete|`delete <TASK_ID>`|`delete 1`|
|List|`list`|`list`|
|Find|`find <KEYWORD>`|`find read book`|
|Help|`help`|`help`|
|Exit|`bye`|`bye`|

## UI Screenshot

<p align="center">
<img alt="UI" src="Ui.png">
</p>


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