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

[Wee Heng] IP #312

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d839859
Add Gradle support
May 24, 2020
6a815ae
implement echoes
Decaxical Jan 25, 2022
a716a9b
List ability
Decaxical Jan 25, 2022
bb75b50
Added mark and unmark task functionality
Decaxical Jan 26, 2022
8e19494
Implement Todo, Event, Deadline functionality
Decaxical Jan 30, 2022
b38e28d
Text-UI-Testing update
Decaxical Jan 30, 2022
fafdd62
Implemented DukeExceptions
Decaxical Feb 1, 2022
eb04bc7
Added delete commannd
Decaxical Feb 1, 2022
74a00d1
Added Saving functionality
Decaxical Feb 8, 2022
738ca50
Update Duke to recognize dates
Decaxical Feb 11, 2022
a2ce70c
Merge branch 'branch-Level-8'
Decaxical Feb 11, 2022
3f0f903
Revert "Merge branch 'branch-Level-8'"
Decaxical Feb 14, 2022
e6993ef
Revert "Added Saving functionality"
Decaxical Feb 14, 2022
7f7c12f
Revert "Update Duke to recognize dates"
Decaxical Feb 14, 2022
39e0e6f
Merge branch 'branch-Level-7'
Decaxical Feb 14, 2022
12cc23e
Revert "Revert "Merge branch 'branch-Level-8'""
Decaxical Feb 14, 2022
5aef82a
Revert "Revert "Added Saving functionality""
Decaxical Feb 14, 2022
6925a3a
Storage save and load datetime
Decaxical Feb 14, 2022
53d55f8
Extracted TextUI, Parser, Tasklist and Command into separate classes
Decaxical Feb 16, 2022
5ecd726
Cleaned up imports and packages
Decaxical Feb 16, 2022
c910dac
Added JUnit tests for parser and Task
Decaxical Feb 17, 2022
c3ab2f1
Changed compile version from java 15 to java 11
Decaxical Feb 17, 2022
0ccd1dc
minor UI improvement
Decaxical Feb 17, 2022
788eebd
Added Java documentation
Decaxical Feb 17, 2022
cef55d4
Updated to uphold Coding Standard
Decaxical Feb 17, 2022
2cccc29
Added parseSaveDateTime
Decaxical Feb 17, 2022
299caf5
Added FindCommand
Decaxical Feb 17, 2022
8b673af
Merge branch 'branch-A-JavaDoc'
Decaxical Feb 18, 2022
60c99d4
Merge branch 'branch-Level-9'
Decaxical Feb 18, 2022
8c11904
Updated Javadoc
Decaxical Feb 18, 2022
60aedd2
Merge branch 'add-gradle-support'
Decaxical Feb 18, 2022
7812b25
Updated gradle
Decaxical Feb 18, 2022
1fc28b2
Add GUI prototype
Decaxical Feb 19, 2022
75e98b3
Add Assertions
Decaxical Feb 19, 2022
eb1d240
Update Code Quality
Decaxical Feb 19, 2022
81ef77c
Revert "Update Code Quality"
Decaxical Feb 19, 2022
ee58544
Revert "Update Code Quality"
Decaxical Feb 19, 2022
f9b1f09
Revert "Add Assertions"
Decaxical Feb 19, 2022
66a2967
Merge branch 'branch-A-Assertions' of https://github.com/Decaxical/ip…
Decaxical Feb 19, 2022
3b45581
Update Code Quality
Decaxical Feb 19, 2022
348dc72
Merge pull request #2 from Decaxical/branch-A-CodeQuality
Decaxical Feb 19, 2022
6aa3f90
Merge pull request #3 from Decaxical/branch-A-Assertions
Decaxical Feb 19, 2022
fdc06cf
Added Sort Functionality
Decaxical Feb 21, 2022
0ea16b8
Minor update for SortCommand
Decaxical Feb 21, 2022
d1cc88c
Updated User Guide
Decaxical Feb 21, 2022
ad7f24e
Set theme jekyll-theme-slate
Decaxical Feb 21, 2022
95a600b
Set theme jekyll-theme-slate
Decaxical Feb 21, 2022
42acf6d
Set theme jekyll-theme-minimal
Decaxical Feb 21, 2022
8b5e894
Update README.md
Decaxical Feb 21, 2022
fdd2bc2
Set theme jekyll-theme-midnight
Decaxical Feb 21, 2022
e187739
Update User Guide
Decaxical Feb 21, 2022
1467de4
Update User Guide
Decaxical Feb 21, 2022
ace9d19
Update User Guide format
Decaxical Feb 21, 2022
bc87403
Improved GUI
Decaxical Feb 21, 2022
d830809
Added UI.png
Decaxical Feb 21, 2022
5b8d45b
Minor update to User Guide format
Decaxical Feb 21, 2022
4ac0813
Minor bug fix update
Decaxical Feb 21, 2022
11ca41c
Update User Guide
Decaxical Feb 21, 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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
```
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 {
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'
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 = "duke.Launcher"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
125 changes: 111 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,126 @@
# User Guide
Duke is a **desktop app for managing tasks, optimized via a Command Line Interface** (CLI).

A Graphical User Interface (GUI) has also been added which mimics a chatbot you can interact with.

- [Quick Start](#quick-start)
- [Features](#features)
- [Adding a task](#adding-a-task)
- [Listing all tasks](#listing-all-tasks-list)
- [Sorting all tasks by time](#sorting-all-tasks-by-time-sort)
- [Finding tasks by keyword](#finding-tasks-by-keyword-find)
- [Marking a task as done](#marking-a-task-as-done-mark)
- [Unmarking a task](#unmarking-a-task-unmark)
- [Deleting a task](#deleting-a-task-delete)
- [Exiting the program](#exiting-the-program-bye)
- [Command Summary](#command-summary)
- [References](#references)

## Quick Start
1. Ensure that you have Java `11` or above installed on your Computer.
2. Download the latest `duke.jar` from [here](https://github.com/Decaxical/ip/releases).
3. Copy the file to the folder you want to use as the *home folder* for Duke.
4. Double-click the file to start the app.
5. Type the command in the command box and press `Enter` key or click the `Send` button to execute it.
6. Refer to the [Features](#features) below for details of each command.

## Features
**Notes about the command format:**
- Parameters to be supplied by the user are in `UPPER_CASE`.

e.g. `todo TASK_NAME`, `TASK_NAME` is a parameter to be supplied such as `todo homework`.

---
### Adding a task:
Duke supports 3 types of tasks: `todo`, `deadline` and `event`
### Adding a todo task: `todo`
Adds a task that has no date and time parameters.

Format: `todo TASK_NAME`

Example: `todo return book`

### Adding a deadline task: `deadline`
Adds a task that needs to be done before a specific date/time.

Format: `deadline TASK_NAME /by DD/MM/YYYY HH:MM`

Example: `deadline submit project /by 22/02/2022 22:22`

### Adding an event task: `event`
Adds a task that starts at a specific date/time.

Format: `event TASK_NAME /at DD/MM/YYYY HH:MM`

Example: `event volleyball training /at 24/02/2022 21:00`

---
### Listing all tasks: `list`

Shows a numbered list of all tasks in the task list.

Format: `list`

---
### Sorting all tasks by time: `sort`

Separates all tasks by type before sorting them by time. Upcoming tasks are displayed first.

Format: `sort`

---
### Finding tasks by keyword: `find`
Find tasks whose name contains the keyword supplied.

Format: `find KEYWORD`

Example: `find meeting`

---
### Marking a task as done: `mark`
Marks task at given index as done.

Format: `mark INDEX`

Example: `mark 4`

### Feature-ABC
---
### Unmarking a task: `unmark`
Unmarks task at given index.

Description of the feature.
Format: `unmark INDEX`

### Feature-XYZ
Example: `unmark 4`

Description of the feature.
---
### Deleting a task: `delete`
Deletes task at given index.

## Usage
Format: `delete INDEX`

### `Keyword` - Describe action
Example: `delete 3`

Describe the action and its outcome.
---
### Exiting the program: `bye`

Example of usage:
Exits the program.

`keyword (optional arguments)`
Format: `bye`

Expected outcome:
## Command Summary

Description of the outcome.
Action | Format, Examples
---| ---
Todo | `todo TASK_NAME` </br> e.g., `todo return book`
Deadline| `deadline TASK_NAME /by DD/MM/YYYY HH:MM` <br/> e.g., `deadline submit project /by 22/02/2022 22:22`
Event | `event TASK_NAME /at DD/MM/YYYY HH:MM` <br/> e.g., `event volleyball training /at 24/02/2022 21:00`
List | `list`
Sort | `sort`
Find | `find KEYWORD` <br/> e.g., `find meeting`
Mark | `mark INDEX` <br/> e.g., `mark 4`
Unmark | `unmark INDEX` <br/> e.g., `unmark 4`
Delete | `delete INDEX` <br/> e.g., `delete 3`
Exit | `bye`

```
expected output
```
## References
[AddressBook-Level3](https://github.com/j-lum/addressbook-level3)
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-midnight
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