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

[Nicholascyx] ip #625

Open
wants to merge 56 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 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
459380b
Added Kafka.java, Added greet and exit message
Nicholascyx Aug 26, 2024
5a9e282
Added support for echo
Nicholascyx Aug 26, 2024
b4bbf71
Added support for add and list function, added indentations
Nicholascyx Aug 28, 2024
e134e90
Added new method for list
Nicholascyx Aug 28, 2024
c8593dd
Used ArrayList to store tasks
Nicholascyx Aug 28, 2024
8b32bad
Added [] for tasks and markAsDone() function
Nicholascyx Aug 28, 2024
eccb99a
Added support for Mark As Done
Nicholascyx Aug 28, 2024
2792677
Added Deadline, Event and Todo
Nicholascyx Aug 28, 2024
9377e1d
Added support for different events
Nicholascyx Aug 28, 2024
bbf800e
Added support for exceptions
Nicholascyx Aug 29, 2024
7a84450
Added support for delete
Nicholascyx Aug 29, 2024
246d624
Added support for text-ui-test
Nicholascyx Aug 30, 2024
2527e8c
Add changes for text-ui-test
Nicholascyx Sep 2, 2024
efa2a78
Add support for saving tasks
Nicholascyx Sep 4, 2024
d2e9b4e
Add a create new file function
Nicholascyx Sep 4, 2024
30ccaeb
Add improvements for KafkaTextWriter
Nicholascyx Sep 4, 2024
6d9bfa9
Add support for loading tasks
Nicholascyx Sep 4, 2024
ac0f46e
Add datetime recogniton for deadlines
Nicholascyx Sep 4, 2024
a556a31
Add datetime recognition for events
Nicholascyx Sep 4, 2024
32b6215
Add UI class functions
Nicholascyx Sep 5, 2024
4c7c84d
Add Storage class functions
Nicholascyx Sep 5, 2024
58d631d
Add Parser class and TaskList class functions
Nicholascyx Sep 5, 2024
b28d0cb
Add all the classes into a package
Nicholascyx Sep 6, 2024
c2a4109
Merge branch 'add-gradle-support' of https://github.com/Nicholascyx/ip
Nicholascyx Sep 6, 2024
00907a3
Add gradle into project
Nicholascyx Sep 6, 2024
67cb1a1
Add JUnit tests
Nicholascyx Sep 6, 2024
31ee68b
Improve JUnit test for TaskListTest
Nicholascyx Sep 6, 2024
fd6d300
Add Jar file
Nicholascyx Sep 6, 2024
58a71df
Add JavaDoc comments
Nicholascyx Sep 6, 2024
0b4ccdb
Add Coding Standard changes
Nicholascyx Sep 6, 2024
440f471
Add find function for the tasks
Nicholascyx Sep 12, 2024
294c546
Merge branch 'branch-A-JavaDoc'
Nicholascyx Sep 12, 2024
d5b379b
Merge branch 'branch-Level-9'
Nicholascyx Sep 12, 2024
e090307
Add JavaDoc comments for find functions and resolve conflicts
Nicholascyx Sep 12, 2024
d8bddd1
Add support for GUI
Nicholascyx Sep 20, 2024
7e36021
Add more support for GUI
Nicholascyx Sep 20, 2024
b080878
Add some code quality changes
Nicholascyx Sep 21, 2024
b35dcac
Add some additional changes for parser command
Nicholascyx Sep 21, 2024
edd7146
Add assertions
Nicholascyx Sep 21, 2024
0303a46
Change more codequality relevant stuff
Nicholascyx Sep 22, 2024
16a76a5
Add small adjustments to throw IOException
Nicholascyx Sep 22, 2024
80768a8
Merge pull request #2 from Nicholascyx/branch-A-Assertions
Nicholascyx Sep 22, 2024
2c9400f
Merge branch 'master' into branch-A-CodeQuality
Nicholascyx Sep 22, 2024
ba37625
Revert "Merge branch 'master' into branch-A-CodeQuality"
Nicholascyx Sep 22, 2024
015627c
Merge pull request #3 from Nicholascyx/branch-A-CodeQuality
Nicholascyx Sep 22, 2024
283b4e4
Add more JavaDocs
Nicholascyx Sep 22, 2024
94e7c8f
Add snooze function
Nicholascyx Sep 23, 2024
0c71886
Add support for assertions
Nicholascyx Sep 23, 2024
1898269
Merge branch 'branch-B-Snooze'
Nicholascyx Sep 23, 2024
42d6385
Update the filepath
Nicholascyx Sep 23, 2024
c9ce769
Create jar file
Nicholascyx Sep 23, 2024
13e20f2
Add Readme
Nicholascyx Sep 23, 2024
d7e2b2f
Update README.md
Nicholascyx 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
397 changes: 373 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,373 @@
# 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
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
```
# Kafka User Guide

![Ui](https://github.com/user-attachments/assets/bf6a41fe-f86b-486c-9a75-bfea9c576cbc)




Kafka is a simple, interactive chatbot with personality designed to help users manage tasks. With Kafka, users can create, manage, and track their tasks, set deadlines, mark tasks as completed, and more. It provides an intuitive command-based interface that helps you keep track of your to-do list efficiently.





## Adding deadlines



Kafka allows users to add tasks with deadlines, helping them stay on top of their important events.



Usage: To add a deadline, use the following command format:



Command Format: `deadline <task description> /by <date/time>`



Example: `deadline submit assignment /by 2024-09-20 1800`



Expected Outcome: The task with a deadline will be added to the list, and Kafka will confirm the addition by displaying the task and its corresponding deadline.



```

Got it. I've added this task:

[D][ ] submit assignment (by: September 20 2024 1800)

Now you have 1 task(s) in the list.

```



## Adding To-Dos



To-dos are basic tasks without any specific deadline. Dave allows users to add and manage these tasks.



Usage: To add a to-do, use the following command format:



Command Format: `todo <task description>`



Example: `todo read book`



Expected Outcome: A to-do task will be added to the list, and Kafka will confirm it by displaying the task.



```

Got it. I've added this task:

[T][ ] read book

Now you have 4 task(s) in the list.

```



## Adding Events



For tasks that are tied to specific events with start and end times, you can use Kafka's event feature.



Usage: To add an event, use the following command format:



Command Format: `event <task description> /at <date/time>`



Example: `event attend meeting /from 2024-09-21 1000 /to 2024-09-21 1200`



Expected Outcome: An event will be added to the task list with a specified date and time, and Kafka will confirm the addition.



```

Got it. I've added this task:

[E][ ] Attend meeting (from: September 21 2024 1000 to: September 21 2024 1200)

Now you have 5 task(s) in the list.

```

## Marking Tasks as Done



When a task is completed, you can mark it as done to keep your task list up-to-date.



Usage: To mark a task as done, use the following command format:



Command Format: `mark <task number>`



Example: `mark 1`



Expected Outcome: Kafka will mark the specified task as done and update the task list accordingly.



```

Good work on this task. Want a prize?:

[T][X] buy groceries

```



## Unmarking Tasks



If you need to unmark a task that was previously marked as done, you can easily undo this action.



Usage: To unmark a task, use the following command format:



Command Format: `unmark <task number>`



Example: `unmark 1`



Expected Outcome: Kafka will unmark the specified task and return it to the list of pending tasks.



```

Hurry up. This task is necessary for Elio's script:

[T][ ] buy groceries

```



## Deleting Tasks



If a task is no longer needed, you can delete it from the task list.



Usage: To delete a task, use the following command format:



Command Format: `delete <task number>`



Example: `delete 2`



Expected Outcome: The task will be removed from the list, and Kafka will confirm the deletion by displaying the updated task list.



```

I've removed this task:

[D][ ] Submit assignment (by: September 20 2024 1800)

Now you have 4 task(s) in the list.

```



## Finding Tasks



To quickly search for tasks containing a specific keyword, Kafka offers a find command.



Usage: To find tasks, use the following command format:



Command Format: `find <keyword>`



Example: `find meeting`



Expected Outcome: Kafka will display a list of tasks that contain the specified keyword.





```

Here you go, these are the matching tasks in your list:

1.[D][ ] submit assignment (by: September 21 2024 1000)

```



## Listing All Tasks



To view all tasks that are currently tracked by Kafka, use the list command.



Usage: To display the full list of saved tasks, use the following command format:



Command Format: `list`



Example: `list`



Expected Outcome: Kafka will display the full list of tasks, including their status (whether they are marked as done or pending).





```

Here are the tasks in your list:

1. [T][ ] Buy groceries

2. [D][ ] Submit assignment (by: September 21 2024 1000)

3. [T][ ] Complete project report

```









## Snooze tasks



Kafka allows users to snooze tasks by changing their deadline and event dates.


Usage: To snooze a task, use one of the following command formats:



Command Format:



`snooze <taskNumber> /by <Datetime>` - Snooze deadline tasks.



`snooze <taskNumber> /from <Datetime>` - Snooze event tasks and the duration stays the same.



`snooze <taskNumber> /from <Datetime> /to <Datetime>` - Snooze event tasks and the date and time can be freely changed.



Example:



`snooze 3 /by 2024-01-01 1800`



`snooze 3 /from 2024-01-01 1800`



`snooze 3 /from 2024-01-01 1800 /to 2024-01-01 2000`



Expected Outcome:



When you use the snooze deadline command, Kafka is able to freely change the deadline task date and time.


When you use the snooze event command with /from, Kafka is able to freely change the event task date and time, however the /to date and time is automatically updated with the duration staying the same.


When you use the snooze deadline command with /from and /to, Kafka is able to freely change the event task date and time.



For tasks:



```

Oh, the task is delayed? Do you need any help?

[D][ ] submit assignment (by: January 01 2024 1800)

```
Loading