Shin is an interactive chatbot that helps users efficiently manage tasks.
Developed as part of the CS2103T Individual Project at the National University of Singapore (NUS), CS2103T.
π Task Management:
π¨ Graphical Interface:
πΎ Persistent Storage:
π¦ Robust Error Handling:
β‘ AI-Assisted Code Refinements:
Ensure you have the following installed:
Clone this repository:
git clone https://github.com/yourusername/ip.git
cd ip
Compile and run the application:
./gradlew run
Or run the JAR file directly:
java -jar shin.jar
Usage Commands
Adding a ToDo Task
Command: todo
What it does: Adds a simple ToDo task to your task list.
Adding a Deadline
Command: deadline
What it does: Adds a task that must be done before a specific date.
Adding an Event
Command: event
What it does: Adds a task that spans a specific start and end date.
Listing All Tasks Command: list
What it does: Displays all tasks in your list, showing their status (done/not done) and type (ToDo, Deadline, or Event).
Marking a Task as Done
Command: mark
Marks the specified task as done.
Unmarking a Task
Command: unmark
What it does: Marks the specified task as not done.
Deleting a Task
Command: delete
What it does: Removes the specified task from your list.
Exiting the Program Command: bye
What it does: Exits the chatbot.
Viewing Help Command: help
What it does: Shows usage instructions and a summary of all available commands.
Tips:
Use one command at a time. Make sure dates follow the YYYY-MM-DD format. Task numbers refer to their position in the displayed list. If you see formatting issues, try spacing out your parameters carefully.
π The chatbot automatically saves tasks, but ensure you have write permissions in the directory.
π« No, Shin processes one command at a time.
π Shin provides an error message along with guidance on the correct format.

Shin - Main chatbot logic and command handling.TaskList - Manages task storage and operations.Task, Todo, Deadline, Event - Different task types.Storage - Handles saving and loading tasks from disk.Ui - Manages user interaction and messages.MainWindow - JavaFX UI Controller.Some parts of this project were improved using AI to enhance code quality and maintainability:
β All AI-assisted code was reviewed and refined to comply with course policies.
This project was developed as part of the CS2103T Software Engineering module at NUS.
Special thanks to:
This project is open-sourced under the MIT License.
β
Better structured Features section for readability.
β
More concise descriptions in all sections.
β
Usage commands displayed in tables for easy reference.
β
FAQ streamlined for clarity.
β
Code structure clearly outlined.
Λ```