Yapper is a CLI-based (Command Line Interface) ChatBot that helps you manage tasks such as ToDos, Deadlines and Events, all while “yapping” at you.
When you first run Yapper, you will be greeted with a start-up message, and a help message:
___________________ PROGRAM OUTPUT BELOW ___________________
Wassup!
Ya ready for me to yap yer ear off?
Whatchu wanna talk about?
____________________________________________________________
To jog your memory, here's what we can discuss:
list, if you forgot what you said.
help, if you forgot what kinda stuff we can yap about.
bye, if you want me to stop yappin.
delete [index], if you don't want something.
mark [index], if you're done with something.
unmark [index], if you're not done with something.
find [keyword], if you're looking for something.
todo [todoDesc], to for a task with no dates.
deadline [deadlineDesc] /by [end], for a task with an end date.
event [eventDesc] /from [start] /to [end], for a task with a start date and an end date.
_____________________ USER INPUT BELOW _____________________
You can then start entering commands to add tasks, and more.
Yapper supports 10 different command types:
Yapper will only understand user inputs that start with the keywords above.
To perform a command,
use the command keyword, followed by additional arguments if any,
e.g. Shown here is how to format your input so that Yapper understands
.
Shown here is a sample program output based on the sample input above.
The command keyword is always in lowercase.
To add a ToDo task,
use the todo command followed by the task description
e.g. todo todoDesc
.
___________________ PROGRAM OUTPUT BELOW ___________________
Now, I gotta remember this too:
[T][ ] todoDesc
If I counted correctly, you have a task total of 1
Don't worry, I've already memorized all about it!
To add a Deadline task,
use the deadline command followed by the task description then an end date,
e.g. deadline deadlineDesc /by endDate
.
___________________ PROGRAM OUTPUT BELOW ___________________
Now, I gotta remember this too:
[D][ ] deadlineDesc, due endDate
If I counted correctly, you have a task total of 2
Don't worry, I've already memorized all about it!
To add an Event task,
use the event command followed by the event description, a start date then an end date,
e.g. event eventDesc /from startDate /to endDate
.
___________________ PROGRAM OUTPUT BELOW ___________________
Now, I gotta remember this too:
[E][ ] eventDesc, from startDate to endDate
If I counted correctly, you have a task total of 3
Don't worry, I've already memorized all about it!
To delete a (ToDo, Deadline or Event) task,
use the delete command followed by the task number,
e.g. delete 1
___________________ PROGRAM OUTPUT BELOW ___________________
Now I don't need to remember this one anymore:
[E][ ] sleep, from today 2300 to tomorrow 0800
If I counted correctly, you have a task total of 0
Don't worry, I've already forgotten about it!
To list all tasks in your task list,
use the list command without any parameters.
e.g. list
___________________ PROGRAM OUTPUT BELOW ___________________
You're forgetting already? Lemme refresh your memory:
1.[T][X] todoDesc
2.[D][ ] deadlineDesc, due endDate
3.[E][ ] eventDesc, from startDate to endDate
That should be all of them. Did I forget any?
To find tasks,
use the find command followed by the query string,
e.g. find CS2113
This will list all tasks which have that query in its description, if any.
___________________ PROGRAM OUTPUT BELOW ___________________
Hmmm, let me think. What tasks could you be referring to?
3.[T][O] CS2113 iP
4.[T][X] CS2113 tP
2 task(s) found contains your query string.
___________________ YAPPING OUTPUT BELOW ___________________
Is any of them what you were looking for?
To mark a task as complete,
use the mark command followed by the task number,
e.g. mark 1
___________________ PROGRAM OUTPUT BELOW ___________________
I know, you told me that this task is done
[T][O] procrastinate
Keep it up! What are you gonna do next?
To unmark a task as incomplete,
use the unmark command followed by the task number,
e.g. unmark 1
___________________ PROGRAM OUTPUT BELOW ___________________
I know, you told me that this task is not done
[T][X] be productive
Keep going, you'll get it done eventually!
To get a help message,
use the help command without any parameters,
e.g. help
.
___________________ PROGRAM OUTPUT BELOW ___________________
To jog your memory, here's what we can discuss:
list, if you forgot what you said.
help, if you forgot what kinda stuff we can yap about.
bye, if you want me to stop yappin.
delete [index], if you don't want something.
mark [index], if you're done with something.
unmark [index], if you're not done with something.
find [keyword], if you're looking for something.
todo [todoDesc], to for a task with no dates.
deadline [deadlineDesc] /by [end], for a task with an end date.
event [eventDesc] /from [start] /to [end], for a task with a start date and an end date.
_____________________ USER INPUT BELOW _____________________
To exit the program,
use the bye command without any parameters,
e.g. bye
.
___________________ PROGRAM OUTPUT BELOW ___________________
Thanks for listenin' to my yappin'.
Call for me whenever ya feel like listening again.
Cya!
____________________________________________________________
If a command requires additional parameters, they must be included and must be in the same order indicated.
If a command does not require additional parameters, do not include anything after the command keyword.
Command keywords are always in lowercase.
Command | Description | Format | Example |
---|---|---|---|
todo | Adds a new Todo task to the list | todo [desc] | todo study for exam |
deadline | Adds a new Deadline task to the list | deadline [desc] /by [date] | deadline canvas quiz /by today |
event | Adds a new Event task to the list | event [desc] /from [date] /to [date] | event tP meeting /from today 2000 /to 2100 |
delete | Deletes a task from the list | delete [ordinal] | delete 6 |
mark | Marks an uncompleted task in the list as done | mark [ordinal] | mark 4 |
unmark | Marks a completed task in the list as not done | unmark [ordinal] | unmark 3 |
list | Lists all tasks in the list | list | list |
find | Lists all tasks in the list whose description contains the query | find [query] | find CS2113 |
bye | Exits the program with a goodbye message | bye | bye |
Do note that parameters must be of a certain type:
The task list is saved in a file, savedata.txt, located in the data folder. This file is updated in real-time, i.e. it updates every time you add (todo, deadline, event), remove, or update (mark/unmark) the list.
When Yapper boots up, it searches for that file and converts its contents into a task list. However, it can only convert text in a particular format, so edit the file with caution.
Don’t worry if you accidentally deleted your save file or the folder that it is in. The next time you update the task list in the terminal, Yapper will create a new file (and its folder, if necessary) and fill the file in with the tasks it has.
However, as much as possible, try to make sure this doesn’t happen. The file/folder creation may take a while to reload.
If you both delete the save file and end the program without saying anything to Yapper, your tasks are gone forever and there is no way to get them back.