A Smart Task Manager with a Simple and Efficient Graphical User Interface (GUI).
Helix is a personal task management assistant that allows users to create, manage, and organize their tasks efficiently using a Graphical User Interface (GUI). It supports different types of tasks, such as to-dos, deadlines, and events, with file-based storage to ensure persistence across sessions.
Helix.jar
.java -jar Helix.jar
Helix operates entirely through its GUI interface, where users can interact with the assistant via a chat-style interface.
Purpose: Adds a simple to-do task.
Syntax:
todo <task description>
Example:
todo Buy groceries
Expected Output:
Task Added!
π Type: TODO
π Description: Buy groceries
You now have X tasks in your list.
Purpose: Adds a task with a deadline.
Syntax:
deadline <task description> /by <YYYY-MM-DD HHmm>
Example:
deadline Submit assignment /by 2024-12-31 1800
Expected Output:
Task Added!
π Type: DEADLINE
π Description: Submit assignment
π
Due: Dec 31 2024, 6:00 PM
You now have X tasks in your list.
Purpose: Adds an event with a start and end time.
Syntax:
event <task description> /from <YYYY-MM-DD HHmm> /to <YYYY-MM-DD HHmm>
Example:
event Team meeting /from 2024-12-31 0900 /to 2024-12-31 1100
Expected Output:
Task Added!
π Type: EVENT
π Description: Team meeting
π From: Dec 31 2024, 9:00 AM
π To: Dec 31 2024, 11:00 AM
You now have X tasks in your list.
Purpose: Displays all tasks in the list.
Syntax:
list
Expected Output:
π Task List:
1. [T] [ ] Buy groceries
2. [D] [β] Submit assignment (by: Dec 31 2024, 6:00 PM)
3. [E] [ ] Team meeting (from: Dec 31 2024, 9:00 AM to: Dec 31 2024, 11:00 AM)
Purpose: Marks a task as done.
Syntax:
mark <task number>
Example:
mark 2
Expected Output:
β Task marked as complete!
[D] [β] Submit assignment (by: Dec 31 2024, 6:00 PM)
Purpose: Marks a task as not done.
Syntax:
unmark <task number>
Example:
unmark 2
Expected Output:
β Task marked as incomplete!
[D] [ ] Submit assignment (by: Dec 31 2024, 6:00 PM)
Purpose: Removes a task from the list.
Syntax:
delete <task number>
Purpose:
delete 3
Expected Output:
ποΈ Task Removed!
[E] [ ] Team meeting (from: Dec 31 2024, 9:00 AM to: Dec 31 2024, 11:00 AM)
You now have X tasks in your list.
Purpose: Searches for tasks containing a specific keyword.
Syntax:
find <keyword>
Example:
find groceries
Expected Output:
π Tasks with matching keywords...
1. [T] [ ] Buy groceries
Purpose: Updates a taskβs description or details.
Syntax:
update <task number> <task type> <new details>
Example:
update 2 deadline Submit final report /by 2025-01-01 1200
Expected Output:
β Task updated successfully!
[D] [ ] Submit final report (by: Jan 1 2025, 12:00 PM)
Purpose: Closes the application.
Syntax:
bye
data/helix_tasklist.txt
.Each task is stored as a single line in the file, with its attributes separated by a |
. The attributes are structured in the following order:
TODO
, DEADLINE
, or EVENT
.COMPLETED
or PENDING
.MMM DD YYYY, hh:mm a
).MMM DD YYYY, hh:mm a - MMM DD YYYY, hh:mm a
).Example Entries
TODO | COMPLETED | Hit the gym
DEADLINE | PENDING | Submit iP Final Version | Feb 21 2025, 11:59 pm
EVENT | PENDING | CS2103 Team meeting | Feb 25 2025, 6:00 pm - Feb 25 2025, 7:00 pm
You can manually edit the helix_tasklist.txt
file using any text editor. Ensure that you follow the format specified above when modifying or adding new tasks. However, direct editing is not recommended as incorrect formatting may cause errors when loading tasks.
Command | Description |
---|---|
add todo <description> |
Adds a simple to-do task. Example: add todo Read a book |
add deadline <description> /by <due date> |
Adds a task with a deadline. Example: add deadline Submit report /by 2025-01-30 |
add event <description> /from <start time> /to <end time> |
Adds an event. Example: add event Team meeting /from 10am /to 12pm |
list |
Displays all the tasks in your list. |
mark <task number> |
Marks the specified task as done. Example: mark 1 |
unmark <task number> |
Marks the specified task as not done. Example: unmark 1 |
delete <task number> |
Deletes the specified task. Example: delete 1 |
find <keyword> |
Finds all tasks that contain the keyword. Example: find groceries |
update <task number> <task type> <new details> |
Updates an existing task. Example: update 2 deadline Submit final report /by 2025-01-01 1200 |
bye |
Exits the chatbot. |
data/helix_tasklist.txt
file within the application directory.update
command as detailed in the Command Summary.Below is a snapshot of the Helix user interface:
If you encounter any issues or have suggestions for new features, feel free to: