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

[Daniel Ling Zhi Yuan] iP #495

Open
wants to merge 65 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
556af3f
Add Gradle support
May 24, 2020
20e22fc
test commit 2
daniellingzy Feb 17, 2023
c556405
level_1
daniellingzy Feb 17, 2023
8cf49f7
Added new features for Level-2: Storing String messages in list, and …
daniellingzy Feb 18, 2023
cfde39a
Level-3 (first attempt)
daniellingzy Feb 18, 2023
dfc7d8e
Implemented Todo, Deadline, Event classes.
daniellingzy Feb 20, 2023
a88f887
Fixed bug for print statement in "mark as done" feature.
daniellingzy Feb 20, 2023
0b382ab
updated TestUiTesting.
daniellingzy Feb 21, 2023
085c71b
Added Level-5 features
daniellingzy Feb 23, 2023
46a8438
Added Level-6 features.
daniellingzy Feb 23, 2023
7f1e659
Level-7 features: implemented, yet to be tested.
daniellingzy Feb 25, 2023
df950c4
Level-7 features completed.
daniellingzy Feb 25, 2023
33518d9
Level-8 Features completed.
daniellingzy Feb 27, 2023
052955e
Prelim Attempt on A-MoreOOP
daniellingzy Feb 27, 2023
a9796e0
Attempt on MoreOOP
daniellingzy Feb 27, 2023
3b1c7c8
MoreOOP in progress
daniellingzy Feb 27, 2023
7dfb789
More-OOP in progress.
daniellingzy Mar 8, 2023
2aeb675
More-OOP completed.
daniellingzy Mar 8, 2023
cd20336
completed A-Packages
daniellingzy Mar 8, 2023
34e1d95
"essential merge for gradle support"
daniellingzy Mar 8, 2023
99cb61e
update gradle
daniellingzy Mar 8, 2023
c636f26
Implemented Gradle to build and run program
daniellingzy Mar 9, 2023
b9848a8
new branch for implementing JUnit
daniellingzy Mar 13, 2023
e1d41e7
Updated JUnit Testcases
daniellingzy Mar 16, 2023
9f35a01
updated dependencies in build.gradle
daniellingzy Mar 16, 2023
51c6f44
Added JavaDoc
daniellingzy Mar 16, 2023
136bc53
Implemented Level-9 Find feature
daniellingzy Mar 16, 2023
5e9e0f2
Implemented Level-9
daniellingzy Mar 17, 2023
b3cab8d
Update README.md
daniellingzy Mar 21, 2023
e102f73
Update README.md
daniellingzy Mar 21, 2023
8c7be0c
Update README.md
daniellingzy Mar 21, 2023
d0938d5
Update README.md
daniellingzy Mar 21, 2023
cc40dde
Checkstyle on hold
daniellingzy Mar 21, 2023
82fa797
started GUI
daniellingzy Mar 22, 2023
5cda1b7
implemented GUI
daniellingzy Mar 23, 2023
99c45b7
update
daniellingzy Mar 23, 2023
1bccfb7
"update"
daniellingzy Mar 23, 2023
f54d1b2
Replace Ui class with new Gui class
daniellingzy Mar 24, 2023
6a7345b
Replace Ui class with new Gui class
daniellingzy Mar 24, 2023
c22d6e1
Storage class: Use assert to validate filepath
daniellingzy Mar 25, 2023
4bc5a07
Merge branch 'master' of github.com:daniellingzy/ip
daniellingzy Mar 25, 2023
700e06c
update
daniellingzy Mar 25, 2023
4c59659
add assert
daniellingzy Mar 25, 2023
06f1d19
enhance code quality
daniellingzy Mar 25, 2023
463853f
update
daniellingzy Mar 25, 2023
d542581
Merge pull request #3 from daniellingzy/branch-A-Assertions
daniellingzy Mar 25, 2023
e332444
Merge branch 'master' into branch-A-CodeQuality
daniellingzy Mar 25, 2023
1f6128e
Merge pull request #4 from daniellingzy/branch-A-CodeQuality
daniellingzy Mar 25, 2023
a8843eb
update
daniellingzy Mar 25, 2023
4448e5f
update
daniellingzy Mar 25, 2023
577045d
Merge branch 'master' of github.com:daniellingzy/ip
daniellingzy Mar 25, 2023
000d8f0
update
daniellingzy Mar 25, 2023
4458f7c
update
daniellingzy Mar 25, 2023
351769b
last check
daniellingzy Mar 25, 2023
562b7dc
Update README.md
daniellingzy Mar 25, 2023
9b2e8c4
improve gui
daniellingzy Mar 25, 2023
21c12cc
Merge branch 'master' of github.com:daniellingzy/ip
daniellingzy Mar 25, 2023
fc6a7e5
update doc
daniellingzy Mar 25, 2023
87a1655
Update README.md
daniellingzy Mar 25, 2023
f866aee
Update README.md
daniellingzy Mar 25, 2023
f7a90c4
update README
daniellingzy Mar 25, 2023
59cd668
Update README.md
daniellingzy Sep 3, 2024
3a41ef0
Update README.md
daniellingzy Sep 3, 2024
d58f44f
Update README.md
daniellingzy Sep 3, 2024
f10efa9
Rename README.md to README_old.md
daniellingzy Sep 3, 2024
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
148 changes: 124 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,124 @@
# 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).<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:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
<div align= "center">
<h1 align= "center">BrotherBot</h1>


> "We must live together as brothers or perish together like fools." - Martin Luther King Jr.
>
![](docs/Ui.png)

</div>

## About The Project

### Overview
We all need a brother out there who's got our back all the time. Introducing BrotherBot, your one-stop task planner with a "Brother" personality.
BrotherBot is designed to help you manage tasks with a unique 'bro' personality, ensuring that you stay on top of your responsibilities while feeling supported. This application transitions from traditional task management methods to a friendly, interactive approach.

### Contributor(s)

- [Daniel Ling](https://github.com/danilingzy)

### Built With

This section lists major libraries used.

* [JavaFX](https://openjfx.io/)
* [JUnit](https://junit.org/junit5/)


## Features

<div align= "left">

- [X] Tracks tasks
- [ ] Eat supper with you *(coming soon)*

</div>

***
### Adding Tasks
1. #### Add ToDo Tasks: ```todo```
Add a ToDo task that you need to complete using the ```todo``` keyword.
Example: ```todo run``` will add "run" to your list of tasks.

2. #### Add Deadline Tasks: ```deadline```
Add a Deadline Task that you have to complete by a certain deadline using the ```deadline``` keyword.
Deadline will be entered behind a slash, with the format of ***'dd/MM/yyyy HHmm'***.
Example: ```deadline project /by 23/02/2023 1400``` will add "project" to your list of tasks.

3. #### Add Event Tasks: ```event```
Add an Event that you have to attend using the ```event``` keyword.
Duration of the event will be entered with behind a slash, with the first slash representing the start of the event and the second slash representing the end of the event.
Example: ```event CS2103T Lecture /from 17/01/2023 1400 /to 17/01/2023 1600``` will add "CS2103T Lecture" to your list of tasks.

***

### Deleting Tasks: ```delete```

Delete a task in the task list using the ```delete``` keyword.
A positive integer (i.e., 1, 2, 3...) must be specified behind the keyword, and the task to be deleted should exist.
Example: ```delete 2``` will delete the second item in the list.

***

### Exiting the Application: ```bye```

Simply by using the keyword ```bye```, the program will exit on its own.
Example: ```bye``` will exit the program.

***

### Finding Tasks: ```find```

Find a task in the list using the ```find``` keyword.
The task you are looking for should be entered behind the keyword.
Example: ```find project``` will list out all the tasks that contain the word 'project'.

***

### Displaying Tasks: ```display```

List out all the tasks using the ```display``` keyword.
Example: ```display``` will list out all the tasks that exist.

***

### Marking Tasks: ```mark```

Mark a task that has been completed using the ```mark``` keyword.
A positive integer (i.e., 1, 2, 3...) should be specified behind the keyword.
Example: ```mark 3``` will mark the third task on the list.

***

### Finding Freeslot: ```free```

Find the next free slot using the ```free``` keyword.
A valid duration of format ***'xHyyM'*** where x is the number of hours, and yy is the number of minutes, should be entered behind the keyword.
Example: ```free 2H30M``` will return your next free 2 hour 30 minute time slot.

## Getting Started

Bro! It is:

- ~~Hard~~ Easy to use
- *Friendly*
- Treats u like a real **bro** :star_struck:

### Wanna gain a real bro?

Download it [here](https://github.com/daniellingzy/ip/releases/tag/v0.2)

Here’s the `Launcher` class:
```java
package brotherbot;

import javafx.application.Application;

public class Launcher {
public static void main(String[] args) {
Application.launch(BrotherBot.class, args);
}
}
```

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 'com.github.johnrengelman.shadow' version '5.1.0'
}

repositories {
gradlePluginPortal()
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 = "brotherbot.Launcher"
}

shadowJar {
archiveBaseName = "Launcher"
archiveClassifier = null
}

run {
standardInput = System.in
enableAssertions = true
}

run {

}
Empty file added data.txt
Empty file.
29 changes: 0 additions & 29 deletions docs/README.md

This file was deleted.

141 changes: 141 additions & 0 deletions docs/README_old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# BrotherBot

> "We must live together as brothers or perish together like fools." - Martin Luther King Jr.

We all need a brother out there who's got our back all the time. Introducing BrotherBot, your one-stop task planner with a "Brother" personality.

Bro! It is:

- ~~Hard~~ Easy to use
- *Friendly*
- Treats u like a real **bro** :star_struck:

## Wanna gain a real bro?

1. Download it [here](https://github.com/daniellingzy/ip/releases/tag/v0.2)

## Bro features


- [X] Tracks tasks
- [ ] Eat supper with you *(coming soon)*

If you are a Java programmer, you can review the code easily with its well designed code and JavaDocs. Here's the `Launcher` class:
```
package brotherbot;

import javafx.application.Application;

public class Launcher {
public static void main(String[] args) {
Application.launch(BrotherBot.class, args);
}
}
```

```
Adapted from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```




# User Guide


## **Welcome to _BrotherBot_.**
BrotherBot is an application used to manage your tasks with a unique 'bro' personality!

## Feature Summary
- [Adding Tasks](https://github.com/daniellingzy/ip/edit/master/docs/README.md#adding-tasks)
- ToDo Tasks: ```todo```
- Deadline Tasks: ```deadline```
- Event Tasks: ```event```
- [Deleting Tasks](https://github.com/daniellingzy/ip/edit/master/docs/README.md#deleting-tasks-delete): ```delete```
- [Exiting Program](https://github.com/daniellingzy/ip/edit/master/docs/README.md#exiting-the-application-bye): ```bye```
- [Finding Tasks](https://github.com/daniellingzy/ip/edit/master/docs/README.md#finding-tasks-find): ```find```
- [Displaying Tasks](https://github.com/daniellingzy/ip/edit/master/docs/README.md#displaying-tasks-display): ```display```
- [Marking Tasks](https://github.com/daniellingzy/ip/edit/master/docs/README.md#marking-tasks-mark): ```mark```
- [Finding Freeslot](https://github.com/daniellingzy/ip/edit/master/docs/README.md#finding-freeslot): ```free```

## Features

### Adding Tasks
1. #### Add ToDo Tasks: ```todo```
Add a ToDo task that you have to complete using the ```todo``` keyword.

Example: ```todo run``` will add run to your list of tasks

2. #### Add Deadline Tasks: ```deadline```
Add a Deadline Task that you have to complete by a certain deadline using the ```deadline``` keyword.
Deadline will be entered behind a slash, with the format of ***'dd/MM/yyyy HHmm'***.

Example: ```deadline project /by 23/02/2023 1400``` will add project to your list of tasks

3. #### Add Event Tasks: ```event```
Add an Event that you have to attend using the ```event``` keyword.
Duration of the event will be entered with behind a slash, with the first slash representing the start of the event and the second slash representing the end of the event.
Duration format for the start and end of the event will follow ***'dd/MM/yyyy HHmm'***.

Example: ```event CS2103T Lecture /from 17/01/2023 1400 /to 17/01/2023 1600``` will add CS2103T Lecture to your list of tasks

***

### Deleting Tasks: ```delete```

Delete a task in the tasklist using the ```delete``` keyword.
A positive integer (ie. 1, 2, 3...) must be specified behind the keyword and the task to be deleted should exist.

Example: ```delete 2``` will delete the second item in the list

***

### Exiting the Application: ```bye```

Simply by using the keyword ```bye```, the program will exit on its own.

Example: ```bye``` will exit the program

***

### Finding Tasks: ```find```

Find a task in the list using the ```find``` keyword.
The task you are looking for should be entered behind the keyword.

Example: ```find project``` will list out all the tasks that contains the word 'project'

***

### Displaying Tasks: ```display```

List out all the tasks using the ```display``` keyword.

Example: ```display``` will list out all the tasks that exist

***

### Marking Tasks: ```mark```

Mark a task that has been completed using the ```mark``` keyword.
A positive integer (ie 1, 2, 3...) should be specified behind the keyword.

Note: Task to be marked should exist and should not already be marked.

Example: ```mark 3``` will mark the third task on the list


***

### Finding Freeslot: ```free```

Find the next freeslot using the ```free``` keyword.
A valid duration of format ***'xHyyM'*** where x is the number of hours, and yy is the number of minutes,
should be entered behind the keyword.

Example: ```free 2H30M``` will return your next free 2 hour 30 minute timeslot.
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.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading