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

[Ishan Agarwal] iP #765

Open
wants to merge 83 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 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
882801a
Change name
ishan-agarwal-05 Aug 31, 2024
e268509
Add echo and exit
ishan-agarwal-05 Aug 31, 2024
9f94590
Add ability to store and list tasks
ishan-agarwal-05 Aug 31, 2024
c5393ea
Add ability to mark tasks as done and not done
ishan-agarwal-05 Aug 31, 2024
c8b4a81
Add support for ToDos, Deadlines, and Events
ishan-agarwal-05 Aug 31, 2024
4b701d5
Set up automated text UI testing using I/O redirection
ishan-agarwal-05 Aug 31, 2024
86b1af6
Add exception classes for invalid descriptions
ishan-agarwal-05 Aug 31, 2024
d0f61dc
Implement comprehensive error handling for John Cena
ishan-agarwal-05 Aug 31, 2024
5f45409
Add support for deleting tasks
ishan-agarwal-05 Aug 31, 2024
99473b0
Add Ascii logo
ishan-agarwal-05 Sep 4, 2024
7f338a8
Add JavaDocs comments
ishan-agarwal-05 Sep 13, 2024
2af4728
Add saveTasks and LoadTasks
ishan-agarwal-05 Sep 13, 2024
043e0e1
Add CenaTaskList
ishan-agarwal-05 Sep 13, 2024
352ee78
Merge branch 'branch-Level-7'
ishan-agarwal-05 Sep 13, 2024
e2c7f84
Add time and date parsing, along with on command. Add help command
ishan-agarwal-05 Sep 13, 2024
b6efa7a
Merge pull request #1 from ishan-agarwal-05/branch-Level-8
ishan-agarwal-05 Sep 13, 2024
8d41c75
Add Packages
ishan-agarwal-05 Sep 13, 2024
f610bf3
Merge pull request #2 from ishan-agarwal-05/branch-A-Packages
ishan-agarwal-05 Sep 13, 2024
fc8c620
Merge branch 'branch-A-MoreOOP' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 13, 2024
d16449f
Change package names to begin with small letter
ishan-agarwal-05 Sep 13, 2024
ffb7efc
Add Commands interface and implement all commands child classes.
ishan-agarwal-05 Sep 13, 2024
a3b2f83
Merge pull request #3 from ishan-agarwal-05/branch-A-MoreOOP
ishan-agarwal-05 Sep 13, 2024
7171b6e
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 13, 2024
806b90b
Merge branch 'add-gradle-support'
ishan-agarwal-05 Sep 13, 2024
f493de9
Add gradle support
ishan-agarwal-05 Sep 13, 2024
8f7ea5c
Add johncena package under java
ishan-agarwal-05 Sep 13, 2024
41cfe8c
Add Junit Tests for InputHandlerClass
ishan-agarwal-05 Sep 20, 2024
d5caf55
Merge pull request #5 from ishan-agarwal-05/branch-A-JUnit
ishan-agarwal-05 Sep 20, 2024
9f786d3
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 20, 2024
e2603a8
add archiveFileName in ShadowJar action of build.gradle file
ishan-agarwal-05 Sep 20, 2024
f5685f0
Add javadoc comments for all public classes and public methods
ishan-agarwal-05 Sep 20, 2024
c209193
Merge branch 'branch-A-JavaDoc'
ishan-agarwal-05 Sep 20, 2024
3c4c000
Removed javadoc violations
ishan-agarwal-05 Sep 20, 2024
662dea0
Merge pull request #6 from ishan-agarwal-05/branch-A-CodingStandard
ishan-agarwal-05 Sep 20, 2024
ec7e0cb
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 20, 2024
7c54a23
Add find command functionality
ishan-agarwal-05 Sep 20, 2024
0c567f8
Corrected errors according to CheckStyle
ishan-agarwal-05 Sep 20, 2024
9238861
javafx start
ishan-agarwal-05 Sep 20, 2024
d80bc78
Add GUI support
ishan-agarwal-05 Sep 20, 2024
f4fbbf2
clean the code from commented out portions
ishan-agarwal-05 Sep 20, 2024
9aa93ef
add assertions in tasks package
ishan-agarwal-05 Sep 20, 2024
4eaedd1
Storage and InputHandler: add assertions for null checks
ishan-agarwal-05 Sep 20, 2024
004c1ed
Merge pull request #7 from ishan-agarwal-05/branch-A-Assertions
ishan-agarwal-05 Sep 20, 2024
56c189c
improve code quality by implementing SLAP
ishan-agarwal-05 Sep 20, 2024
bb6cc09
Merge pull request #8 from ishan-agarwal-05/branch-A-CodeQuality
ishan-agarwal-05 Sep 20, 2024
d2d80bf
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 20, 2024
f30168f
Merge branch 'branch-A-Streams' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 20, 2024
6ca68b3
Merge branch 'branch-A-CodeQuality' of https://github.com/ishan-agarw…
ishan-agarwal-05 Sep 20, 2024
1b3c9fc
remove bug in deadline and event date format
ishan-agarwal-05 Sep 20, 2024
6f4ae99
clean up code
ishan-agarwal-05 Sep 22, 2024
5d959b6
Merge branch 'branch-A-Streams' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 22, 2024
6412c58
Merge branch 'branch-A-CodeQuality' of https://github.com/ishan-agarw…
ishan-agarwal-05 Sep 22, 2024
120c8cc
Merge branch 'branch-A-Streams'
ishan-agarwal-05 Sep 22, 2024
860e34d
Update README.md
ishan-agarwal-05 Sep 22, 2024
b023d87
fix link in readme
ishan-agarwal-05 Sep 22, 2024
3b37551
Update README.md
ishan-agarwal-05 Sep 22, 2024
5b55e0d
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 22, 2024
aaa7622
Update Readme and add acknowledgment
ishan-agarwal-05 Sep 22, 2024
1eb5617
Merge branch 'branch-A-Streams' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 22, 2024
526d018
Merge branch 'branch-A-CodeQuality' of https://github.com/ishan-agarw…
ishan-agarwal-05 Sep 22, 2024
98bdd27
Merge branch 'branch-A-Streams' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 22, 2024
2179672
no message
ishan-agarwal-05 Sep 22, 2024
6fa88cb
Merge branch 'branch-A-CodeQuality' into branch-A-Streams
ishan-agarwal-05 Sep 22, 2024
0c4d73d
Merge branch 'branch-A-Streams' of https://github.com/ishan-agarwal-0…
ishan-agarwal-05 Sep 22, 2024
21d7c5c
improve checkstyle
ishan-agarwal-05 Sep 22, 2024
8101bfa
Add support for DoAfterTask
ishan-agarwal-05 Sep 22, 2024
4034403
Remove checkstyle errors
ishan-agarwal-05 Sep 22, 2024
f091aa5
Merge branch 'branch-A-CodeQuality'
ishan-agarwal-05 Sep 22, 2024
69d96ad
clean build
ishan-agarwal-05 Sep 22, 2024
fdd697a
Update README.md
ishan-agarwal-05 Sep 22, 2024
87a460d
Merge branch 'master' of https://github.com/ishan-agarwal-05/ip
ishan-agarwal-05 Sep 22, 2024
0aa53f2
improve gui and ascii art logo
ishan-agarwal-05 Sep 22, 2024
df384d8
Improve GUI
ishan-agarwal-05 Sep 22, 2024
a1f770a
Add Ui.png in docs folder
ishan-agarwal-05 Sep 22, 2024
ae40f9f
Add personality. improve code with help of AI
ishan-agarwal-05 Sep 22, 2024
a710253
Add extensive user guide
ishan-agarwal-05 Sep 22, 2024
f10fb8a
Correct Checkstyle errors
ishan-agarwal-05 Sep 22, 2024
4ba09bd
Fix testcases for inputhandler
ishan-agarwal-05 Oct 22, 2024
f608e59
Remove dead code
ishan-agarwal-05 Oct 22, 2024
b7e78ad
fix checkstyletest errors
ishan-agarwal-05 Oct 22, 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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ bin/

/text-ui-test/ACTUAL.TXT
text-ui-test/EXPECTED-UNIX.TXT

# Temp files
src/main/java/temp.java

73 changes: 49 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,49 @@
# 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 17, 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 17** (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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
# John Cena Todo List Application :tada:

Welcome to the **John Cena** Todo List application! This app helps you manage your tasks efficiently with commands like `todo`, `deadline`, `event`, `find`, `after`, and more. It automatically saves your tasks, ensuring you never lose track of your to-dos.

## 🚀 Features

- **Add Tasks**: Create `todo`, `deadline`, `event`, and `after` tasks.
- **Manage Tasks**: Mark, unmark, and delete tasks.
- **Search Tasks**: Find tasks by keyword.
- **View Tasks by Date**: List tasks occurring on a specific date.
- **Automatic Saving**: Tasks are saved automatically to prevent data loss.
- **User-Friendly GUI**: Intuitive interface for easy interaction.

## 🛠 Installation

Follow these simple steps to set up the **John Cena** Todo List application:

1. **Download the JAR file** from the [Releases](https://github.com/ishan-agarwal-05/ip/releases) section of this repository.

2. **Run the application** using the following command:

```bash
java -jar johncena.jar
```

---

## 📚 Acknowledgements

- **Java**: The primary programming language used for this project.
- **IntelliJ IDEA**: The IDE used for development.
- **GitHub**: For hosting the project repository.
- **OpenAI**: For providing AI assistance.
- **JavaFX**: For the GUI framework.
- **JUnit 5**: For testing the application.
- **Gradle**: For building the project.
- **Github Copilot**: For generating code snippets and javadoc comments.
- **AB3 User Guide and blackpanther9229**: For the template of user guide.


## 🤖 Special Acknowledgment for GitHub Copilot

Throughout the development of this project, GitHub Copilot was used for code autofill and suggestions.

For example:
- The `Deadline` class was coded manually, but the `Event` class has similarities due to Copilot's autofill suggestions.
- Many command classes, such as `TodoCommand`, `DeadlineCommand`, and `EventCommand`, were generated with significant help from Copilot.

This extensive use of AI assistance has helped streamline the development process, but it also means that large segments of the code are AI-generated and might resemble code from other projects.
63 changes: 63 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.1.2'
id 'checkstyle'
}

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("johncena.Launcher")
}

shadowJar {
archiveBaseName = "JohnCena"
archiveClassifier = null
archiveFileName = "JohnCena.jar"
}

run{
standardInput = System.in
}

checkstyle {
toolVersion = '10.2'
}
Loading