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

[Samuel Pang Shao Herng] ip #517

Open
wants to merge 55 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
c79efa6
.gitignore: included .class files to be omitted from being committed
Sampy147 Aug 18, 2022
327c569
Duke.java: Level-1 completed
Sampy147 Aug 18, 2022
a4346b2
Duke.java: Level-2 completed
Sampy147 Aug 18, 2022
df16435
Duke.java: Level-1 v1.1 improved
Sampy147 Aug 19, 2022
fd542b8
Duke.java: Level-2 v1.1 improved
Sampy147 Aug 19, 2022
5d410b8
Duke.java: Level-2 v1.2 improved
Sampy147 Aug 19, 2022
53a12ae
Duke.java, Task.java, Tasklist.java: Updated with level 3 requirements
Sampy147 Aug 21, 2022
a003efa
Duke.java,Tasklist.java modified. Deadline.java, Event.java, ToDo.jav…
Sampy147 Aug 21, 2022
738c9a8
Automation testing done
Sampy147 Aug 22, 2022
17bb08c
Level-5 handle errors done
Sampy147 Aug 22, 2022
9512919
Level-6 done
Sampy147 Aug 22, 2022
83446a2
Level-7 completed
Sampy147 Sep 3, 2022
d777be2
level-7 completed
Sampy147 Sep 3, 2022
1a2c997
Level-7 completed
Sampy147 Sep 3, 2022
0b16da0
Level-7 completed
Sampy147 Sep 3, 2022
32500d1
Level-8 completed
Sampy147 Sep 6, 2022
70bb7e5
Level-8 completed
Sampy147 Sep 6, 2022
12680d8
Merge branch 'branch-Level-7'
Sampy147 Sep 6, 2022
5130f46
Merge branch 'branch-Level-8 successfully
Sampy147 Sep 6, 2022
f110900
More-OOP done with prev commit code as comments
Sampy147 Sep 8, 2022
507e8b8
A-MoreOOP completed
Sampy147 Sep 8, 2022
d99e1ff
Divided class into packages
Sampy147 Sep 8, 2022
1fdadeb
Merge remote-tracking branch 'upstream/add-gradle-support'
Sampy147 Sep 8, 2022
27252f0
Build automation with Gradle added
Sampy147 Sep 8, 2022
371855c
Build automation with Gradle added
Sampy147 Sep 8, 2022
6027556
added JUnit tests to the project
Sampy147 Sep 9, 2022
dd53432
Merge branch 'master' of https://github.com/Sampy147/ip
Sampy147 Sep 9, 2022
0524628
Add JUnit to current project
Sampy147 Sep 9, 2022
ef6a4b7
Attach project as JAR file in new release
Sampy147 Sep 11, 2022
7a9cd02
Add javadocs
Sampy147 Sep 11, 2022
91ff3bb
Remove unnecessary files duke.txt and data/duke.txt
Sampy147 Sep 11, 2022
9f1df79
Modify files to comply to Java's Coding Standard
Sampy147 Sep 11, 2022
52505dc
Add Level-9 find feature
Sampy147 Sep 12, 2022
56949df
Merge branch 'branch-A-JavaDoc'
Sampy147 Sep 12, 2022
ab7eb48
Merge branch-A-CodingStandard with master
Sampy147 Sep 12, 2022
ecbc9fd
Merge branch-Level-9 with master
Sampy147 Sep 12, 2022
ed9edd3
Configure javaFx
Sampy147 Sep 14, 2022
cc0eb58
Add GUI functionality to duke
Sampy147 Sep 15, 2022
1bf6279
Merge branch 'branch-Level-10'
Sampy147 Sep 15, 2022
3b79a44
Add assertion statements
Sampy147 Sep 16, 2022
0517320
Improve code quality of existing code base
Sampy147 Sep 16, 2022
07e59f3
Merge pull request #2 from Sampy147/branch-A-Assertions
Sampy147 Sep 18, 2022
18a86c2
Merge branch 'branch-A-CodeQuality'
Sampy147 Sep 18, 2022
ada09a8
Merge master and branch-A-Assertions and resolve merge conflicts
Sampy147 Sep 18, 2022
0854fc2
Resolve merge conflicts
Sampy147 Sep 18, 2022
dd4a604
Merge branch 'master' of https://github.com/Sampy147/ip
Sampy147 Sep 19, 2022
4bd20cd
Implement extension C-Help
Sampy147 Sep 19, 2022
69abf4d
Message Class: Change invalid user input message
Sampy147 Sep 19, 2022
8b10487
Add User Guide for Duke
Sampy147 Sep 19, 2022
8feb9d5
Add comments to give credit for reused work
Sampy147 Sep 19, 2022
f7a0309
Amend README.md and improved formatting
Sampy147 Sep 19, 2022
60ac1a3
Amend README.md to improve formatting further
Sampy147 Sep 19, 2022
63089dd
Amend README to include proper line spacing
Sampy147 Sep 19, 2022
d86b26c
Amend line spacing in README.md further
Sampy147 Sep 19, 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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
/out/
/*.iml

# .class files
/.class/

# Gradle build files
/.gradle/
/build/
Expand Down
62 changes: 62 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '5.1.0'
}

group 'org.example'
version '1.0-SNAPSHOT'

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 {
// Change this to your main class.
mainClassName = "duke.Launcher"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

run {
enableAssertions = true
standardInput = System.in
}
307 changes: 294 additions & 13 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,310 @@
# User Guide
# User Guide to use Duke

## What is Duke?

Duke is a chat bot designed to help users manage their tasks. It is a command-line
software that processes user input and displays immediate responses. Furthermore,
tasks added by users to Duke will be stored and can be retrieved each
time Duke is opened.

<br>

## Features

### Feature-ABC
### Add Tasks

Tasks can be added to the list of tasks via one of the following categories:
1. To-do task
2. Deadline task
3. Event task

### View Tasks
Tasks can be viewed as a list.

### Mark Tasks
Tasks can be marked as completed.

### Un-mark Tasks
Tasks can be un-marked to show they are still incomplete.

Description of the feature.
### Delete tasks
Tasks can be deleted from the list of tasks.

### Feature-XYZ
### Find tasks
Tasks can be found from the list of tasks.

Description of the feature.
<br>

## Usage
## Features Details

### `Keyword` - Describe action
### `todo` - Adds a to-do task

Describe the action and its outcome.
**Adds a to-do task to the list of tasks.**

Example of usage:
**Format:** `todo TASK_DESCRIPTION`

`keyword (optional arguments)`
- The task description **must not** be empty.

Expected outcome:
**Example of usage:**
`todo Physics homework`

Description of the outcome.
**Expected outcome:**
A to-do task will be successfully added to the list of tasks.

```
expected output
______________________________________________________
Got it. I've added this task:
[T][] Physics homework
Now you have 1 tasks in the list.
______________________________________________________
```
<br>

### `event` - Adds an event task

**Adds an event task to the list of tasks.**

**Format**: `event TASK_DESCRIPTION /at TIME_OR_PLACE`

- the task description **must not** be empty.
- the time or place **must not** be empty.

**Example of usage:**
`event Sara's birthday /at office`


**Expected outcome:**
An event task will be successfully added to the list of tasks.

```
______________________________________________________
Got it. I've added this task:
[E][] Sara's birthday (at: restaurant)
Now you have 1 tasks in the list.
______________________________________________________
```
<br>

### `deadline` - Adds a deadline task

**Adds a deadline task to the list of tasks.**

**Format:** `deadline TASK_DESCRIPTION /by DATE`

- The task description **must not** be empty.
- The date **must adhere** to the YYYY-MM-DD format.

**Example of usage:**
`deadline Physics assignment /by 2022-10-11`

**Expected outcome:**
A deadline task will be successfully added to the list of tasks.

```
______________________________________________________
Got it. I've added this task:
[D][] Physics assignment (by: Oct 11 2022)
Now you have 1 tasks in the list.
______________________________________________________
```
<br>


### `list` - displays all tasks as a list

**Allows user to view tasks as a list.**

**Example of usage:**
`list`

**Expected outcome:**
A list of all the user's tasks will be shown.

```
______________________________________________________
Here are the tasks in your list:
1. [T][] Physics homework
2. [E][] Sara's birthday (at: restaurant)
3. [D][] Physics assignment (by: Oct 11 2022)
______________________________________________________
```
<br>


### `mark` - marks a task as complete

**Marks a task in the list of tasks according to the specified index to suggest
the task is completed.**

**Format:** `mark TASK_INDEX`

- Task index **must not** exceed the number of total tasks and must be more than 0.

**Example of usage:**
`mark 1`

**Expected outcome:**
The first task in the list of tasks will be marked as completed.

```
______________________________________________________
Nice! I've marked this task as done:
[T][X] Physics homework
______________________________________________________
```
<br>


### `unmark` - un-marks a task to show it is still incomplete

**Un-marks a task in the list of tasks according to the specified index to suggest
that the task is still incomplete.**

**Format:** `unmark TASK_INDEX`

- Task index **must not** exceed the number of total tasks and must be more than 0.

**Example of usage:**
`unmark 1`

**Expected outcome:**
The first task in the list of tasks will be unmarked.

```
______________________________________________________
OK. I've marked this task as not done yet:
[T][] Physics homework
______________________________________________________
```
<br>


### `delete` - deletes a task from the list of tasks

**Deletes a task in the list of tasks according to the specified index.**

**Format:** `delete TASK_INDEX`

- Task index **must not** exceed the number of total tasks and must be more than 0.

**Example of usage:**
`delete 1`

**Expected outcome:**
The first task in the list of tasks will be deleted.

```
______________________________________________________
Noted. I've removed this task:
[T][] Physics homework
Now you have 0 tasks in the list.
______________________________________________________
```
<br>


## `find` - finds a task from the list of tasks

**Finds a task in the list of tasks with a keyword corresponding to the
description of the task.**

**Format:** `find KEYWORD`

- If no task descriptions matching the keyword are found, the list of tasks returned
will be empty.

**Example of usage:**
`find homework`

**Expected outcome:**
A list of tasks with descriptions matching the keyword `homework`.

```
______________________________________________________
Here are the matching tasks in your list:
[T][] Physics homework
______________________________________________________
```
<br>


## `help` - displays commands to use Duke

**Displays basic commands to help the user use basic features of Duke.**

**Example of usage:**
`help`

**Expected outcome:**
A list of basic commands to utilise Duke.

```
______________________________________________________
Hello! Here is some commands to help you use this app better!

1. bye:
Ends the session and app will close

2. todo {task description}:
Adds a to-do task to your list of tasks

3. event {task description} /at {time or place}:
Adds a event task to your list of tasks

4. deadline {task description} /by {date time in YYYY-MM-DD}:
Adds a deadline task to your list of tasks

5. list:
Returns all tasks in the task list

6. help!:
More advanced Duke features!
______________________________________________________
```
<br>


## `help!` - displaying advanced commands to use Duke

**Displays advanced commands to help the user use advanced features of Duke.**

**Example of usage**:
`help!`

**Expected outcome**:
A list of advanced commands to utilise Duke.

```
______________________________________________________
More advanced commands here!

1. mark {task number}:
marks the task with index corresponding to the task number as done

2. unmark {task number}:
un-marks the task with index corresponding to the task number as done

3. delete {task number}:
deletes the task with index corresponding to the task number

4. find {keyword}:
find the task with description corresponding to the keyword input
______________________________________________________
```
<br>

## `bye` - exits Duke

**Exits the Duke application.**

**Example of usage:**
`bye`

**Expected outcome:**
A bye message is displayed and the application closes.
```
______________________________________________________
Bye! I'll be closing soon, till we meet again!
______________________________________________________
```

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.
Loading