Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
d43752f
Added greeting and echo
yangyi-zhu Feb 5, 2025
37ba24e
Implemented ability to store user input and display list upon request
yangyi-zhu Feb 5, 2025
558ea8b
Implemented marking a task as done and vice versa
yangyi-zhu Feb 5, 2025
26b353a
Added support for tracking three types of tasks
yangyi-zhu Feb 5, 2025
ad42d4c
Restructured printed messages for enhanced readability
yangyi-zhu Feb 5, 2025
11f5ce9
Restructured task types using inheritance and abstract classes
yangyi-zhu Feb 14, 2025
8be30a0
Added a help message to display when prefix is undefined
yangyi-zhu Feb 14, 2025
dd38a59
Added block preventing users from entering blank descriptions for to-dos
yangyi-zhu Feb 14, 2025
ef61485
Merge pull request #1 from yangyi-zhu/branch-Level-5
yangyi-zhu Feb 14, 2025
4f1df28
Modified help message
yangyi-zhu Feb 14, 2025
30da880
Divided deadline substring from message
yangyi-zhu Feb 21, 2025
52935dc
Fixed program infinitely looping when an unexpected prefix is detected
yangyi-zhu Feb 23, 2025
cc18725
Added option to delete tasks
yangyi-zhu Mar 7, 2025
c872146
Modularized essential functions for clarity and ease of updates
yangyi-zhu Mar 12, 2025
20cf074
Replaced magic numbers symbolizing indices to separate descriptions w…
yangyi-zhu Mar 12, 2025
390b9fb
Added messages to delete function
yangyi-zhu Mar 12, 2025
543599c
Merge pull request #2 from yangyi-zhu/branch-Level-6
yangyi-zhu Mar 12, 2025
2cb6409
Added logo display to the welcome message
yangyi-zhu Mar 12, 2025
4f391f0
Reorganized datatype classes into package
yangyi-zhu Mar 12, 2025
947d3ae
Restructured using Java ArrayList instead of a fixed-size array
yangyi-zhu Mar 12, 2025
c40bfbb
Added ability to save list and load from file locally
yangyi-zhu Mar 13, 2025
625bdfc
Merge pull request #4 from yangyi-zhu/branch-Level-7
yangyi-zhu Mar 13, 2025
2820586
Added class for custom exceptions
yangyi-zhu Mar 13, 2025
1e6ff28
Merge branch 'master' of https://github.com/yangyi-zhu/ip
yangyi-zhu Mar 13, 2025
8f9c8cb
Added class for custom exceptions
yangyi-zhu Mar 13, 2025
a72a934
Updated add task logic with exceptions
yangyi-zhu Mar 13, 2025
d01c54b
Further modularized code for ease of update
yangyi-zhu Mar 14, 2025
afa2124
Fixed commands lacking spaces leading to fatal crashes
yangyi-zhu Mar 14, 2025
42535fe
Added feature to search for tasks containing a keyword
yangyi-zhu Mar 14, 2025
53af5a1
Merge pull request #5 from yangyi-zhu/branch-Level-9
yangyi-zhu Mar 14, 2025
7657acf
Updated Deadline and Event classes to use LocalDateTime instead of pl…
yangyi-zhu Mar 14, 2025
b61b1c8
Merge pull request #6 from yangyi-zhu/branch-Level-8
yangyi-zhu Mar 14, 2025
17ab475
Added JavaDoc comments
yangyi-zhu Mar 14, 2025
8af30e1
Added User Guide
yangyi-zhu Mar 14, 2025
acfcc22
Update README.md
yangyi-zhu Mar 14, 2025
db1ab01
fix: Fixed LocalDateTime parsing error always returning current time
yangyi-zhu Mar 29, 2025
b522770
Update README.md
yangyi-zhu Mar 30, 2025
18c3330
Update README.md
yangyi-zhu Mar 30, 2025
a2a306e
Update README.md
yangyi-zhu Mar 30, 2025
061603e
Update README.md
yangyi-zhu Mar 30, 2025
3281698
Update README.md
yangyi-zhu Mar 30, 2025
a91b608
Update README.md
yangyi-zhu Mar 30, 2025
70692cb
Update README.md
yangyi-zhu Mar 30, 2025
c728721
Update README.md
yangyi-zhu Mar 30, 2025
f1a7a79
Update README.md
yangyi-zhu Mar 30, 2025
c2f60c1
Update README.md
yangyi-zhu Mar 30, 2025
f184374
Update README.md
yangyi-zhu Mar 30, 2025
277f4e7
Merge pull request #8 from yangyi-zhu/branch-UG
yangyi-zhu Mar 30, 2025
644d14f
Update README.md
yangyi-zhu Mar 30, 2025
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
17 changes: 0 additions & 17 deletions .gitignore

This file was deleted.

8 changes: 8 additions & 0 deletions .idea/artifacts/ip_jar.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/artifacts/ip_jar2.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions .idea/checkstyle-idea.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/checkstyleidea-libs/readme.txt

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/ip.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

154 changes: 154 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 53 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,59 @@
# Duke project template
# 🥖 Baguette

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.
Baguette is a lightweight, command-line task management application designed to help users organize and track their tasks efficiently.

## 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.
1. 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:
### 💻 Setup
1. Ensure that you have Java 17 installed. Open CMD and type the following:
```
java -version
```
If another version is detected or if you do not have Java installed, visit:
> https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html
2. Download `Baguette.v0_3.jar` from the following link and move it to any directory you desire
> https://github.com/yangyi-zhu/ip/releases/tag/v0.3
3. Click the `.jar` file to run. If no window pops up, right-click, copy file path, open CMD and enter the following:
```
Hello from
____ _
| _ \ _ _| | _____
| | | | | | | |/ / _ \
| |_| | |_| | < __/
|____/ \__,_|_|\_\___|
java -jar [path]
```

**Warning:** Keep the `src\main\java` folder as the root folder for Java files (i.e., don't rename those folders or move Java files to another folder outside of this folder path), as this is the default location some tools (e.g., Gradle) expect to find Java files.
---

### 📌 Features

### ✅ Task Management
✍🏻 **Add Tasks:** Create different types of tasks, including:
- **To-dos:** Simple tasks without a deadline.
> **Format:** `todo [description]` <br>
> **Example:** `todo Do the laundry`
- **Deadlines:** Tasks with a specific due date.
> **Format:** `deadline [description] ddl: [DD-MM-YY HH:MM]` <br>
> **Example:** `deadline CS2113 Increment L5 ddl: 14-02-25 16:00`
- **Events:** Tasks with a start and end time.
> **Format:** `event [description] from: [DD-MM-YY HH:MM] to: [DD-MM-YY HH:MM]` <br>
> **Example:** `event Josh's birthday party from: 03-03-25 15:00 to: 04-03-25 00:00`

❌ **Mark & Unmark Tasks:** Keeps track of completed and pending tasks.
> **Format:** `mark/unmark [index]`

🗑️ **Delete Tasks:** Removes tasks that are no longer needed.
> **Format:** `delete [index]`

📋 **View Task List:** Displays all stored tasks in an organized format.
> **Format:** `list`

🔎 **Find Task:** Searches for tasks containing the given string (case-sensitive).
> **Format:** `find [keyword]`

---

### ❓ FAQs
**Q:** How do I transfer data to a friend or another device of my own? <br>
**A:** Locate the directory where you stored the `.jar` file. Open `../data` and your list should be saved in a file called `tasks.txt`. Place this file in the `../data` directory on the secondary device and run the program as described above.

---

### 🛠️ Known Issues
By default, completed tasks are marked with a checkmark `✓` symbol. This is not supported by all devices, and the user might see a question mark `?` in its place.
> If this is the case, the user can fix this by forking and cloning this repository to their local device, and replacing the checkmark with another character at Line 67 in `src/main/java/baguette/datatypes/Task.java`.
2 changes: 2 additions & 0 deletions data/tasks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
D N eaijohdfa *$#24 Oct 2025 12:03
E Y 12uasdhidusha :=&30 Mar 2025 16:00 +-+01 Apr 2025 02:00
Loading