Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
d839859
Add Gradle support
May 24, 2020
43b3d55
Create an echo() and replyBye() method for Duke
ThePrevailingOne Jan 29, 2022
319056f
Add welcome message for Duke
ThePrevailingOne Jan 29, 2022
0688e25
Implement word list into Duke
ThePrevailingOne Jan 29, 2022
53466c7
Implement marking/unmarking of word list in Duke
ThePrevailingOne Jan 29, 2022
be0072b
Refactor word list into its own class
ThePrevailingOne Jan 29, 2022
e8e1092
Create class Todo, Deadline, and Event
ThePrevailingOne Jan 29, 2022
a4f0552
Refactor code using InputType enum and an InputParser
ThePrevailingOne Jan 30, 2022
b0bfa54
Refactor Duke with processInput() and move sout() statements to WordList
ThePrevailingOne Jan 30, 2022
4dcb935
Hotfix minor bug in InputParser
ThePrevailingOne Jan 30, 2022
888a7b8
Refactor and adjust WordList as well as Duke to adjust with Todo, Dea…
ThePrevailingOne Jan 30, 2022
94995b9
Merge pull request #1 from ThePrevailingOne/skeleton
ThePrevailingOne Jan 30, 2022
28a9832
Add new Exceptions for basic invalid inputs
ThePrevailingOne Jan 30, 2022
5aa3725
Merge pull request #2 from ThePrevailingOne/exception-handling
ThePrevailingOne Jan 30, 2022
14e2a6a
Merge branch 'master' of github.com:ThePrevailingOne/ip
ThePrevailingOne Jan 30, 2022
b307f61
Implement saving system using org.json, Create JSONFileManager, and R…
ThePrevailingOne Feb 7, 2022
082bd2e
Implement date and time with DateTime to replace String
ThePrevailingOne Feb 9, 2022
f451d9f
Merge branch 'datetime'
ThePrevailingOne Feb 9, 2022
1e84453
Add more OOP DukeUI, and edit .gitignore
ThePrevailingOne Feb 9, 2022
d93678d
Merge branch 'a-moreoop'
ThePrevailingOne Feb 9, 2022
0ae6bae
Refactor into packages and fix input whitespaces
ThePrevailingOne Feb 9, 2022
f5ac54f
Merge branch 'a-packages'
ThePrevailingOne Feb 9, 2022
9017932
Add JUnit Testing
ThePrevailingOne Feb 14, 2022
0da00b1
Add Javadoc into the app
ThePrevailingOne Feb 23, 2022
49667e6
Implement a find feature to Duke
ThePrevailingOne Feb 23, 2022
0df53e3
merge to add-gradle-support
ThePrevailingOne Feb 23, 2022
06db74c
Merge branch 'master' into add-gradle-support
ThePrevailingOne Feb 23, 2022
61632f0
Add gradle support
ThePrevailingOne Feb 23, 2022
2c1ab2b
Merge branch 'add-gradle-support'
ThePrevailingOne Feb 23, 2022
de030de
Update gradle to 7.3 and remove save file
ThePrevailingOne Feb 23, 2022
9701571
Add JavaFX to dependencies
ThePrevailingOne Feb 23, 2022
2fb2a5d
Add GUI
ThePrevailingOne Feb 24, 2022
9cbecdf
Merge branch 'JavaFx'
ThePrevailingOne Feb 24, 2022
939b9ab
Hotfix data/ folder and remove unused code
ThePrevailingOne Feb 24, 2022
f2136c3
Allow user to sort the list
ThePrevailingOne Mar 1, 2022
e089191
Hotfix souts
ThePrevailingOne Mar 1, 2022
6d1fe81
Add a user guide
ThePrevailingOne Mar 1, 2022
19b492b
Set theme jekyll-theme-cayman
ThePrevailingOne Mar 1, 2022
559e67e
Set theme jekyll-theme-slate
ThePrevailingOne Mar 1, 2022
3080ed8
Set theme jekyll-theme-cayman
ThePrevailingOne Mar 1, 2022
941e353
Change user guide title
ThePrevailingOne Mar 1, 2022
020089e
Merge branch 'master' of github.com:ThePrevailingOne/ip
ThePrevailingOne Mar 1, 2022
705a92d
Change gradle version
ThePrevailingOne Mar 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 @@ -13,5 +13,8 @@ src/main/resources/docs/
*.iml
bin/

# save folder and file name
src/main/data

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT
70 changes: 70 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
plugins {
id 'java'
id 'application'
// id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.1.0'
}

repositories {
mavenCentral()
}

//java {
// toolchain {
// languageVersion = JavaLanguageVersion.of(11)
// }
//}

dependencies {
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'

implementation group: 'org.json', name: 'json', version: '20211205'
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'
}

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
}


233 changes: 219 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,234 @@
# User Guide
# Duked App User Guide
**Duked App** is a desktop application to manage your tasks efficiently. This application is highly optimized for those who are comfortable using the CLI (typing) in the GUI.

## Features
* [Quick start](#quick-start)
* [Features](#features)
* [Command summary](#command-summary)

### Feature-ABC

Description of the feature.
## Quick start
1. Ensure you have Java `11` that supports `JavaFx` or above installed in your
computer.
2. Download the latest `duke.jar` from [here](https://github.com/ThePrevailingOne/ip/releases/tag/BCD-Extension).
3. Copy the file to the folder you want to use as the
*home folder* for your Duke.
4. Double-click the file to start the app. The GUI
similar to the below should appear in a few seconds.

### Feature-XYZ
![Duke GUI](Ui.png)

Description of the feature.
5. Type the command in the command box and press `Enter/Send` to
execute it.
6. Refer to the [Features](#features) below for details of each
command.

## Usage

### `Keyword` - Describe action
## Features
The app will autosave any changes made to the list of tasks.

Describe the action and its outcome.
### Listing all tasks
List all your tasks available.
Tasks may include:
- todos,
- deadlines,
- and events.

Example of usage:
Command example:

`keyword (optional arguments)`
`list`

Expected outcome:
Output:
```
Here is your current tasks:
1. [T][X] make a todo
2. [E][ ] Do not exist (at: Wednesday, 12 Dec 1212 10:00)
```

### Add a Todo Task
Add a Todo Task with description.

Format:

`todo [description]`

Example:

`todo make a todo`

Output:
```
Got it. I've added this task:
[T][ ] make a todo
You currently have 12 tasks in the list.
```

### Add a Deadline Task
Add a Deadline Task with description and deadline in dd/MM/yyyy HHmm format.
See [here for more about the date formatting](https://www.baeldung.com/java-datetimeformatter).

Format:

`deadline [description] /by [deadline]`

Example:

`deadline submit assignment /by 20/2/2022 1212`

Output:
```
Got it. I've added this task:
[D][ ] submit assignment (by: Monday, 20 Feb 2022, 12:12)
You currently have 12 tasks in the list.
```

### Add an Event Task
Add a Deadline Task with description and event time in dd/MM/yyyy HHmm format.
See [here for more about the date formatting](https://www.baeldung.com/java-datetimeformatter).

Format:

`event [description] /at [event]`

Example:

`event finish hackathon /at 20/2/2022 1212`

Output:
```
Got it. I've added this task:
[E][ ] finish hackathon (at: Monday, 20 Feb 2022, 12:12)
You currently have 12 tasks in the list.
```

### Mark a Task as done
Mark a task of given the index as done <br>
Note: Task needs to be set into done manually by user, by giving the Task index. Task index can be obtained through the command `list`.

Format:

`mark [index]`

Example:

`mark 1`

Output:
```
Nice! I've marked this task as done:
[E][X] finish hackathon (at: Monday, 20 Feb 2022, 12:12)
```

### Unmark a Task as not done
Mark a task of given the index as not done <br>
Note: Task needs to be set into not done manually by user, by giving the Task index. Task index can be obtained through the command `list`.

Format:

`unmark [index]`

Example:

Description of the outcome.
`unmark 1`

Output:
```
expected output
Nice! I've marked this task as not done:
[E][ ] finish hackathon (at: Monday, 20 Feb 2022, 12:12)
```

### Delete a Task
Delete a task given the index. Task index can be obtained through the command `list`.

Format:

`delete [index]`

Example:

`delete 1`

Output:
```
Got it. I've removed this task:
[T][X] Submit CS2103 Assignment
```
### Sorting the tasks
Display a sorted list of the tasks alphabetically by their description.

Format:

`sort`

Example:

`sort`

Output:
```
Here are the sorted tasks:
1. [T][X] Procrastinate CS2103 Assignment
2. [T][X] Submit CS2103 Assignment
You have 12 sorted results.
```
### Sorting the deadlines
Display a sorted list of the deadlines by their deadlines from the earliest.

Format:

`sortdeadline`

Example:

`sortdeadline`

Output:
```
Here are the sorted tasks:
1. [D][X] Procrastinate CS2103 Assignment (by: Monday, 20 Feb 2022, 12:12)
2. [D][X] Submit CS2103 Assignment (by: Tuesday, 21 Feb 2022, 12:12)
You have 2 sorted results.
```

### Sorting the events
Display a sorted list of the events by their event time from the earliest.

Format:

`sortevent`

Example:

`sortevent`

Output:
```
Here are the sorted tasks:
1. [E][X] Procrastinate CS2103 Assignment (at: Monday, 20 Feb 2022, 12:12)
2. [E][X] Submit CS2103 Assignment (at: Tuesday, 21 Feb 2022, 12:12)
You have 2 sorted results.
```

### Exiting the application
Terminate Duked App.

Example:

`bye`

Output:<br>
```
Bye. Hope to see you again soon!
```

## Command summary

| action | Format, Examples |
|----------|---------------------------------------------------------------------------------------------------|
| list | `list` |
| deadline | `deadline [description] /by [deadline]`<br>e.g.,`deadline submit cs2103 IP /by 18/2/2022 1212` |
| event | `event [description] /at [event time]`<br>e.g.,`event hackathon /at 18/2/2022 1212` |
| todo | `todo [description]`<br>e.g.,`todo coding with friends` |
| delete | `delete [index]`<br>e.g., `delete 1` |
| mark | `mark [index]`<br>e.g., `mark 1` |
| unmark | `unmark [index]`<br>e.g., `unmark 1` |
| 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.
1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-cayman
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-5.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading