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

[benedict733] iP #491

Open
wants to merge 65 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
60f64cb
updating Duke for level 1
benedict733 Jan 19, 2023
4d92623
Level-1: Greet, Echo, Exit
benedict733 Jan 19, 2023
6df7d67
Level-2: Add, List
benedict733 Jan 19, 2023
2f2b807
Removal of "public" on methods, addition of Task
benedict733 Feb 4, 2023
058be4a
Level-3: Mark as Done
benedict733 Feb 4, 2023
0a216d0
Level-4: ToDo, Event, Deadline
benedict733 Feb 4, 2023
6fe77ee
Included EXPECTED output with input.txt, updated Duke and Events
benedict733 Feb 5, 2023
3ae1dbc
Level 5: Handle Errors
benedict733 Feb 11, 2023
ead6c37
Level-6: Delete
benedict733 Feb 11, 2023
622183e
Stage 7: Save
benedict733 Feb 23, 2023
ff1c3c5
Merge branch 'branch-level-7'
benedict733 Feb 23, 2023
2447cf8
added SavedList to gitignore
benedict733 Feb 23, 2023
f7ffb50
Level 8: Dates and Times
benedict733 Feb 24, 2023
4f87747
Merge branch 'branch-level-8'
benedict733 Feb 24, 2023
6387ba4
Creation of new files for refactoring of code for OOP, mostly done wi…
benedict733 Feb 25, 2023
cee306f
Creation of new Commands
benedict733 Feb 26, 2023
798615e
Completed A-MoreOOP
benedict733 Feb 26, 2023
60d7643
Merge branch 'A-MoreOOP'
benedict733 Feb 26, 2023
71e1c5c
A-Packages
benedict733 Feb 26, 2023
d0d4ca2
Removal of folders command and task as they were accidentally left th…
benedict733 Feb 26, 2023
54fc62e
Merge branch 'master' into add-gradle-support
benedict733 Feb 26, 2023
6acc75a
Merge branch 'add-gradle-support'
benedict733 Feb 26, 2023
f8585b1
A-Gradle
benedict733 Feb 26, 2023
22af41b
Added 2 JUnit tests for 2 classes Task and Todo
benedict733 Feb 26, 2023
e136c71
Level-9: Find
benedict733 Feb 28, 2023
d81f3d6
Merge branch 'branch-Level-9'
benedict733 Feb 28, 2023
03d24cc
Merge branch 'master' of https://github.com/benedict733/ip into branc…
benedict733 Feb 28, 2023
6d06ae3
Used DEFAULTDIRECTORY for Storage, created JavaDocs for Command
benedict733 Feb 28, 2023
5ed2d3d
Added JavaDoc comments for a few Commands, removed isExit() for most …
benedict733 Feb 28, 2023
7b58d7c
Added JavaDoc comments for all java classes and methods under command…
benedict733 Mar 1, 2023
24c627e
JavaDoc comments for TaskList
benedict733 Mar 1, 2023
4de276d
JavaDoc comments for all classes in package Task
benedict733 Mar 1, 2023
79e3be8
JavaDoc comments for Exceptions
benedict733 Mar 1, 2023
93b73b1
JavaDoc comments for the rest of the methods, completing all JavaDoc …
benedict733 Mar 1, 2023
e956122
Updated classes in package Duke to have correct Coding Standard
benedict733 Mar 2, 2023
cb3b24d
Updated Coding Standard for files in package duke.command and any fil…
benedict733 Mar 2, 2023
7ebcee0
Revert "Updated Coding Standard for files in package duke.command and…
benedict733 Mar 2, 2023
61313be
Update files in duke.task and those affected for Coding Standard
benedict733 Mar 2, 2023
03ed7a0
Update files in duke.command to follow Coding Standards
benedict733 Mar 2, 2023
d0939aa
Merge branch 'branch-A-JavaDoc'
benedict733 Mar 2, 2023
a75143c
Merge branch 'master' into branch-A-CodingStandard
benedict733 Mar 2, 2023
2d8d9ea
Merge branch 'branch-A-CodingStandard'
benedict733 Mar 2, 2023
c40c359
Updated files from JavaFX tutorial to be able to support GUi
benedict733 Mar 4, 2023
78c40c4
Updated JavaDoc comments for Tasks
benedict733 Mar 4, 2023
3d8b331
Update duke.command to be compatible with new GUi
benedict733 Mar 4, 2023
1a29bea
Update Main and MainWindow to allow GUI to work as intended
benedict733 Mar 4, 2023
a57bb5e
Remove constants and methods in Duke as they are no longer required
benedict733 Mar 4, 2023
a670bf7
Merge branch 'branch-level-10'
benedict733 Mar 4, 2023
04d170c
Add assertion for Task description
benedict733 Mar 6, 2023
6b54786
Merge branch 'branch-A-Assertions'
benedict733 Mar 6, 2023
95652d6
Update code quality for classes in duke.task
benedict733 Mar 6, 2023
b092582
Update code quality for classes in duke.command
benedict733 Mar 6, 2023
b7db5aa
Update code quality of classes in duke
benedict733 Mar 6, 2023
41e79ab
Merge branch 'branch-A-CodeQuality'
benedict733 Mar 6, 2023
3067970
Update classes to support snooze functionality
benedict733 Mar 6, 2023
7b88994
Update for bug fixes
benedict733 Mar 6, 2023
1dd8f02
Merge branch 'branch-B-Snooze'
benedict733 Mar 6, 2023
3f2daca
Update build.gradle to build proper jar file
benedict733 Mar 6, 2023
59959b0
Update Command to return correct error message for empty list
benedict733 Mar 6, 2023
430f2c7
Merge branch 'branch-BugFix-ListCommand'
benedict733 Mar 6, 2023
1f57c35
Add Ui.png for product website
benedict733 Mar 6, 2023
3673fa9
Update READMD.md to be a useful User Guide
benedict733 Mar 6, 2023
d2e3ea1
Merge branch 'branch-A-UserGuide'
benedict733 Mar 6, 2023
9700414
Update README.md for a format change
benedict733 Mar 6, 2023
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT
text-ui-test/a.txt
text-ui-test/b.txt
src/main/java/input.txt
SavedList.txt
59 changes: 59 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'org.openjfx.javafxplugin' version '0.0.13'
}

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
enableAssertions = true
}
175 changes: 162 additions & 13 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,178 @@
Duke is a desktop tasks lists to allow you to keep track of your tasks and events easily.
It provides an easy to use Graphical User Interface for users to interact with Duke.

# User Guide
1. Ensure that you have `Java 11` or above installed
2. Download the latest `duke.jar` from [here](https://github.com/benedict733/ip/releases)
3. Copy `duke.jar` to the folder you want to use.
4. Double-click the file to start Duke.

## Features
## Features
* Keep track of your tasks easily
* Tasks include todos, tasks with deadlines and events
* Mark tasks as done/not done
* Snooze on tasks with deadlines
* Delete tasks when not needed
* Find tasks by keywords
* Save details into text file for easily retrieval

### Feature-ABC
## Usage

Description of the feature.
### Adding a task: `Todo`, `Event`, `Deadline`

### Feature-XYZ
Adds a task into Skylark.

Description of the feature.
The format for the command is as per follows:
1. `Todo`: `todo DESCRIPTION`
2. `Event`: `event DESCRIPTION /from WHEN /to WHEN`
3. `Deadline`: `deadline DESCRIPTION /by DATETIME`

## Usage
**NOTE**
* There is no particular format for `WHEN` used in `Event`
* The format for `DATETIME` used in `Deadline`:
* `DATETIME`: `yyy-mm-ddThh:mm:ss`

### `Keyword` - Describe action

Describe the action and its outcome.
Example of usage:
* `todo read book`
* `deadline return book /by 2023-03-28T23:59:59`
* `event cs2103 finals /from 26 April 9am /to 11am`

Example of usage:
Expected outcome:
* After running `todo read book`
```
Got it. I've added this task:
[T][ ] read book
Now you have 1 tasks in the list.
```
* After running `deadline return book /by 2023-03-28T23:59:59`
```
Got it. I've added this task:
[D][ ] return book (by:2023-02-28T23:59:59)
Now you have 2 tasks in the list.
```
* After running `event cs2103 finals /from 26 April 9am /to 11am`
```
Got it. I've added this task:
[E][ ] cs2103 finals (from : 26 April 9am to: 11am)
Now you have 3 tasks in the list.
```

`keyword (optional arguments)`
### Lists the current tasks - `list`

Expected outcome:
Shows the list of tasks saved in Skylark

Description of the outcome.
Example of usage:
* `list`

Expected outcome:
```
expected output
Here are the tasks in your list:
1. [T][ ] borrow book
2. [D][ ] return book (by:2023-02-28T23:59:59)
3. [E][ ] cs2103 finals (from : 26 April 9am to: 11am)
```

### Note for the following commands: `delete`, `mark`, `unmark`, `snooze`
1. If the index does not exist:
* After running `delete/mark/unmark/snooze 8`
```
Please enter a number from 1 to 2
```
2. If an integer is not entered:
* After running `delete/mark/unmark/snooze six`
```
Please enter a valid number
```

### Delete a Task - `delete`

Delete a particular task

Example of usage:
* `delete INDEX`

**NOTE:** The index must be a valid `integer` representing the index of the task

Expected outcome:
* After running `delete 1`
```
Noted. I've removed this task:
[T][ ] borrow book
Now you have 2 tasks in the list
```

### Marking/Unmarking a Task as complete - `unmark`, `mark`

Marks/Unmarks a particular task from as done/undone

Example of usage:
* `mark INDEX`
* `unmark INDEX`

**NOTE:** The index must be a valid `integer` representing the index of the task

Expected outcome:
* After running `mark 1`
```
Noted. I've marked this task as done:
[D][X] return book (by:2023-03-28T23:59:59)
```
* After running `unmark 1`
```
Noted. I've unmarked this task as done:
[D][ ] return book (by:2023-03-28T23:59:59)
```

### Snoozing a Task - `snooze`

Snoozes a particular task for 1 day

Example of usage:
* `snooze INDEX`

**NOTE:** The index must be a valid `integer` representing the index of the task

Expected outcome:
* After running `snooze 1`
```
Nice!. I've snoozed this task:
[D][ ] return book (by:2023-03-29T23:59:59)
```
**NOTE:** If the task at the index is not a `Deadline` task:
* After running `snooze 2`
```
Please enter the index of a task which is a deadline
```

### Finding a particular task - `find`

Finds any task that contains the keyword(s) given by the user

Example of usage:
* `find KEYWORDS`

Expected outcome:
* After running `find CS2103`

```
1. [E][ ] CS2103 finals (from : 26 April 9am to: 11am)
```

**NOTE:** If there are no matching tasks:
* After running `find hehe`
```
There are no tasks found with words:
hehe
```

### Exiting the program - `bye`

Exits the program

Example of usage:
* `bye`

### Saving data

Tasks stored in Duke are automatically saved after any command.
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