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

[Aakansha Narain] iP #491

Draft
wants to merge 57 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
d839859
Add Gradle support
May 24, 2020
ff47a7a
Level-1
aakanshanarain Aug 16, 2021
7358409
Level-2
aakanshanarain Aug 16, 2021
3147541
Level-3
aakanshanarain Aug 16, 2021
5869554
Level-4
aakanshanarain Aug 17, 2021
9ff98b5
A-TextUiTesting
aakanshanarain Aug 17, 2021
abe05eb
Level-5
aakanshanarain Aug 18, 2021
afabe7d
Level-6
aakanshanarain Aug 18, 2021
a82ef81
Level-6
aakanshanarain Aug 18, 2021
1a56d9d
Add more OOP
aakanshanarain Aug 29, 2021
15af52e
Move classes to duke package
aakanshanarain Aug 29, 2021
feca504
Add Storage class
aakanshanarain Sep 15, 2021
e3694ff
Add JUnit Tests
aakanshanarain Sep 15, 2021
8c70f0d
Add JAR file
aakanshanarain Sep 15, 2021
edfb3f6
Add Javadocs to public methods
aakanshanarain Sep 15, 2021
257ac69
Tweak to comply with coding standards
aakanshanarain Sep 15, 2021
ab089f4
Add find command functionality
aakanshanarain Sep 17, 2021
fc54428
Merge branch 'branch-A-CodingStandard'
aakanshanarain Sep 17, 2021
3109605
Resolve conflicts while merging branch-Level-9
aakanshanarain Sep 17, 2021
acf0641
Merge remote-tracking branch 'origin/add-gradle-support' into branch-…
aakanshanarain Sep 17, 2021
98b0856
Add Gradle support to automate some build tasks
aakanshanarain Sep 17, 2021
20af5bb
Add GUI to Duke
aakanshanarain Sep 18, 2021
3c0c2b5
Add storage functionality to save tasklist
aakanshanarain Sep 18, 2021
7192bbb
Add date and time conversion for task inputs
aakanshanarain Sep 18, 2021
c37b6a3
Add more OOP
aakanshanarain Sep 18, 2021
4619db6
Add more JavaDocs and tweak coding style
aakanshanarain Sep 18, 2021
c228d14
Add assertions
aakanshanarain Sep 18, 2021
16385f3
Revert "Add assertions"
aakanshanarain Sep 18, 2021
94c3a0a
Add assertions
aakanshanarain Sep 18, 2021
9370619
Improve overall code quality: modify to adhere to SLAP and add better…
aakanshanarain Sep 18, 2021
6df5f8c
Merge pull request #2 from aakanshanarain/branch-A-Assertions
aakanshanarain Sep 18, 2021
227584f
Merge pull request #3 from aakanshanarain/branch-A-CodeQuality
aakanshanarain Sep 18, 2021
f576001
Add tagging functionality for tasks
aakanshanarain Sep 18, 2021
0f34752
Rectify problems with the GUI
aakanshanarain Sep 19, 2021
8a175e0
Add Ui.png
aakanshanarain Sep 19, 2021
c4e7b8f
Add User Guide
aakanshanarain Sep 19, 2021
4c29fb3
Change homepage screenshot for user guide
aakanshanarain Sep 19, 2021
e5d7624
Set theme jekyll-theme-minimal
aakanshanarain Sep 19, 2021
896873a
Set theme jekyll-theme-minimal
aakanshanarain Sep 19, 2021
7f2eaac
Set theme jekyll-theme-cayman
aakanshanarain Sep 19, 2021
3c4eac7
Set theme jekyll-theme-minimal
aakanshanarain Sep 19, 2021
1a66261
Add acknowledgments
aakanshanarain Sep 19, 2021
9163300
Merge branch 'master' of github.com:aakanshanarain/ip
aakanshanarain Sep 19, 2021
8e9ec2f
Tweak README.md
aakanshanarain Sep 19, 2021
6b49768
Update README.md
aakanshanarain Sep 19, 2021
b90d9b5
Set theme jekyll-theme-minimal
aakanshanarain Sep 19, 2021
52a8bb9
Update README.md
aakanshanarain Sep 19, 2021
43f2042
Update README.md
aakanshanarain Sep 19, 2021
9126f32
Tweak README.md to fix images and replace Ui.png
aakanshanarain Sep 20, 2021
f073024
Tweak README.md to fix Homepage image
aakanshanarain Sep 20, 2021
e696299
Update to help command for the GUI
aakanshanarain Sep 20, 2021
e65284f
Tweak Duke.java
aakanshanarain Sep 20, 2021
ca20ffe
Clean code by removing redundant methods and add more JavaDocs
aakanshanarain Sep 20, 2021
9ca2212
Delete tasks.txt
aakanshanarain Sep 20, 2021
dac5432
Fix issues with launching on Windows and Linux
aakanshanarain Sep 21, 2021
589e068
Refactor code in CommandHandler, Parser and Ui
aakanshanarain Sep 21, 2021
7fceaae
Update exceptions to be more comprehensive
aakanshanarain Sep 23, 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
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: Duke

62 changes: 62 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
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 = "Launcher"
}

shadowJar {
archiveBaseName = "Duke"
archiveClassifier = null
}

checkstyle {
toolVersion = '8.29'
}

run{
standardInput = System.in
enableAssertions = true
}
Binary file added docs/Homepage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
191 changes: 182 additions & 9 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,202 @@
# User Guide
Welcome to Duke! Duke is your personal desktop-based task manager, available both on the command line, as well as on Graphical User Interface (GUI).

![Homepage](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/Homepage.png)

Continue reading to find out more.
## Features
Duke provides you with many features to optimise your task management. Here's a quick list:
1. Add different types of tasks
2. List all the tasks in the task list
3. Mark a task as done
4. Delete a task
5. Find tasks that contain a keyword
6. Tag a task
7. Exit Duke
8. View stored tasks from a previous session

### Add different types of tasks

You can input 3 types of tasks; ```todo```, ```deadline``` and ```event```.
> For deadline and event tasks, you will need to specify a date and time as well.

![addTask](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/addTask.png)

### List all the tasks in the task list

You can ask Duke to list all the tasks in your task list at a particular time.

![showTasks](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/showTasks.png)

### Mark a task as done

You can check off a task once you've finished it.

![doneTask](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/doneTask.png)

### Delete a task

You can ask Duke to delete a task from your list.

### Feature-ABC
![deleteTask](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/deleteTask.png)

Description of the feature.
### Find tasks that contain a keyword

### Feature-XYZ
Ask Duke to find all your tasks that contain a specific keyword.

Description of the feature.
![findTask](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/findTask.png)

### Tag a task

You can also tag tasks.

![tagTask](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/tagTask.png)

### View stored tasks from a previous session

Duke will automatically save your tasks, so the next time you want to view your list, your tasks will be right there for you.

![storedTasks](https://raw.githubusercontent.com/aakanshanarain/ip/master/docs/storedTasks.png)

## Usage

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

Describe the action and its outcome.
Add a todo task to your task list.

Example of usage:

`keyword (optional arguments)`
`todo research for essay`

Expected outcome:

```
Got it. I've added this task:
[T][ ] research for essay
Now you have 1 task in the list.
```

### `event` - Add event task

Add an event task to your task list.

Example of usage:

`event CS2100 lab meeting /at 23-09-2021 1600`

Expected outcome:

```
Got it. I've added this task:
[E][ ] CS2100 lab meeting (at: Sep 23 2021 04:00pm)
Now you have 2 tasks in the list.
```

### `deadline` - Add deadline task

Add a deadline task to your task list.

Example of usage:

`deadline CS2100 lab /at 25-09-2021 2359`

Expected outcome:

```
Got it. I've added this task:
[D][ ] CS2100 lab (by: Sep 25 2021 11:59pm)
Now you have 3 tasks in the list.
```

### `list` - List all your tasks

Lists all your tasks at a particular time.

Example of usage:

`list`

Expected outcome:

Description of the outcome.
```
Here are the tasks in your list:
1. [T][ ] research for essay
2. [E][ ] CS2100 lab meeting (at: Sep 23 2021 04:00pm)
3. [D][ ] CS2100 lab (by: Sep 25 2021 11:59pm)
```

### `done` - Mark a task as done

Marks a specified task as done.

Example of usage:

`done 1`

Expected outcome:

```
Nice! I've marked this task as done:
[T][X] research for essay
```

### `delete` - Delete a task

Deletes a specified task from the task list.

Example of usage:

`delete 1`

Expected outcome:

```
Noted. I've removed this task:
[T][X] research for essay
Now you have 2 tasks in the list.
```
### `find` - Find tasks with the keyword

Finds all the tasks in the task list which contain the keyword.

Example of usage:

`find lab`

Expected outcome:

```
Here are the matching tasks in your list:
1. [E][ ] CS2100 lab meeting (at: Sep 23 2021 04:00pm)
2. [D][ ] CS2100 lab (by: Sep 25 2021 11:59pm)
```


### `tag` - Tag a task

Tag a task in the task list.

Example of usage:

`tag 1 #meeting`

Expected outcome:

```
I've tagged this task as:
[E][ ] CS2100 lab meeting (at: Sep 23 2021 04:00pm) #meeting
```

### `bye` - Exit Duke

Exit the current Duke session.

Example of usage:

`bye`

Expected outcome:

```
expected output
Bye! See you next time!
```
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-minimal
Binary file added docs/addTask.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 docs/deadlineTask.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 docs/deleteTask.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 docs/doneTask.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 docs/exitDuke.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 docs/findTask.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 docs/showTasks.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 docs/storedTasks.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 docs/tagTask.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 docs/todoTask.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