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

[Moo Jun Wei] iP #504

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
ad35520
Add Greet, Echo, and Exit functionality
junweimoo Aug 18, 2022
1dc859c
Add ability to store and retrieve inputs
junweimoo Aug 18, 2022
59433e5
Add ability mark and unmark tasks
junweimoo Aug 18, 2022
081e632
Support adding different types of tasks
junweimoo Aug 22, 2022
8eb1837
Add automated text UI testing
junweimoo Aug 22, 2022
ba8b47a
Handle input errors
junweimoo Aug 22, 2022
bd7449c
Add ability to delete tasks
junweimoo Aug 22, 2022
ebafc17
Refactor code for better readability
junweimoo Aug 22, 2022
9ba4bb1
Add ability to persist data using a save file
junweimoo Aug 31, 2022
7a0cdad
Store date as a LocalDate object instead of a String
junweimoo Aug 31, 2022
f95b100
Merge branch 'branch-Level-8'
junweimoo Aug 31, 2022
7615def
Fix printing of task date
junweimoo Aug 31, 2022
272b7b3
Refactor code to be more object-oriented
junweimoo Sep 1, 2022
596be76
Put all classes into the duke package
junweimoo Sep 1, 2022
a35099a
Add gradle
junweimoo Sep 1, 2022
e2a4b22
Add JUnit tests for DataParser and Parser
junweimoo Sep 1, 2022
a06d4d2
Refactor parsing code into separate classes
junweimoo Sep 2, 2022
b934cb3
Handle more invalid commands
junweimoo Sep 2, 2022
e074e85
Add find command to search the list of tasks
junweimoo Sep 9, 2022
c13b21c
Add JavaDoc comments
junweimoo Sep 9, 2022
2d069b3
Modify code to comply with the coding standard.
junweimoo Sep 9, 2022
d081eed
Merge branch 'branch-A-JavaDoc'
junweimoo Sep 9, 2022
5f24147
Merge branch 'branch-A-CodingStandard'
junweimoo Sep 9, 2022
05ec52e
Add JavaFX GUI
junweimoo Sep 9, 2022
3cfe83c
Improve code quality in InputParser
junweimoo Sep 12, 2022
5ba0b20
Merge pull request #2 from junweimoo/branch-A-CodeQuality
junweimoo Sep 12, 2022
06a22e5
Refactor parseCommand() in InputParser
junweimoo Sep 15, 2022
688825b
Add assertions to TaskList and Storage
junweimoo Sep 15, 2022
5700e9a
Merge pull request #3 from junweimoo/branch-A-Assertions
junweimoo Sep 15, 2022
a502a2e
Add ability to undo commands
junweimoo Sep 15, 2022
3b13d75
Merge pull request #4 from junweimoo/branch-BCD-Extension
junweimoo Sep 15, 2022
1b7f7b1
Remove unneeded Ui class
junweimoo Sep 15, 2022
3ccc405
Improve the GUI
junweimoo Sep 15, 2022
56d69f1
Fix truncation of longer lists by dialog boxes
junweimoo Sep 16, 2022
646856f
Add more JUnit tests
junweimoo Sep 16, 2022
f5995ab
Add user guide and screenshot
junweimoo Sep 16, 2022
d02ea3a
Refactor methods in Storage for better readability
junweimoo Sep 16, 2022
bf98f6b
Add JUnit Tests for Storage and TaskParser
junweimoo Sep 16, 2022
f54a9f6
Update user guide
junweimoo Sep 16, 2022
feba356
Add JavaDoc comments for public methods
junweimoo Sep 16, 2022
ca041f0
Improve the appearance of the GUI
junweimoo Sep 16, 2022
54e4652
Update UI screenshot
junweimoo Sep 16, 2022
3d11a0c
Improve handling of empty and invalid commands
junweimoo Sep 16, 2022
3332db6
Add more JUnit tests for UndoCommand and InputParser
junweimoo Sep 16, 2022
40568ee
Remove unused imports
junweimoo Sep 16, 2022
7da2071
Fix undo delete task to add task back to correct position
junweimoo Sep 16, 2022
7fc7be5
Add a welcome message
junweimoo Sep 16, 2022
76c5628
Fix indentation of switch statement
junweimoo Sep 16, 2022
fb1dd66
Add JavaDoc comments for constructors
junweimoo Sep 16, 2022
13de582
Add JavaDoc for classes
junweimoo Sep 16, 2022
bdae392
Update user guide
junweimoo Sep 16, 2022
c4ccc86
Update user guide
junweimoo Sep 16, 2022
87a48ee
Update user guide
junweimoo Sep 16, 2022
d52ccea
Add JavaDoc comments
junweimoo Sep 16, 2022
d25fd66
Update user guide
junweimoo Sep 16, 2022
dfb6231
Fix code style
junweimoo Sep 17, 2022
cf5d827
Make dialog box resize to fit text width
junweimoo Sep 17, 2022
68b4c2f
Update screenshot
junweimoo Sep 17, 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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Duke project template
# duke.Duke project template

This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it.

Expand All @@ -13,7 +13,7 @@ Prerequisites: JDK 11, update Intellij to the most recent version.
1. If there are any further prompts, accept the defaults.
1. Configure the project to use **JDK 11** (not other versions) as explained in [here](https://www.jetbrains.com/help/idea/sdk.html#set-up-jdk).<br>
In the same dialog, set the **Project language level** field to the `SDK default` option.
3. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:
3. After that, locate the `src/main/java/duke.Duke.java` file, right-click it, and choose `Run duke.Duke.main()` (if the code editor is showing compile errors, try restarting the IDE). If the setup is correct, you should see something like the below as the output:
```
Hello from
____ _
Expand Down
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 'org.openjfx.javafxplugin' version '0.0.10'
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'checkstyle'
}

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'
}

checkstyle {
toolVersion = '10.2'
}

test {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed"

showExceptions true
exceptionFormat "full"
showCauses true
showStackTraces true
showStandardStreams = false
}
}

application {
mainClassName = "duke.Launcher"
}

run{
standardInput = System.in
}
176 changes: 163 additions & 13 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,179 @@
# User Guide

Duke is a **task management** app that helps you
keep track of your **todos**, **deadlines**, and **events**.

## Contents

1. [Features](#features)
2. [Usage](#usage)
3. [Command Summary](#command-summary)

## Features

### Feature-ABC
### Add and Delete Tasks
Duke can store todos, events, and deadlines, as well
as delete tasks you have previously added.

Description of the feature.
### List all Tasks
Duke can display all the tasks you have previously added
in a neat list.

### Feature-XYZ
### Find Tasks
Duke can search for tasks using a search term and display
them in a neat list.

Description of the feature.
### Mark and Unmark Tasks
Duke can help you to mark a task as done.
It can also unmark a task.

### Undo Commands
Duke can remember the commands you last executed and
undo them.

### Save Tasks
Duke can store your tasks in a text file, so that your
tasks are still there the next time you start it up.

## Usage

### `Keyword` - Describe action
### `todo` - Add a todo

**Format:**
`todo DESCRIPTION`

**Example of usage:**
`todo buy groceries`

**Expected outcome:**
A new todo with the description "buy groceries" is
added to your list of tasks.

### `event` - Add an event

**Format:**
`event DESCRIPTION /at DATE`

**Example of usage:**
`event my birthday /at 2022-01-01`

**Expected outcome:**
A new event with the description "my birthday"
occuring at 2022-01-01 is added to your list
of tasks.

### `deadline` - Add a deadline

**Format:**
`deadline DESCRIPTION /by DATE`

**Example of usage:**
`deadline draft contract /by 2022-01-01`

**Expected outcome:**
A new deadline with the description "draft contract",
which must be done by 2022-01-01, is added to
your list of tasks.

### `delete` - Delete a task

**Format:**
`delete INDEX`

**Example of usage:**
`delete 1`

**Expected outcome:**
The task with index number 1 is deleted from your
list of tasks.

### `list` - Display your list of tasks

**Format:**
`list`

**Example of usage:**
`list`

**Expected outcome:**
Your list of tasks is displayed neatly.

### `find` - Search for tasks

**Format:**
`find`

**Example of usage:**
`find buy`

**Expected outcome:**
Tasks with the phrase "buy" in their description
are displayed neatly.

### `mark` - Mark a task

**Format:**
`mark INDEX`

**Example of usage:**
`mark 1`

**Expected outcome:**
The task with index number 1 is marked as done.
It will be indicated as done in the list view.

### `unmark` - Unmark a task

**Format:**
`unmark INDEX`

**Example of usage:**
`unmark 1`

**Expected outcome:**
The task with index number 1 is marked as not done. It will
be indicated as not done in the list view.

### `undo` - Undo your previous command

**Format:**
`undo`

**Example of usage:**
`undo`

**Expected outcome:**
Your previous command is undone.

### `bye` - Exit the app

**Format:**
`bye`

Describe the action and its outcome.
**Example of usage:**
`bye`

Example of usage:
**Expected outcome:**
The application exits.

`keyword (optional arguments)`
### Notes

Expected outcome:
- Dates can be given in the following formats:
`yyyy-mm-dd`, `dd-MMM-yyyy`, `dd/MM/yyyy`
- Additional words after valid full commands will be ignored.
(e.g. `list tasks` will be parsed as just `list`)

Description of the outcome.
## Command Summary

```
expected output
```
| Command | Format |
|----------|---------------------------------|
| Todo | `todo DESCRIPTION` |
| Event | `event DESCRIPTION /at DATE` |
| Deadline | `deadline DESCRIPTION /by DATE` |
| Delete | `delete INDEX` |
| List | `list` |
| Find | `find INDEX` |
| Mark | `mark INDEX` |
| Unmark | `unmark INDEX` |
| Undo | `undo` |
| 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