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

Michael Ong iP #235

Open
wants to merge 42 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
3b19ba1
Add Gradle support
May 24, 2020
a75fcee
build.gradle: Update version to 8.29
Aug 29, 2020
4498a6b
test
maikongeh Jan 21, 2021
3ba23a5
level1
maikongeh Jan 21, 2021
1332167
level 2
maikongeh Jan 21, 2021
bf447d2
level 4
maikongeh Jan 21, 2021
dd958f6
level 6
maikongeh Jan 21, 2021
a4a2685
Level 7
maikongeh Jan 28, 2021
7079a47
Level-8
maikongeh Feb 4, 2021
6988915
A-MoreOOP
maikongeh Feb 4, 2021
8c6a077
A-Packages
maikongeh Feb 4, 2021
8572393
Commit before taskList
maikongeh Feb 5, 2021
9dd0f7e
Implement TaskList
maikongeh Feb 5, 2021
b2618e0
A-JavaDoc
maikongeh Feb 8, 2021
2b500b2
A-CodingStandard
maikongeh Feb 9, 2021
8cb2983
Merge branch 'Branch-A-CodingStandard'
maikongeh Feb 9, 2021
ee2df78
Level-9
maikongeh Feb 9, 2021
fbb0793
Merge branch 'branch-Level-9'
maikongeh Feb 9, 2021
d984a52
Merge branch 'add-gradle-support'
maikongeh Feb 9, 2021
94ecea4
A-Gradle
maikongeh Feb 9, 2021
80cb4ab
Merge branch 'branch-A-Gradle'
maikongeh Feb 9, 2021
be0283c
Save Before GUI
maikongeh Feb 16, 2021
57b5d4e
Level-10
maikongeh Feb 16, 2021
e178e21
Merge branch 'branch-Level-10'
maikongeh Feb 16, 2021
0080b9c
A-Assertions
maikongeh Feb 16, 2021
ec0b360
Merge branch 'branch-Assertions'
maikongeh Feb 16, 2021
b6558dc
A-UserGuide
maikongeh Feb 19, 2021
197fc2a
fix bugs found
maikongeh Feb 19, 2021
80b1fea
update final file
maikongeh Feb 19, 2021
7cf7620
update
maikongeh Feb 19, 2021
53e6063
improve codeQuality
maikongeh Feb 22, 2021
9720822
Merge branch 'branch-A-codeQuality'
maikongeh Feb 22, 2021
669c7dc
move Ui.png to ip folder
maikongeh Feb 22, 2021
687d765
Create config.yml file Set theme jekyll-theme-cayman
maikongeh Feb 27, 2021
27d8d64
Merge branch 'branch-UserGuide'
maikongeh Feb 27, 2021
2b332ac
Set theme jekyll-theme-cayman
maikongeh Feb 27, 2021
37032d1
Set theme jekyll-theme-cayman
maikongeh Feb 27, 2021
45b9fb5
Set theme jekyll-theme-cayman
maikongeh Feb 27, 2021
3993d29
Update README.md
maikongeh Feb 27, 2021
78260bb
Merge branch 'master' of https://github.com/maikongeh/ip
maikongeh Mar 15, 2021
fdd22b6
reduce long methods and deep nesting
maikongeh Mar 15, 2021
8cbcf22
Merge branch 'master' of https://github.com/maikongeh/ip
maikongeh Mar 15, 2021
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
158 changes: 135 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,135 @@
# 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.

## Setting up in Intellij

Prerequisites: JDK 11, update Intellij to the most recent version.

1. Open Intellij (if you are not in the welcome screen, click `File` > `Close Project` to close the existing project first)
1. Open the project into Intellij as follows:
1. Click `Open`.
1. Select the project directory, and click `OK`.
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).
1. After that, locate the `src/main/java/Duke.java` file, right-click it, and choose `Run Duke.main()`. If the setup is correct, you should see something like the below:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
# User Guide
Welcome to MAGATRON!

MAGATRON is here to help you keep log important events and keep track of impending deadlines.

MAGATRON has a CLI (command-line interface). The valid commands are listed below in "Features".

## Features

### Managing Tasks
MAGATRON helps you log tasks. Tasks are split into 3 categories.
* todo
* deadline
* event

MAGATRON allows you to add, view, mark-as-done and delete these tasks whenever necessary.
Deadline tasks have an additional feature, reminder, that updates you how long you have left
until the deadline for the task.

## Commands

### Adding Tasks to the TaskList

* #### `todo` - Adds Todo task

Adds a "todo" task to your task list.
Todo tasks do not have specified due by date or other additional information

Example of usage:

todo Clean the floor

Expected outcome:

Got it! I've added this new Task!
[T][x] Clean the floor
Now you have 1 task in your TaskList.

* #### `deadline` - Adds Deadline task

Adds a "Deadline" to your task list.
Deadline tasks have a description and a due date.
They are split using a " /by "
Dates have to follow convention of YYYY-MM-DD.


Example of usage:

deadline homework /by 2021-03-03

Expected outcome:

Got it! I've added this new Task!
[D][x] homework by (by: 2021-03-03)
Now you have 2 tasks in your TaskList.

* #### `event` - Adds Event

Adds an "event" task to your task list.
Event tasks have a description and location.
They are split using a " /at ". Locations do not have to
follow any convention.


Example of usage:

event Party /at Clementi Mall

Expected outcome:

Got it! I've added this new Task!
[E][x] Party (at: Clementi Mall)
Now you have 3 tasks in your TaskList.

### Managing the TaskList

* #### `list` - lists all the logged tasks

"List" all tasks from your task list.

Example of usage:

list

Expected outcome:

Here are your remainding tasks!
1. [T][x] Clean the floor
2. [D][x] homework by (by: 2021-03-03)
3. [E][x] Party (at: Clementi Mall)

* #### `delete` - Deletes Task

**Delete** a task from your task list.

Example of usage:

delete 3

Expected outcome:

Noted! I have removed this task from the list.
[E][x] Party (at: Clementi Mall)

* #### `find` - Finds Tasks

"Finds" the tasks from your TaskList containing the given keyword.
keywords are only compared to the description of each task.

Example of usage:

find Clean the floor

Expected outcome:

Here are the relevant tasks:
1. [T][x] Clean the floor

* #### `reminder` - reminds you of impending deadline
"reminder" shows a list of all impending deadline tasks in order of
days till the deadline.

Example of usage:

reminder

Expected outcome:

Here are your upcoming deadline Tasks!
1. [D][x] homework by (by: 2021-03-03) x days left!!


## Acknowledgement

Reused @banchiang code for GUI implementation.
Binary file added 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 _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-cayman
61 changes: 61 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
plugins {
id 'java'
id 'application'
id 'checkstyle'
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 = "duke.Duke"
}

shadowJar {
archiveBaseName = "duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
}
12 changes: 12 additions & 0 deletions data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[E][✓] party (at: Clementi Mall)
[D][✘] assignment (by: 2021-03-03)
[D][✘] deadlineadad (by: 2020-01-01)
[D][✘] deadlines (by: 2023-12-12)
[D][✘] task1 (by: 2031-12-12)
[D][✘] deadlines (by: 2020-12-12)
[D][✘] deadline123 (by: 2012-12-12)
[D][✘] valid deadline (by: 2030-12-12)
[D][✘] deadline (by: 2040-12-12)
[T][✘] hi
[E][✘] event (at: place)
[D][✘] deadline (by: 1999-12-12)
131 changes: 123 additions & 8 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,135 @@
# User Guide
Welcome to MAGATRON!

MAGATRON is here to help you keep log important events and keep track of impending deadlines.

MAGATRON has a CLI (command-line interface). The valid commands are listed below in "Features".

## Features

### Feature 1
Description of feature.
### Managing Tasks
MAGATRON helps you log tasks. Tasks are split into 3 categories.
* todo
* deadline
* event

MAGATRON allows you to add, view, mark-as-done and delete these tasks whenever necessary.
Deadline tasks have an additional feature, reminder, that updates you how long you have left
until the deadline for the task.

## Commands

### Adding Tasks to the TaskList

* #### `todo` - Adds Todo task

Adds a "todo" task to your task list.
Todo tasks do not have specified due by date or other additional information

Example of usage:

todo Clean the floor

Expected outcome:

Got it! I've added this new Task!
[T][x] Clean the floor
Now you have 1 task in your TaskList.

* #### `deadline` - Adds Deadline task

Adds a "Deadline" to your task list.
Deadline tasks have a description and a due date.
They are split using a " /by "
Dates have to follow convention of YYYY-MM-DD.


Example of usage:

deadline homework /by 2021-03-03

Expected outcome:

Got it! I've added this new Task!
[D][x] homework by (by: 2021-03-03)
Now you have 2 tasks in your TaskList.

* #### `event` - Adds Event

Adds an "event" task to your task list.
Event tasks have a description and location.
They are split using a " /at ". Locations do not have to
follow any convention.


Example of usage:

event Party /at Clementi Mall

Expected outcome:

Got it! I've added this new Task!
[E][x] Party (at: Clementi Mall)
Now you have 3 tasks in your TaskList.

## Usage
### Managing the TaskList

### `Keyword` - Describe action
* #### `list` - lists all the logged tasks

Describe action and its outcome.
"List" all tasks from your task list.

Example of usage:
Example of usage:

`keyword (optional arguments)`
list

Expected outcome:

`outcome`
Here are your remainding tasks!
1. [T][x] Clean the floor
2. [D][x] homework by (by: 2021-03-03)
3. [E][x] Party (at: Clementi Mall)

* #### `delete` - Deletes Task

**Delete** a task from your task list.

Example of usage:

delete 3

Expected outcome:

Noted! I have removed this task from the list.
[E][x] Party (at: Clementi Mall)

* #### `find` - Finds Tasks

"Finds" the tasks from your TaskList containing the given keyword.
keywords are only compared to the description of each task.

Example of usage:

find Clean the floor

Expected outcome:

Here are the relevant tasks:
1. [T][x] Clean the floor

* #### `reminder` - reminds you of impending deadline
"reminder" shows a list of all impending deadline tasks in order of
days till the deadline.

Example of usage:

reminder

Expected outcome:

Here are your upcoming deadline Tasks!
1. [D][x] homework by (by: 2021-03-03) x days left!!


## Acknowledgement

Reused @banchiang code for GUI implementation.
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.
6 changes: 6 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#Tue Feb 09 17:35:46 SGT 2021
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
Loading