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

[Luah Jun Yang} iP #571

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
28ad2b8
Add Gradle support
May 24, 2020
ed6d4d2
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
8f211eb
Level 0
LuahJunYang Aug 26, 2023
c442a23
Finished Level 1, renamed bot to Frenchie
LuahJunYang Aug 26, 2023
e26ad60
Added functionality to store user input as list and print out all inp…
LuahJunYang Aug 28, 2023
2826c8b
Created Task class to be used for Frenchie
LuahJunYang Aug 28, 2023
c163e3f
Added addTask and listTask methods and a constructor to Frenchie.java
LuahJunYang Aug 30, 2023
6880516
Added mark as incomplete method to Task.java and complete and uncompl…
LuahJunYang Aug 30, 2023
9502380
Created new Task subclasses
LuahJunYang Aug 30, 2023
6403c3d
Added if-else statements and updated toString() methods for checking…
LuahJunYang Aug 30, 2023
f8faf33
Created new FrenchieException class to handle basic exceptions for no…
LuahJunYang Sep 4, 2023
59151ce
Added delete function to frenchie, changed tasks attribute to ArrayLi…
LuahJunYang Sep 4, 2023
76c74cf
Added functions saveTasksToFile and readTasksFromFile
LuahJunYang Sep 9, 2023
efa2cac
Added LocalDateTime and DateTimeFormatter functionalities to construc…
LuahJunYang Sep 10, 2023
cf2306e
Implemented enum for Commands, abstracted UI, Parser, Storage, and Ta…
LuahJunYang Sep 17, 2023
3a10e8d
Bug fixing for bye command, causing an illegal state exception when t…
LuahJunYang Sep 17, 2023
c59c708
Packaged all classes into package.frenchie
LuahJunYang Sep 18, 2023
1435a48
Merge branch 'add-gradle-support' for 'A-Gradle'
LuahJunYang Sep 18, 2023
fb9f638
Updated build.gradle file, wrote J-unit tests ToDoTest and TaskTest
LuahJunYang Sep 21, 2023
2ac3943
Added JavaDoc comments for Task, ToDo, Deadline, Event, Ui, Parser cl…
LuahJunYang Sep 21, 2023
e8b0d86
Added findMessage() method to Ui.java, find enum to Command, and retu…
LuahJunYang Sep 21, 2023
eae69dd
Resolved merge conflict in Ui.java
LuahJunYang Sep 21, 2023
04310fd
Edited void functions to return String for the GUI. Implemented GUI s…
LuahJunYang Sep 22, 2023
68fc1cb
Improving on Code Quality
LuahJunYang Sep 22, 2023
4364715
Merge pull request #3 from LuahJunYang/branch-A-CodeQuality
LuahJunYang Sep 22, 2023
c59a6cf
Add help function
LuahJunYang Sep 22, 2023
43a2dd1
Merge pull request #4 from LuahJunYang/branch-C-Help
LuahJunYang Sep 22, 2023
4806d6d
Added User Guide in README.md
LuahJunYang Sep 23, 2023
8633cba
Updating README for github page
LuahJunYang Sep 23, 2023
3f79e97
Added Screenshot of UI
LuahJunYang Sep 23, 2023
7b1615e
Updated mainClass in build.gradle to fix the jar file not running
LuahJunYang Sep 23, 2023
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: Frenchie.Frenchie

175 changes: 151 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,151 @@
# 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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
# Frenchie User Guide

## Features

### Feature 1 - Storing tasks

Storing of 3 different tasks:
1. To Do (with no deadline)
2. Deadlines (with a deadline)
3. Events (with a Start and End time)

### Feature 2 - Listing of stored tasks
### Feature 3 - Marking tasks as done/undone
### Feature 4 - Deleting tasks from the list
### Feature 5 - Searching for all tasks containing any keyword

## Usage

### `todo` - Adds a ToDo type task into the list



Example of usage:

`todo read book`

Expected outcome:

Frenchie will return this message for successfully adding a task to the list. [T] represents a ToDo task and the [ ] indicates the task is not yet completed.
```
Got it! I've added this task:

[T][ ] read book

Now you have X tasks in the list.
```

### `deadline` - Adds a Deadline type task into the list.

Deadline has to be in format dd/MM/yyyy HH:mm.

Example of usage:

`deadline read book /by 09/09/2023 18:00`

Expected outcome:

Frenchie will return this message for successfully adding a task to the list. [D] represents a Deadline task and the [ ] indicates the task is not yet completed.
```
Got it! I've added this task:

[D][ ] read book (by: 2023-09-09 18:00).

Now you have X tasks in the list.
```

### `event` - Adds an event type task into the list

Start and end time of event have to be in format dd/MM/yyyy HH:mm.
Example of usage:

`todo read book /from 09/09/2023 18:00 /to 09/09/2023 19:00`

Expected outcome:

Frenchie will return this message for successfully adding a task to the list. [E] represents an event task and the [ ] indicates the task is not yet completed.
```
Got it! I've added this task:

[E][ ] read book (from: 2023-09-09 18:00 to: 2023-09-09 19:00)

Now you have X tasks in the list.
```

### `list` - lists all tasks currently stored in Frenchie

Example of usage:

`list`

Expected outcome:

```
1. [T][ ] read book
2. [D][ ] read book (by: 2023-09-09 18:00)
3. [E][ ] read book (from: 2023-09-09 18:00 to: 2023-09-09 19:00)
```

### `mark` - mark the specified task as complete

Example of usage:

`mark 1`

Expected outcome:

```
Nice! I've marked this task as done:
[T][X] read book
```

### `unmark` - mark the specified task as complete

Example of usage:

`unmark 1`

Expected outcome:

```
OK, I've marked this task as not done yet:
[T][ ] read book
```

### `delete` - delete the specified task from the list

Example of usage:

`delete 1`

Expected outcome:

```
Noted. I've removed this task:
[T][ ] read book
Now you have X tasks in the list.
```

### `find` - search through the list and returns all tasks that contain the keyword

Example of usage:

`find book`

Expected outcome:

```
Here are the matching tasks in your list:
1. [D][ ] read book (by: 2023-09-09 18:00)
2. [E][ ] read book (from: 2023-09-09 18:00 to: 2023-09-09 19:00)
```

### `help` - returns a quickstart guide for users who have forgotten any command

Example of usage:

`help`

Expected outcome:

A quickstart guide for Frenchie listing the commands.
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 '7.1.2'
id 'checkstyle'
}
checkstyle {
toolVersion = '10.2'
}
repositories {
mavenCentral()
}

dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0'
String javaFxVersion = '17.0.7'

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 {
mainClass.set("Frenchie.Launcher")
}

shadowJar {
archiveBaseName = "Frenchie"
archiveClassifier = null
archiveFileName = "Frenchie.jar"
dependsOn("distZip", "distTar")
}

run{
standardInput = System.in
enableAssertions = true
}
Loading