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

[Chen Shun] IP #491

Open
wants to merge 43 commits into
base: master
Choose a base branch
from
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
556af3f
Add Gradle support
May 24, 2020
bf18301
Completed Level-1: Greet, Echo, Exit
Aug 17, 2022
189974b
Completed Level-2:Add, List
Aug 17, 2022
bc4a20d
Completed Level-3: Mark as Done
Aug 17, 2022
5069f37
Completed Level-4: ToDo, Event, Deadline
Aug 18, 2022
bf5775d
Completed A-TextUiTesting
Aug 18, 2022
8f6487f
Completed Level-5: Handle Errors
Aug 18, 2022
36a59a4
Completed Level-6: Delete
Aug 18, 2022
3acfe0f
Edit week 1 code
Aug 27, 2022
92c0964
Fix bug in creating event
Aug 30, 2022
f0bb7e8
Fix Storage
Sep 8, 2022
0073321
implement save
Sep 12, 2022
0cf0052
implement time
Sep 12, 2022
b658a37
Merge branch 'branch-Level-7'
Sep 12, 2022
b64766f
Merge branch 'branch-Level-8'
Sep 12, 2022
a4488c3
Improve OOP
Sep 17, 2022
44d0291
Add packages
Sep 17, 2022
9c8b5cc
Merge branch 'add-gradle-support'
Sep 18, 2022
8438324
Add Gradle
Sep 18, 2022
67c53d9
Add JUnit Tests
Sep 19, 2022
fe8986c
Add shadowJar setting
Sep 19, 2022
100fd04
Implement Find command
Sep 19, 2022
b2dd153
Add JavaDocs
Sep 19, 2022
89a6a4f
Improve code quality
Sep 19, 2022
a626c85
Merge branch 'branch-A-CodingStandard'
Sep 19, 2022
313b798
Merge branch 'branch-Level-9'
Sep 19, 2022
2d15955
Add GUI
Sep 19, 2022
77aeb9c
Add assertions
Sep 19, 2022
670d13d
Improve code quality
Sep 19, 2022
f651ac5
Merge pull request #2 from ciaoosuuu/branch-A-Assertions
ciaoosuuu Sep 19, 2022
1f8b35c
Merge pull request #3 from ciaoosuuu/branch-A-CodeQuality
ciaoosuuu Sep 19, 2022
039798b
Add detect duplicates function
Sep 19, 2022
33af3d6
Add personality to pony
Sep 19, 2022
c0efce6
Find command: make matching case insensitive
Sep 19, 2022
6b98696
Edit JavaDoc and improve code quality
Sep 19, 2022
ca2e519
Fix bug in todo accepting blank messages
Sep 19, 2022
349ee22
Add Ui and readme
Sep 19, 2022
d24995f
Update README
Sep 19, 2022
d617f65
Update README and fix typo
Sep 19, 2022
124f0ef
Update README
Sep 19, 2022
73de435
Update README
Sep 19, 2022
f1c7843
Update README
Sep 19, 2022
ce20d06
Update README
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
56 changes: 56 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
id 'java'
id 'application'
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 = "pony.javafx.Launcher"
}

shadowJar {
archiveBaseName = "pony"
archiveClassifier = ""
}

run{
standardInput = System.in
}
2 changes: 2 additions & 0 deletions data/pony.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
T | 0 | watch movie
D | 1 | return book | 2022-06-20 16:00
223 changes: 212 additions & 11 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,230 @@

@@author ciaoosuuu-reused

Reused from [kshan29](https://kshan29.github.io/ip/#quick-start)

With minor modifications
# User Guide

## Features
Pony is a desktop app for managing tasks, optimized for use via a Command Line Interface (CLI)
while still having the benefits of a Graphical User Interface (GUI). Pony provides flexibility by
allowing the tracking of various types of tasks including events and deadlines.

- [Quick start](https://ciaoosuuu.github.io/ip/#quick-start)
- [Features](https://ciaoosuuu.github.io/ip/#features)
- [Usage](https://ciaoosuuu.github.io/ip/#usage)
- [Adding a todo: `todo`](https://ciaoosuuu.github.io/ip/#adding-a-todo-todo)
- [Adding a deadline: `deadline`](https://ciaoosuuu.github.io/ip/#adding-a-deadline-deadline)
- [Adding a event: `event`](https://ciaoosuuu.github.io/ip/#adding-a-event-event)
- [Listing all tasks: `list`](https://ciaoosuuu.github.io/ip/#listing-all-tasks-list)
- [Deleting a task: `delete`](https://ciaoosuuu.github.io/ip/#deleting-a-task-delete)
- [Finding specific tasks: `find`](https://ciaoosuuu.github.io/ip/#finding-specific-tasks-find)
- [Marking a task: `mark`](https://ciaoosuuu.github.io/ip/#marking-a-task-mark)
- [Unmarking a task: `unmark`](https://ciaoosuuu.github.io/ip/#unmarking-a-task-unmark)
- [Exiting the program: `bye`](https://ciaoosuuu.github.io/ip/#exiting-the-program-bye)
- [Command summary](https://ciaoosuuu.github.io/ip/#command-summary)

## Quick Start

1. Ensure you have Java `11` or above installed in your Computer.
2. Download the latest `Pony.jar` file from [here](https://github.com/ciaoosuuu/ip/releases/tag/v1.0).
3. Locate the file and double-click the file to start the app.

![Duke UI display](Ui.png "Pony UI")

5. Type the command in the command box and press Send to execute it.

6. Refer to the [Features](https://ciaoosuuu.github.io/ip/#features) below for details of each command.



### Feature-ABC
## Features

Description of the feature.
### Task management
Add tasks by indicating type of task to add or delete tasks by indicating index of task to delete.

### Feature-XYZ
### Track task status
Mark or unmark task to track completed and incomplete tasks.

Description of the feature.
### View tasks
Display all tasks in a list or filter tasks using a keyword.

## Usage
### Adding a task
You can add either a todo, event (occurs on a specified date) or deadline (due by a specified date) as tasks.

#### Adding a todo: `todo`
Adds a todo.

Format: `todo TASK_DESCRIPTION`

Examples:
- `todo watch movie`

Expected outcome:

Todo added to task list when valid description given.

```
Got it my friend. I've added this task:
[T][ ] TASK_DESCRIPTION
Now you have X tasks in the list.
```

#### Adding a deadline: `deadline`
Adds a deadline.

Format: `deadline TASK_DESCRIPTION /by YYYY-MM-DD HH:mm`

Examples:

- `deadline return book /by 2022-09-20 16:00`

Expected outcome:

Deadline added to task list when valid description and date given.

```
Got it my friend. I've added this task:
[D][ ] TASK_DESCRIPTION (by: MMM DD YYYY HH:mm)
Now you have X tasks in the list.
```
#### Adding an event: `event`
Adds an event.

Format: `event TASK_DESCRIPTION /at YYYY-MM-DD HH:mm`

Examples:

- `event NUS Supernova /at 2022-09-22 16:00`

Expected outcome:

Event added to task list when valid description and date given.

```
Got it. I've added this task:
[E][ ] TASK_DESCRIPTION (at: MMM DD YYYY HH:mm)
Now you have X tasks in the list.
```

### Listing all tasks: `list`
Displays a list of tasks added.

Format: `list`

Expected outcome:

```
Let's look at the tasks in your list:
1. ...
2. ...
```

### Deleting a task: `delete`
Deletes the task from task list.

Format: `delete INDEX`
- Deletes the task at the specified `INDEX`.
- `INDEX` refers to the index number shown after using `list`.

Examples:

- `delete 1` deletes the 1st task in `list` if it exists.

Expected outcome:

Deletes a task when valid index is given.

```
Alright my friend, I've removed this task:
[X][ ] TASK_DESCRIPTION
Now you have X tasks in the list.
```

### Finding specific tasks: `find`
Display tasks where the description matches given keywords.

Format: `find KEYWORD`
- Search is not case-sensitive. e.g. `homework` will still match with `Homework`
- Partial keywords cannot be used.

Examples:
- `find Homework` returns a list of all tasks with description containing the keyword `homework`

Expected outcome:

```
Alright, Here's what pony found!
1. ...
2. ...
```

### Marking a task: `mark`
Marks a task as completed.

Format: `mark INDEX`
- Marks the task at the specified `INDEX` as completed.
- `INDEX` refers to the index number shown after using `list`.

### `Keyword` - Describe action
Examples:
- `mark 1` marks the first task in `list` if it exists.

Describe the action and its outcome.
Expected outcome:

Example of usage:
Marks a task as completed when valid index is given.

`keyword (optional arguments)`
```
Well done, my friend! I've marked this task as done:
[X][X] TASK_DESCRIPTION
```

### Unmarking a task: `unmark`
Marks a task as incomplete.

Format: `unmark INDEX`
- Marks the task at the specified `INDEX` as incomplete.
- `INDEX` refers to the index number shown after using `list`.

Examples:
- `unmark 1` marks the first task in `list` as incomplete if it exists.

Expected outcome:

Description of the outcome.
Marks a task as incomplete when valid index is given.

```
expected output
My friend, I've marked this task as not done yet:
[X][ ] TASK_DESCRIPTION
```

### Exiting the program: `bye`
Exits the program.

Format: `bye`

Expected outcome:

Prints goodbye message and exits the program.

```
Bye friend. Hope to see you again soon!
...
```


## Command summary

| **Action** | **Format, Examples** |
|------------|-------------------------------------------------------------------------------------------------------|
| todo | `todo TASK_DESCRIPTION` <br> e.g. `todo watch movie` |
| deadline | `deadline TASK_DESCRIPTION /by YYYY-MM-DD HH:mm` <br> e.g. `deadline Assignment /by 2022-09-15 16:00` |
| event | `event TASK_DESCRIPTION /at YYYY-MM-DD` <br> e.g. `event NUS Supernova /at 2022-09-01 18:00` |
| list | `list` |
| delete | `delete INDEX` <br> e.g. `delete 1` |
| find | `find KEYWORD` <br> e.g. `find test` |
| mark | `mark INDEX` <br> e.g. `mark 3` |
| unmark | `unmark INDEX` <br> e.g. `unmark 2` |
| bye | `bye` |

@@author
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