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

[rithanisk] iP #628

Open
wants to merge 146 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
68c58c1
Add Gradle support
May 24, 2020
03523ec
Bump gradle and lib version
Eclipse-Dominator Aug 5, 2023
81a9c53
build.gradle: Prevent generating a second JAR file
aureliony Jul 16, 2024
cbdfbef
Implement chatbot greeting and goodbye functions
rithanisk Aug 21, 2024
f5d0ce4
Add Level 1
rithanisk Aug 22, 2024
6337950
Add Task class
rithanisk Aug 23, 2024
385c024
Add TaskList class
rithanisk Aug 23, 2024
e0259a6
Add getTaskListLength() method
rithanisk Aug 23, 2024
57d0f52
Add displayList() method
rithanisk Aug 23, 2024
aaa66e6
Add addTask() method to add a new task to the taskList
rithanisk Aug 23, 2024
88a4cc0
Add Level 2
rithanisk Aug 23, 2024
02ca5a8
Add isDone() method to Task
rithanisk Aug 23, 2024
8198949
Add markTask method to mark a task in the task list
rithanisk Aug 23, 2024
942f9dd
Add unmarkTask to unmark a task from the task list
rithanisk Aug 23, 2024
c9cc960
Modify comments for all public methods
rithanisk Aug 23, 2024
ed638cd
Refactor code that displays newly added task
rithanisk Aug 23, 2024
d147984
Add Todo class
rithanisk Aug 23, 2024
85169c3
Add Deadline class
rithanisk Aug 23, 2024
b82909a
Add Event class
rithanisk Aug 23, 2024
372acbc
Add toString method to Task class
rithanisk Aug 23, 2024
5ec62b2
Add toString() method to subclasses of Task class
rithanisk Aug 23, 2024
1df07c6
Handle Todo task command
rithanisk Aug 23, 2024
371d156
Handle Deadline task command
rithanisk Aug 23, 2024
7102fb8
Modify string in displayList() method
rithanisk Aug 23, 2024
d82a6df
Handle Event task command
rithanisk Aug 23, 2024
6ac738f
Add comments for all public methods
rithanisk Aug 24, 2024
ae44114
Change expected output from Duke's output to Nebula's output
rithanisk Aug 30, 2024
37590d3
Update EXPECTED.TXT with expected output
rithanisk Aug 31, 2024
4c846fd
Update input.txt with input commands
rithanisk Aug 31, 2024
031de66
Update runtest.sh for testing
rithanisk Aug 31, 2024
23c3b7c
Add NebulaException class
rithanisk Aug 31, 2024
4c10cf4
Add validateCommand() method to handle incorrect user input
rithanisk Sep 1, 2024
14df377
Update TaskList class to store tasks in ArrayList
rithanisk Sep 1, 2024
afc1c44
Refactor text UI testing code
rithanisk Sep 1, 2024
87c6085
Add deleteTask() method to TaskList
rithanisk Sep 1, 2024
53225a6
Add displayDeletedTask() method to Ui class
rithanisk Sep 1, 2024
2dd1625
Add TaskType Enum
rithanisk Sep 1, 2024
22b2545
Update Nebula class to use TaskType enum
rithanisk Sep 1, 2024
ac61409
Add javadoc comments to Nebula and NebulaException methods
rithanisk Sep 2, 2024
364473c
Add comment for TaskType enum
rithanisk Sep 13, 2024
5cc28dc
Add getSymbol() method to all TaskTypes
rithanisk Sep 14, 2024
e0191a5
Update getTaskSymbol methods in Task subclasses
rithanisk Sep 14, 2024
3de59c4
Add saveTaskListToTextFile method
rithanisk Sep 14, 2024
7986baa
Add getter methods for Deadline and Event class
rithanisk Sep 14, 2024
42c8bb6
Complete saveTaskListToTextFile method
rithanisk Sep 14, 2024
d966dfd
Update main to save tasks to text file
rithanisk Sep 14, 2024
6d1e44f
Add constructor to TaskList class
rithanisk Sep 14, 2024
1e8ac52
Update main to check whether taskList file exists in data folder
rithanisk Sep 14, 2024
292415c
Add space in Deadline toString method
rithanisk Sep 14, 2024
5b58896
Add textFileToArrayList method to read from existing taskList
rithanisk Sep 14, 2024
8adff34
Merge branch-Level-7 with merge commit
rithanisk Sep 14, 2024
a727c43
Add javadoc comments to Level-7 methods
rithanisk Sep 14, 2024
ebeac23
Add parseDateTimeOrDate method and format deadline as LocalDateTime
rithanisk Sep 14, 2024
0d87cc6
Update getDeadline method to output deadline in specific format
rithanisk Sep 14, 2024
a81eaec
Add parseDateTimeOrDate method and format start and end as LocalDateTime
rithanisk Sep 14, 2024
aa54427
Update getStart and getEnd to output start and end in specific format
rithanisk Sep 14, 2024
907b121
Define format for user inputted date and generated output date
rithanisk Sep 14, 2024
a22041e
Update validateCommand to handle when date is entered with wrong format
rithanisk Sep 14, 2024
9656fdb
Add convertDate method to parse the dates from taskList txt file
rithanisk Sep 14, 2024
cdf8123
Add javadoc comments to Level-8 methods
rithanisk Sep 14, 2024
8be7a20
Merge branch-Level-8 with merge commit
rithanisk Sep 14, 2024
b5175de
Add Storage class
rithanisk Sep 14, 2024
6e1250c
Update TaskList constructor
rithanisk Sep 14, 2024
3881d59
Update Nebula class to follow OOP
rithanisk Sep 14, 2024
fe065fc
Add Command abstract class and subclasses
rithanisk Sep 14, 2024
125b1fc
Add new Command subclasses
rithanisk Sep 14, 2024
29e0933
Add AddDeadlineCommand class
rithanisk Sep 14, 2024
9207521
Add AddEventCommand class
rithanisk Sep 14, 2024
a0edf47
Add AddTodoCommand class
rithanisk Sep 14, 2024
d3bd7f7
Add ByeCommand class
rithanisk Sep 14, 2024
f4d751c
Update Command abstract class
rithanisk Sep 14, 2024
1d59c3d
Add DeleteCommand class
rithanisk Sep 14, 2024
8c213cc
Add ListCommand class
rithanisk Sep 14, 2024
51b805f
Add MarkCommand class
rithanisk Sep 14, 2024
bb48a6c
Add UnmarkCommand class
rithanisk Sep 14, 2024
7d128d1
Update Ui class methods to remove divider
rithanisk Sep 14, 2024
5e1033a
Add Parser class
rithanisk Sep 14, 2024
60c19a6
Refactor code in Neubla class
rithanisk Sep 14, 2024
44cc1e0
Merge branch-A-MoreOOP with merge commit
rithanisk Sep 14, 2024
b78f02b
Organize classes into suitable java packages
rithanisk Sep 14, 2024
d316c2c
Merge branch-A-Packages with merge commit
rithanisk Sep 14, 2024
907af5c
Merge add-gradle-support with merge commit
rithanisk Sep 14, 2024
c9ff9e2
Add EventTest file to test Event class methods
rithanisk Sep 15, 2024
07e8a3d
Add createEvent_success method to EventTest
rithanisk Sep 15, 2024
a2bfd7e
Add assertEquals to test event without time in createEvent_success
rithanisk Sep 15, 2024
4945fdb
Add createEvent_failure method to EventTest
rithanisk Sep 15, 2024
cd33e2f
Add assertEquals to test event with only end time in EventTest
rithanisk Sep 15, 2024
cb06003
Add AddTodoCommandTest class to test AddTodoCommand class methods
rithanisk Sep 15, 2024
cbc0da1
Add addTodo_success method to AddTodoCommandTest class
rithanisk Sep 15, 2024
4b5ce1b
Add ParserTest class to test parse method
rithanisk Sep 15, 2024
28fea11
Merge branch-A-JUnit with merge commit
rithanisk Sep 15, 2024
a77f817
Update dependencies in build.gradle file
rithanisk Sep 15, 2024
30e2ab3
Merge branch-A-Jar with merge commit
rithanisk Sep 15, 2024
eb5747a
Add JavaDoc comments for Ui Parser and Nebula classes
rithanisk Sep 15, 2024
50fee28
Add JavaDoc comments for TaskList class
rithanisk Sep 15, 2024
030fd98
Add JavaDoc comments for Storage class
rithanisk Sep 15, 2024
96be4ec
Add JavaDoc comments to all the Command classes
rithanisk Sep 15, 2024
313f97b
Added whitespace between lines in Command classes
rithanisk Sep 15, 2024
5f3747f
Reduce code line length to be less than 100 characters
rithanisk Sep 15, 2024
74a4e00
Add FindCommand class
rithanisk Sep 16, 2024
a7830a2
Update getTask method to return Task
rithanisk Sep 16, 2024
72bda1d
Update validateCommand method to handle find command
rithanisk Sep 16, 2024
2604679
Update Ui class with methods to print find command output
rithanisk Sep 16, 2024
b79bf08
Merge pull request #2 from rithanisk/branch-A-JavaDoc
rithanisk Sep 16, 2024
f92948d
Merge branch 'master' into branch-A-CodingStandard
rithanisk Sep 16, 2024
2df5036
Merge branch 'master' into branch-Level-9
rithanisk Sep 16, 2024
5ddc219
Merge pull request #3 from rithanisk/branch-A-CodingStandard
rithanisk Sep 16, 2024
6803d36
Merge branch 'master' into branch-Level-9
rithanisk Sep 16, 2024
06e8d99
Merge pull request #4 from rithanisk/branch-Level-9
rithanisk Sep 16, 2024
9b68d4e
Add basic Hello World GUI with JavaFX
rithanisk Sep 16, 2024
bb9e0e7
Add user input functionality in GUI
rithanisk Sep 16, 2024
a7aae71
Create basic GUI for Nebula chatbot
rithanisk Sep 16, 2024
f409bd2
Add automatic reize elements functionality to GUI
rithanisk Sep 17, 2024
556523d
Add css style to JavaFX files
rithanisk Sep 17, 2024
269c838
Add margins and padding to text message
rithanisk Sep 17, 2024
6e23335
Remove divider from GUI
rithanisk Sep 18, 2024
32eba93
Add assertions to Nebula class
rithanisk Sep 22, 2024
b5cb65e
Add assert statements to Parser class
rithanisk Sep 22, 2024
cbaf565
Add assertion statements to classes in task package
rithanisk Sep 22, 2024
243f1da
Fix spacing in Ui class
rithanisk Sep 23, 2024
e4c31d9
Refactor validateCommand method in Parser class
rithanisk Sep 23, 2024
d2218fb
Delete comment in MainWindow
rithanisk Sep 23, 2024
3a9d438
Storage class: refactor task creation logic into separate methods
rithanisk Sep 23, 2024
af6adf7
Remove comments in FindCommand execute method
rithanisk Sep 23, 2024
d71f6fd
Delete whitespace in Parser class
rithanisk Sep 23, 2024
4157321
Add semicolon to assert statement
rithanisk Sep 23, 2024
5e9dbed
Merge pull request #5 from rithanisk/branch-A-Assertions
rithanisk Sep 23, 2024
b39d2aa
Merge branch 'master' into branch-A-CodeQuality
rithanisk Sep 23, 2024
2fb065c
Merge pull request #6 from rithanisk/branch-A-CodeQuality
rithanisk Sep 23, 2024
d8aaf7c
Add HelpCommand class
rithanisk Sep 23, 2024
0dd1d21
Update Parser to handle help command
rithanisk Sep 23, 2024
6d8ccf5
Add displayCommands method to Ui class for help command execution
rithanisk Sep 23, 2024
a144c16
Change profile pictures of Nebula and user
rithanisk Sep 23, 2024
97e1e1b
Change color scheme of chatbot
rithanisk Sep 23, 2024
8e43074
Update ui for displayCommands method
rithanisk Sep 23, 2024
bf82caf
Add error handling logic for empty task description
rithanisk Sep 23, 2024
052aee3
Improve code quality in Nebula and Parser classes
rithanisk Sep 23, 2024
940e0b6
Add JavaDoc comments to Ui class
rithanisk Sep 23, 2024
cbbb28e
Add JavaDoc comments to Parser class
rithanisk Sep 23, 2024
6b571cc
Add JavaDoc comments for Ui classes
rithanisk Sep 23, 2024
8f2e0aa
Storage class: Add Javadoc comments to methods
rithanisk Sep 23, 2024
eb08763
Replace 'Duke' with 'Nebula'
rithanisk Sep 23, 2024
d4a7a47
Add JavaDoc comments to FindCommand and HelpCommand classes
rithanisk Sep 23, 2024
8d6cf46
Add screenshot of chatbot GUI to docs folder
rithanisk Sep 23, 2024
2df71b8
Add user guide for Nebula chatbot
rithanisk Sep 23, 2024
6c09883
Update product screenshot path
rithanisk Sep 23, 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
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 'com.github.johnrengelman.shadow' version '7.1.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("nebula.ui.Launcher")
}

shadowJar {
archiveBaseName = "nebula"
archiveClassifier = null
}

run{
standardInput = System.in
}
105 changes: 91 additions & 14 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,107 @@
# Duke User Guide
# Nebula User Guide

// Update the title above to match the actual product name
Welcome to the Neubla user guide! Nebula is an intelligent task management chatbot that helps you organize your tasks efficiently. You can interact with Nebula using various commands to manage your to-dos, deadlines, and events.

// Product screenshot goes here
Below is a screenshot of Nebula in action:

// Product intro goes here
![Product Screenshot](./ui.png) <!-- Replace with the actual screenshot path -->

## Adding deadlines
## Commands Supported

// Describe the action and its outcome.
Nebula supports the following commands to help you manage your tasks, deadlines, and events:

// Give examples of usage
### 1. `list`
Lists all the tasks in your current task list.

Example: `keyword (optional arguments)`
**Example:**
`list`
```
Here are the tasks in your list:
1. [T][X] Finish homework
2. [D][ ] Submit project /by 25-09-2024 23:59
```

// A description of the expected outcome goes here
### 2. `bye`
Ends the conversation with Nebula and exits the program.

**Example:**
`bye`
```
Bye! Hope to see you again soon :)
```
expected output

### 3. `todo`
Adds a Todo task to your task list.

**Example:**
`todo Read a book`
```
Got it! I've added this task:
[T][] Read a book
Now you have 3 tasks in the list.
```

## Feature ABC
### 4. `deadline`
Adds a Deadline task to your task list.

**Example:**
`deadline Submit report /by 2024-09-30 17:00`
```
Got it! I've added this task:
[D][] Submit report (by: September 30, 2024 17:00)
Now you have 4 tasks in the list.
```

// Feature details
### 5. `event`
Adds an Event task to your task list.

**Example:**
`event Team meeting /from 2024-10-01 14:00 /to 2024-10-01 16:00`
```
Got it! I've added this task:
[E][] Team meeting (from: October 1, 2024 14:00 to October 1, 2024 16:00)
Now you have 5 tasks in the list.
```

### 6. `mark`
Marks the specified task as completed

**Example:**
`mark 1`
```
Nice! This task has successfully been marked:
[T][X] Finish homework
```

## Feature XYZ
### 7. `unmark`
Marks the specified task as not completed

**Example:**
`unmark 1`
```
Nice! This task has successfully been unmarked:
[T][] Finish homework
```

### 8. `delete`
Deletes the specified task from the task list

**Example:**
`delete 2`
```
Noted. I've removed this task:
[D][ ] Submit report (by September 30, 2024 17:00)
Now you have 4 tasks in the list.
```

### 9. `find`
Finds tasks in task list that contain a specific keyword

**Example:**
`find book`
```
Here are the matching tasks in your list:
1. [T][] Read a book
```

// Feature details
Hope you have fun using Nebula :)
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.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading