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

[Saketh] iP #484

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
d839859
Add Gradle support
May 24, 2020
4d0258b
Finished Level-1
loose-bus-change Aug 19, 2021
916e1a4
Finished Level-2
loose-bus-change Aug 19, 2021
9ee2158
Finished Level-3
loose-bus-change Aug 19, 2021
6a59fbe
Finished Level-4
loose-bus-change Aug 19, 2021
ad750b7
Finished A-TextUiTesting
loose-bus-change Aug 19, 2021
35ab331
Finished Level-5
loose-bus-change Aug 19, 2021
32dfefd
Finished Level-6
loose-bus-change Aug 19, 2021
e5200af
Finished Level-7
loose-bus-change Aug 28, 2021
2fa7e3c
Finished Level-8
loose-bus-change Aug 28, 2021
250c123
Merge branch 'branch-Level-7'
loose-bus-change Aug 28, 2021
23f2c19
Finished Level-8
loose-bus-change Aug 28, 2021
0879b67
Finished A-More-OOP
loose-bus-change Aug 29, 2021
ae519f8
Finished A-Packages
loose-bus-change Aug 29, 2021
86b9868
Finished JUnit Testing
loose-bus-change Aug 29, 2021
3281b26
Finished A-Jar
loose-bus-change Aug 29, 2021
b087b26
Finish branch-A-JavaDoc
loose-bus-change Aug 30, 2021
c907c92
Finish A-CodingStandard
loose-bus-change Aug 30, 2021
3333058
Finish branch-Level-9
loose-bus-change Aug 30, 2021
0cad0cf
Merge branch 'branch-A-JavaDoc'
loose-bus-change Aug 30, 2021
4784c9a
Finish A-CodingStandard
loose-bus-change Aug 30, 2021
43952bf
Merge branch 'branch-Level-9'
loose-bus-change Aug 30, 2021
b571757
Merge remote-tracking branch 'origin/add-gradle-support'
loose-bus-change Sep 2, 2021
e13fa9f
Finish Level-10
loose-bus-change Sep 7, 2021
ebf9a1c
Fix reading from text file
loose-bus-change Sep 8, 2021
95a3313
Finish A-Assertions
loose-bus-change Sep 10, 2021
9a716a9
Finish-A-CodeQuality
loose-bus-change Sep 11, 2021
c62e3af
Merge pull request #1 from loose-bus-change/branch-A-Assertions
loose-bus-change Sep 11, 2021
d397c7e
Changes
loose-bus-change Sep 11, 2021
ff9f39c
Fix conflicts
loose-bus-change Sep 11, 2021
dd5f648
Merge branch 'master' into branch-A-CodeQuality
loose-bus-change Sep 11, 2021
ff57ee3
Merge pull request #2 from loose-bus-change/branch-A-CodeQuality
loose-bus-change Sep 11, 2021
9a398f3
Fix conflict in text file
loose-bus-change Sep 11, 2021
10980c9
Finish BCD-Extensions
loose-bus-change Sep 11, 2021
223c05f
Add Ui.png
loose-bus-change Sep 19, 2021
1d6ed65
Add User guide
loose-bus-change Sep 20, 2021
e9fb36d
Update ReadMe
loose-bus-change Sep 20, 2021
8f6e846
Edit User guide
loose-bus-change Sep 20, 2021
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
60 changes: 60 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
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 = "Launcher"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
4 changes: 4 additions & 0 deletions data/duke.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[T][ ] read book
[E][X] project meeting at: 2021-10-15 19:00
[E][X] make pasta at: 2021-08-16 13:00
[D][ ] submit ip by: 2021-08-16 23:59
233 changes: 221 additions & 12 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,238 @@
# User Guide

Duke is a **desktop app** for _managing tasks_ and having the benefits of a Graphical User Interface (GUI).
You can add 3 types of tasks (Todo, Deadline, Event) and use a whole range of features to manage those tasks.

--------------------------------------------------------------------------------------------------------------------

## Quick start

1. Ensure you have Java `11` or above installed in your Computer.

1. Download the latest `duke.jar` from [here](https://github.com/loose-bus-change/ip/releases).

1. Copy the file to the folder you want to use as the _home folder_ for your Duke.

1. Double-click the file to start the app.

1. Type the command in the popup and press **Send** to execute it.

1. Refer to the [Features](#features) below for details of each command.

--------------------------------------------------------------------------------------------------------------------

## Features

### Feature-ABC
### Add Todo Task

Have a task that does not have a deadline ? Use this feature to add a **Todo** task.

#### `todo <task description>` - add a todo task

Example of usage:

`todo read book`

Here is the output you should see from Duke:

```
Got it! I've added this task:
[T][ ] read book
Now you have 1 task(s) in the list.
```

### Add Deadline Task

Have a task that is due by a particular date and time ? Use this feature to add a **Deadline** task.

#### `deadline <task description> /by <date and time in dd/mm/yyyy hhmm>` - add a deadline task

Example of usage:

`deadline return book /by 2/12/2021 1800`

Here is the output you should see from Duke:

```
Got it! I've added this task:
[D][ ] return book by: 2021-12-02 18:00
Now you have 2 task(s) in the list.
```

### Add Event Task

Have an event that happens at a particular time ? Use this feature to add an **Event** task.

#### `event <task description> /at <date and time in dd/mm/yyyy hhmm> ` - add an event task

Example of usage:

`event project meeting /at 15/10/2021 1900`

Here is the output you should see from Duke:

```
Got it! I've added this task:
[E][ ] project meeting at: 2021-10-15
Now you have 3 task(s) in the list.
```

### Mark as done

Finished with a task ? Yay! You can use this feature to indicate that you have finished the task.

#### `done <index> ` - to indicate you are done with a task

Example of usage:

`done 2`

Here is the output you should see from Duke:

```
Nice! I've marked this task as done:
[X] return book
```

### View Task List

Use this feature to view the current list of tasks that you have.

Description of the feature.
#### `list` - to view list of tasks

### Feature-XYZ
Example of usage:

Description of the feature.
`list`

## Usage
Here is the output you should see from Duke:

### `Keyword` - Describe action
```
Here are the tasks in your list:
1. [T][ ] read book
2. [D][X] return book by: 2021-12-02 18:00
3. [E][ ] project meeting at: 2021-10-15
```

### Search by keyword

Struggling to find a particular task ? Use this feature to search for a task by using a keyword

#### `find <keyword>` - search for a task using keyword

Example of usage:

`find meeting`

Here is the output you should see from Duke:

```
[E][ ] project meeting at: 2021-10-15
```

### Delete a task

Describe the action and its outcome.
Use this feature to remove a task from the list.

#### `delete <index>` - delete a particular task

Example of usage:

`delete 2`

Here is the output you should see from Duke:

```
Noted. I've removed this task:
[D][X] return book by: 2021-12-02 18:00
Now you have 2 task(s) in your list
```

### Get schedule

Want to get a schedule of your tasks. Use this feature to get tasks in three different ways.

Here is a sample task list to demonstrate this feature:
```
[T][ ] read book
[E][ ] project meeting at: 2021-10-15 19:00
[E][ ] make pasta at: 2021-08-16 13:00
[D][ ] submit ip by: 2021-08-16 23:59
[E][ ] attend party at: 2022-03-07 15:00
```

Example of usage:
#### `schedule on <date in dd/mm/yyyy>` - get the list of tasks _on_ a particular date

`keyword (optional arguments)`
Example of usage:

Expected outcome:
`schedule on 16/08/2021`

Description of the outcome.
Here is the output you should see from Duke:

```
expected output
Here are the list of tasks scheduled on 16/08/2021:
1. [E][ ] make pasta at: 2021-08-16 13:00
2. [D][ ] submit ip by: 2021-08-16 23:59
```
#### `schedule until <date in dd/mm/yyyy>` - get the list of tasks _until_ a particular date

Example of usage:

`schedule until 16/12/2021`

Here is the output you should see from Duke:

```
Here are the list of tasks scheduled until 16/12/2021:
1. [E][ ] project meeting at: 2021-10-15 19:00
2. [E][ ] make pasta at: 2021-08-16 13:00
3. [D][ ] submit ip by: 2021-08-16 23:59
```

#### `schedule after <date in dd/mm/yyyy>` - get the list of tasks _after_ a particular date

Example of usage:

`schedule after 16/08/2021`

Here is the output you should see from Duke:

```
Here are the list of tasks scheduled after 16/08/2021:
1. [E][ ] project meeting at: 2021-10-15 19:00
2. [E][ ] attend party at: 2022-03-07 15:00
```

**Important Note:** you can also enter your dates in the following formats:
* d/m/yyyy
* dd/m/yyyy
* d/mm/yyyy

### Help

If you ever forget the format for the commands or want to refresh your memory on what commands are available, use this feature to have Duke remind you!

#### `help` - get a list of Duke command formats

### Exit the application

If you are done, use this to exit the application!

#### `bye` - to exit the application.

--------------------------------------------------------------------------------------------------------------------

## Command summary

Action | Format, Examples
--------|------------------
**Add Todo Task** | `todo <task description>` <br> e.g., `todo read book`
**Add Deadline Task** | `deadline <task description> /by <date and time in dd/mm/yyyy hhmm>` <br> e.g., `deadline return book /by 2/12/2021 1800`
**Add Event Task** | `event <task description> /at <date and time in dd/mm/yyyy hhmm>` <br> e.g., `event project meeting /at 16/08/2021 1900`
**Find Task** | `find <keyword>` <br> e.g., `find book`
**Delete Task** | `delete <INDEX>`<br> e.g., `delete 2`
**Schedule On** | `schedule on <date in dd/mm/yyyy>`<br> e.g., `schedule on 16/08/2021`
**Schedule Until** | `schedule until <date in dd/mm/yyyy>` <br> e.g., `schedule until 16/08/2021`
**Schedule After** | `schedule after <date in dd/mm/yyyy>` <br> e.g., `schedule after 16/08/2021`
**Show Task List** | `list`
**Help** | `help`
**Bye** | `bye`
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