Rick and Duke - User Guide
Listen to me, Morty. I know that new situations can be intimidating. You lookin’ around and it’s all scary and different, but y’know … meeting them head-on, charging into ‘em like a bull — that’s how we grow as people. - Rick Sanchez (source)
Having issues with your memory? Always been wanting to do things, but somehow they are erased from your mind? Well, that’s because you’re not using Rick and Morty Duuuke
Table of Contents
Features
Add Tasks
You can type tasks, deadlines, and events into the text box, and hit Enter or click on Send - The app will store the tasks for you!
View Tasks
You can query the storage to see what tasks you have stored.
Find Tasks
You can query the storage to see which tasks contain a certain keyword, or fall on a certain date.
Manipulate Tasks
You can mark tasks as done, mark them as not completed, or delete them
- all by text description, list index, or date!
Import Tasks
The app stores tasks as a .txt file as data/RICKS_BRAIN.TXT in the same folder as the app - simply rename your own TXT file and our app can import your tasks from elsewhere! This also allows the app to save tasks to storage when you quit the app.
Usage
todo - Add a Todo task
Adds a Todo task to the storage with the given description
Example of usage:
todo {task_description}
Expected outcome:
Got it. I've added this task:
[T][ ] {task_description}
Now you have {num_of_tasks} tasks in the list.
This indicates that the Todo task has been successfully added to the storage.
deadline - Add a Deadline task
Adds a Deadline task to the storage with the given description, and deadline. Accepts datetime inputs in d/M/yy HHmm format (e.g. 16/5/23 1200 for 12 p.m. on the 16th of May 2023)
Example of usage:
deadline {task_description} /by d/M/yy HHmm
Expected outcome:
Got it. I've added this task:
[D][ ] {task_description} (by: d MMM YYYY HH:mm)
Now you have {num_of_tasks} tasks in the list.
This indicates that the Deadline has been successfully added to the storage.
event - Add a Event task
Adds a Event task to the storage with the given description, and start/end datetime. Accepts datetime inputs in d/M/yy HHmm format (e.g. 16/5/23 1200 for 12 p.m. on the 16th of May 2023)
Example of usage:
event {task_description} /from d/M/yy HHmm /to d/M/yy HHmm
Expected outcome:
Got it. I've added this task:
[E][ ] {task_description} (from: d MMM YYYY HH:mm to: d MMM YYYY HH:mm)
Now you have {num_of_tasks} tasks in the list.
This indicates that the Event has been successfully added to the storage.
list - View all tasks
Views all tasks in the storage. If there are none, add a Todo, Event, or a Deadline first!
Example of usage:
list
Expected outcome:
1. [T][X] Task One
2. [D][ ] Deadline Two (by: Feb 02 2023 12:00PM)
3. [E][ ] Event Three (from: Feb 03 2023 12:15PM to: Feb 04 2023 12:30PM)
...
This displays the tasks in the storage, in the sequence they were added.
find - Find a task
Searches for a task in the storage whose description contains the search term. Does not accept empty queries.
Example of usage (replace {search_term} with your own):
find {search_term}
Expected outcome:
1. [T][ ] {search_term} task
2. [T][ ] Task {search_term}
...
This displays all tasks in the storage that contain the search query term in their description, and lists them in the order they were added.
tasks /on - Find tasks on a certain date
Given a date, searches the storage for tasks that occur on that date. If there are none, no tasks will be listed. Accepts dates in d/M/yy format, or 21/5/23 for 21 May 2023.
Example of usage:
tasks /on 2/2/23
Expected outcome:
- [D][ ] Deadline Two (by: Feb 02 2023 12:00PM)
- [E][ ] Event Three (from: Feb 02 2023 12:15PM to: Feb 03 2023 12:30PM)
...
Lists the Deadlines or Events that occur on that date, if there are any AND in the order they were added to the storage.
mark - Mark task(s) as completed
Given an index, multiple indexes, a range of indexes, or a task description filter or a date on which tasks occur, marks those task(s) as completed.
Indexes refer to the numerical index as indicated by the response to the list command.
Examples of usage:
- Mark Individual task:
mark 1 - Mark Multiple tasks:
mark 1 3 5 - Mark Range of tasks:
mark 1 - 3ORmark 1-3ORmark 1 to 3 - Mark tasks occurring on a Date:
mark /on 2/2/23ORmark -o 2/2/23ORmark --o 2/2/23 - Mark tasks containing a Description:
mark /contains descORmark -c descORmark --c desc - Mark All tasks:
mark /allORmark -aormark --a
Expected Outcome:
Got it. I've marked these {num_of_tasks} tasks as done:
[T][X] Task XXX
[D][X] Deadline YYY (by: Feb 02 2023 11:59PM)
[E][X] Event ZZZ (from: Feb 02 2023 12:00PM to: Feb 02 2023 1:00 PM)
...
Marks all the specified tasks in the storage as completed. If there are errors in the flags passed to the command, it will indicate them after listing the tasks successfully marked as completed.
unmark - Mark task(s) as NOT completed
Given an index, multiple indexes, a range of indexes, or a task description filter or a date on which tasks occur, marks those task(s) as not completed.
Indexes refer to the numerical index as indicated by the response to the list command.
Examples of usage:
- Unmark Individual task:
unmark 1 - Unmark Multiple tasks:
unmark 1 3 5 - Unmark Range of tasks:
unmark 1 - 3ORunmark 1-3ORunmark 1 to 3 - Unmark tasks occurring on a Date:
unmark /on 2/2/23ORunmark -o 2/2/23ORunmark --o 2/2/23 - Unmark tasks containing a Description:
unmark /contains descORunmark -c descORunmark --c desc - Unmark All tasks:
unmark /allORunmark -aorunmark --a
Expected Outcome:
Got it. I've marked these {num_of_tasks} tasks as not completed:
[T][ ] Task XXX
[D][ ] Deadline YYY (by: Feb 02 2023 11:59PM)
[E][ ] Event ZZZ (from: Feb 02 2023 12:00PM to: Feb 02 2023 1:00 PM)
...
Marks all the specified tasks in the storage as not completed. If there are errors in the flags passed to the command, it will indicate them after listing the tasks successfully marked as not completed.
delete - Delete task(s)
Given an index, multiple indexes, a range of indexes, or a task description or a date on which those tasks occur, deletes those task(s).
Indexes refer to the numerical index as indicated in the response to the list command.
Examples of usage:
- Delete Individual task:
delete 1 - Delete Multiple tasks:
delete 1 3 5 - Delete Range of tasks:
delete 1 - 3ORdelete 1-3ORdelete 1 to 3 - Delete tasks occurring on a Date:
delete /on 2/2/23ORdelete -o 2/2/23ORdelete --o 2/2/23 - Delete tasks containing a Description:
delete /contains descORdelete -c descORdelete --c desc - Delete All tasks:
delete /allORdelete -aordelete --a
Expected Outcome:
Got it. I've deleted these {num_of_tasks} tasks:
[T][X] Task XXX
[D][X] Deadline YYY (by: Feb 02 2023 11:59PM)
[E][X] Event ZZZ (from: Feb 02 2023 12:00PM to: Feb 02 2023 1:00 PM)
...
Now you have {num_of_tasks} tasks in the list.
Deletes all the specified tasks in the storage. If there are errors in the flags passed to the command, it will indicate them after listing the successfully deleted tasks.
bye - Exit the app
You may either enter this command or close the window with the ❌ button.
Examples of usage:
bye
Expected outcome:
It was okay serving you. Might/might not see you again.
Exiting...
Rick indicates that the app is closing, and shuts down the app.
Frequently Asked Questions
Q: How do I import a text file?
A: Here’s a view of the file directory where you store your app:
. (Folder you are in)
├── data (new folder)
│ └── RICKSBRAIN.TXT
└── rick.jar
Simply rename your text file as RICKS_BRAIN.TXT, and replace the existing .txt file. Restart the app, and your tasks should be imported! You may also transfer this file to another machine so that you can access your tasks there.
Q: Cool! Now how do I format this file?
A: The file is simply formatted in this way:
Todo:T|1|{desc}-Tfor Todo, 1 for completed, task descriptionDeadline:D|0|{desc}|deadlineDfor Deadline, 0 for not completed, task description, deadline ind/M/yy HHmmformatEvent:E|1|{desc}|start|endEfor Event, 1 for completed, event description, start and end datetime each ind/M/yy HHmmformat
Example:
##data/RICKS_BRAIN.TXT
T|1|task one
D|0|deadline one|2/2/23 1200
E|1|event one|2/2/23 1200|3/2/23 1200
An improper format may crash the app, and your file may be corrupted.
Q: Must I use the graphic interface (GUI)? Can’t it be used in a terminal environment?
A: It can! Simply update the src/main/rick/Rick.java file to print and receive commands from the terminal, instead of sending the responses to the GUI package classes.