ug title

By: AY1920S1-CS2103T-T10-3 Since: Sep 2019 Licence: NUS

1. Introduction

ug introduction

Hello, I am an Extremely Loud and Intelligent Student Assistant (ELISA)!

I am here to be your intelligent companion that keeps track of your tasks and remind you to take breaks.

Although I am optimized for those who prefer to work with a Command Line Interface (CLI), I also have a Graphical User Interface (GUI). If you can type fast, I can get your tasks done faster than traditional GUI apps.

Enjoy!

2. Quick Start

ug quickstart
  1. Have you installed Java 11 ?

  2. Find me, ELISA.jar here.

  3. Double-click me to start the app. See you in a few seconds.

    MainWindow
    Figure 1. Main window of ELISA
  4. Tell me what to do in the command box!

  5. Want to know more about me? A detailed explanation of me is at Section 4, “Features”

3. Legend

ug legend

Here are the icons that will be used in the app:

Done shows that you’ve completed this task.
Not done shows that you have yet to complete this task.

Legend difference
Figure 2. Difference between Task, Event, Reminder
Table 1. Legend description

What it creates:

Example command:

1) Task only

task shower

2) Event only

event christmas -d 25/12/2019 0000

3) Reminder only

reminder shower -r 10.min.later

4) Task and Reminder

task shower -r 10.min.later

5) Event and Reminder

event christmas -d 25/12/2019 0000 -r 24/12/2019 0000

6) Task and Event

task CS2103T Quiz -d 11/11/2019 2359

7) Task, Event, Reminder

task CS2103T Quiz -d 11/11/2019 2359 -r 10/11/2019 1200

4. Features

Now we’ll be presenting what you’ve been waiting for…​ our features!
But hold on, to fully appreciate our features, you might want to go through some of the command guidelines first.
These are some mistakes that our users(and even us) would make initially, and they can be really unpleasant, so we hope that you won’t have to go though them. For your viewing pleasure, we’ve collated it nicely into a quick starter pack below, let’s start!

ug features

This table shows the basic rules for the formatting the input:

Table 2. Command Guidelines

Guidelines:

Description:

Correct usage:

Words in UPPER_CASE are the parameters to be supplied by the user

If given task DESCRIPTION description is to be provided.

task shower

All flags MUST have a space after them

task shower -d10.min.later is incorrect. It should be task shower -d 10.min.later

task shower -d 10.min.later

Flags in square brackets are optional

If given task DESCRIPTION [-t TAG] tag is optional

task shower
task shower -t clean

Flags can be in any order, given that they are accepted by the command

If given task DESCRIPTION [-d DATETIME] [-r REMINDER] -r can come before -d

task shower -d 1.hour.later -r 30.min.later
task shower -r 30.min.later -d 1.hour.later

Flags must not be repeated in the same input, unless it is a tag flag

task shower -p high -p low is incorrect as -p appears twice. However, task bathe -t fresh -t hygiene is accepted

task shower -p high

For the parser of mm.min.later, hh.hour.later, dd.day.later, the maximum allowed is 100

101.min.later is not accepted, however 100.min.later or 99.day.later are both accepted.

task study -d 99.day.later

This is a quick summary of all our flags.

For first time users:

  • You can choose to skip through this first as it may seem overwhelming now.

  • But as you go along the different sections and see new flags, it might be useful to refer to this as it can help you understand it’s accepted parameters.

For more experienced users:

  • This can be your best buddy! We understand that sometimes it can be troublesome to look through the entire guide just to find the flag you want.

Table 3. Flags Overview

Flag:

Parameter:

Parameter Format:

Possible Parameters:

Example Usage:

-d

DATETIME

yyyy-MM-ddTHHmm or dd/MM/yyyy HHmm or mm.min.later or HH.hour.later or dd.day.later

2019-09-25T19:34 or 25/09/2019 1934 or 10.min.later

-d 25/09/2019 1934

-r

REMINDER

yyyy-MM-ddTHHmm or dd/MM/yyyy HHmm or mm.min.later or HH.hour.later or dd.day.later

2019-09-25T19:34 or 25/09/2019 1934 or 10.min.later

-r 25/09/2019 1934

-p

PRIORITY

high, medium, low

HIGH, medium, LOW

-p high

-t

TAG

alphanumeric only

happy123

-t happy123

-desc

DESCRIPTION

alphanumeric and all symbols except "-"

drink 5 litres of water

-desc drink water!

-auto

PERIOD

day or month or week or mm.min.later or HH.hour.later or dd.day.later

day or week or month or 10.min.later

-auto 10.min.later

--tk

none

none

none

--tk

--e

none

none

none

--e

--r

none

none

none

--r

There are three other flags that do not take in any parameters and are only used for the edit command. They are listed below:

Table 4. Additional flags

Flag:

Meaning:

--tk

Used to delete a task attached to an item

--e

Used to delete an event attached to an item

--r

Used to delete a reminder attached to an item

Not all tags work for every command. Please check the specific command for more details.
All time dependent elements such as deadline, reminder and calendar time are dependent on the system time

If you face any issues, please check the Section 5, “Additional Notes”. If it is not mentioned there, then feel free to bring it up to us!

Now we are ready to jump into the features itself!

4.1. CLI Features

4.1.1. Adding a task: task

Adds a task to the task list
Format: task DESCRIPTION [-d DATETIME] [-r REMINDER] [-p PRIORITY] [-t TAG]

To create a task quickly, just include the description as Task can have no flags (ie task shower).

Examples:

  • task eat my vitamins

  • task eat my vitamins -r 5.hour.later

  • task eat my vitamins -d 10.hour.later -p low -t healthy

4.1.2. Adding an event: event

Adds an event to events list and calendar
Format: event DESCRIPTION -d DATETIME [-r REMINDER] [-p PRIORITY] [-t TAG]

Examples:

  • event John’s Birthday -d 20/09/2019 1800

  • event John’s Birthday -d 20/09/2019 1800 -r 19/09/2019 1800

  • event John’s Birthday -d 3.day.later -r 2.day.later -p high -t friend

It is currently not possible to set a reminder for events with an autoreschedule flag. We intend to include this in v2.0 .

4.1.3. Editing an item : edit

This command is used to edit any of the items that you might have.

Limitations
  • You are only able to edit the item currently shown in your view. For example, when you’re on the task list, you can only edit the tasks shown. You will not be able to edit events or reminders.

  • The new item with the edited fields must not already exist. Don’t worry if you can’t remember that, ELISA will remind you!

Format: edit INDEX [-desc DESCRIPTION] [-d DATETIME] [-r REMINDER] [-p PRIORITY] [--tk] [--e] [--r] [-t TAG]…​

  • Edits the task at the specified INDEX. The index refers to the index number shown in currently viewed list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

Now, you might wonder, what does --tk, --e, --r do?
Haven’t you thought of how you would remove just a reminder of a task, or remove just the deadline of a task, without deleting the entire item?
Well this is just what you are looking for!

For an item with a task, event and reminder, --tk removes the task portion while --e removes the event portion while --r removes the reminder portion.
For example, here is an item that is a task, with an event and a reminder:

edit 1

After you enter edit 1 --e --r, this is how the item would look:

edit 2

Convenient isn’t it? As you can see, the event and reminder details are removed, which is precisely what we want.

But wait! The resultant item should not be totally empty! It just doesn’t make sense to have an empty item just hanging there in your list. There should have at least a task, event or reminder.
Well, if you can’t remember what fields can or cannot be removed, fret not. ELISA will be sure to tell you that:

edit 3

Also, if you decide to edit something and remove the part in the same command, ELISA would just remove it as she believes that your command to remove it is more important.
For example, you decide to edit the reminder time and also remove the reminder with the command edit 1 -r 8.hour.later --r:

edit 4

As you can see, the reminder part is removed.

Here are some example commands for edit:

  • edit 1 -desc read books -d 3.day.later -p low
    Edits item 1 of the current list. Changes the description to read books, deadline to 3.day.later and priority to low.

  • edit 3 -desc CS2103 team meeting -r 3.hour.later -p high
    Edits item 2 of the current list. Changes the description to CS2103 team meeting, reminder to 3.hour.later and priority to high.

4.1.4. Deleting a reminder/task/event : delete

Deletes the reminder/task/event from ELISA.
Format: delete INDEX

  • Deletes the item at the specified INDEX of the current list shown.

  • The index refers to the index number shown in the list.

  • The index must be a positive integer 1, 2, 3, …​

  • No flags should be given with this command.

Examples:

  • show r
    delete 2
    Deletes the 2nd reminder in the shown reminder list.

4.1.5. Completing a task: done

Mark a task at the specific index as done.

Format: done INDEX

Examples:

  • done 1 - Marks the task at index 1 as done.

  • This command can only be used in the task list panel.

  • The index refers to the index number shown in the list.

  • The index must be a positive integer (1, 2, 3 …​)

  • No flags should be given with this command.

4.1.6. Continuing with a task: continue

Mark a task at the specific index as undone.

Format: continue INDEX

Examples:

  • continue 1 - Marks the task at index 1 as undone.

  • cont 1 - Short version of the above command

  • This command can only be used in the task list panel.

  • The index refers to the index number shown in the list.

  • The index must be a positive integer (1, 2, 3 …​)

  • No flags should be given with this command.

4.2. AutoReschedule Feature

Do you have to go to the supermarket weekly? Complete a quiz weekly? Jog daily? Well this would definitely make your life much easier!
Your events can now update its own time when it is already over! All you need to do is to add a -auto flag, along with a time period.

Here is how you can do it. You might have weekly quizzes due on the same day every week, the command you can enter is event CS2103T Quiz -d 23/11/2019 2359 -auto week.
This creates an event whose date will change every week. Convenient isn’t it! Now you no longer have to manually change their dates after it is over.

That’s not it! If you add an AutoReschedule event with a date that is already over, ELISA would automatically update its date to show the upcoming one.
This is what I mean. If you add an event that is already over, eg. event quiz 11/08/2019 2359 -auto week:

100

ELISA immediately changes it to show the upcoming date for this week. ELISA shows 10 NOV as it is 9 NOV at this point.

Also, are you worried that the events wouldn’t be updated if you leave the app? No worries as ELISA’s got you covered!
When you come back again, you would see that all the events that have AutoReschedule would show the upcoming date.

But there is a small drawback…​ AutoReschedule currently does not work with reminders. That means that if you add an -auto flag for an event, you would not be able to add a -r flag for reminders. This also means that reminders cannot be created with the -auto flag. But you can look forward to this in V2.0 of ELISA!

For the rescheduling period, you can use hour, day, week or the 10.min.later format.

Here are some interesting commands you can try:

  • event grocery shopping -d 9/9/2019 1200 -auto week

  • event jog -d 23/11/2019 0800 -auto day

  • event smile -d 1.min.later -auto 1.min.later (it’s good to be happy)

4.3. Reminder Feature

So focused on your work that you forget the other tasks in your life? Don’t worry! You can ask ELISA to remind you to do what you need to do, when you need to do it!

4.3.1. Adding a reminder: reminder

Simply add your reminder with this command: reminder John’s Birthday -r 11/11/2019 1440
and ELISA will carry it out!

BeforeReminderCommand

Once it’s time for you to be reminded, ELISA will remind you! Best of all, ELISA will play a chime so you won’t need to have ELISA open in order to be reminded!

AfterReminderCommand

More specifically, the reminder command format is: reminder DESCRIPTION -r REMINDER [-t TAG]

Here are some other ways you could use this command!:

  • reminder Finish UG -r 11/10/2019 1400

  • reminder Get John’s Birthday gift -r 2019-09-19T14:00 -t friend

  • reminder Study for 2103T Exam -r 3.day.later

    1. It is currently not possible to set a reminder for events with an autoreschedule flag. We intend to include this in v2.0 .

    2. It is not possible to set a reminder in the past.

FailReminderCommand

4.3.2. Snoozing a reminder: snooze

If you’re in the groove of working but still want to be reminded again of a reminder that just occurred, you can use the snooze command!

snooze will snooze the most recent reminder for a duration of time (5 minutes by default)

BeforeSnoozeCommand

And ELISA will remind you again once it’s time!

AfterSnoozeCommand

More specifically the format of this command is: 'snooze [INDEX] [-s SNOOZE_DURATION]'

  1. This snoozes a reminder.

  2. The index refers to the it’s index in the reminder list.

  3. If an index is not provided, the most recently occurred reminder will be snoozed.

  4. If a snooze duration is not specified, the reminder will be snoozed at the default duration of 5 min.

Here are some examples you can try out! * snooze 1 * snooze 3 -s 10.min.later * snooze -s 10/10/2020 1400

  1. It is possible to snooze the same reminder multiple times if you wish.

  2. It is not possible to snooze (without specifying index) if no reminder has occurred yet.
    However, if you use the snooze command incorrectly, ELISA will first attempt to correct your usage of the snooze command.

4.4.1. Show the specified category : show

Shows the specified category by switching the view to the given list.
Format: `show [t] [e] [c] [r] (Exactly one flag must be used with this command)''

The flag can be in either lowercase or uppercase. Eg. show E.

4.4.2. Scrolling the list : up / down

Scrolls the list up/down

4.5. Visual Features

4.5.1. Expanding an item in the view: open & close

Want to see all the details of an item at one glance? Lazy to go to event list or reminder list to find them? We got you!

You can now open up an item to see all its details, regardless of what list you are on. But remember to close it before opening another item!

Open format: open INDEX
Close format: close

Example sequence:

  • show T - to switch to the task view

  • open 2 - opens the second item on the list

  • close - closes the item

  • open 3 - opens the third item on the list (Note: If you forgot to close previously, no worries as ELISA will prompt you to!)

  • close - closes the item

Although, the ESC key can close too, we do not advise doing so as ELISA may be confused later on :(

4.5.2. Changing the theme : theme

Screen is too dark? Switch up the theme by typing theme white!

themewhite
Figure 3. White theme of ELISA

Examples:

  • theme white

  • theme black

4.5.3. Clearing the screen : clearscreen and clear

Chat box getting too cluttered? Type clearscreen to clear it!

  • clear - clears all lists

  • clearscreen - clears the chat box

4.6. Calendar Feature

Sick of looking through lists of events? Type show c in the command box and your events will be magically placed into a calendar!

calendar
Figure 4. Calendar feature of ELISA

4.7. Entertainment Features

Too stressed from all the work? Check out these features to take a short break so that you can go further!

4.7.1. Play a game: game

game switches your list of tasks into a game of Snakes!

There are 2 modes to the game: easy and hard. Type game hard to enter the hard mode of the game!

Controls: UP, DOWN, LEFT, RIGHT

Snake
Figure 5. Snake game EASY

EASY

New to the game? Try out the easy mode, where all you have to do is collect the food, which is indicated by the pink box. Biting your own tail will result in GAME OVER! Be careful!

SnakeHard
Figure 6. Snake game HARD

HARD

Find the game too easy? Enter the hard mode and there will be 20 random walls (indicated by blue box) placed all around the game. Colliding with any of these walls will result in a GAME OVER! You will need to navigate through these walls to collect your food!

EXIT

Realised that you have played for too long and want to get back to work? Hitting the ESC key will exit the game and return you to your list of tasks!

4.8. Asking ELISA for a joke : joke

Need to amuse yourself for a bit? Simply use the joke command and ELISA will select a joke from her database for you to enjoy!

  • Note that each joke is randomly selected from the database and may repeat.

Example:

  • joke

4.9. Undo/Redo Feature

4.9.1. Undoing the latest modification(s) : undo

Reverts the latest commands given on the ELISA.
Format: undo

  • undo can only be done if commands have been executed

Examples:

  • undo
    Undoes the last command

4.9.2. Redoing the latest undone command(s) : redo

Re-executes the latest undone commands given on the ELISA.
Format: redo

  • redo can only be done if undo has already been executed

  • After undo, if a new command is executed then redo cannot be executed

Examples:

  • redo

4.10. Sort/Find/Priority Feature

4.10.1. Sorting ELISA out: sort

Is ELISA getting too cluttered and disorganized? Do you want to sort your task by their priority? Or the events by their start date?

ELISA comes in-built with a sort feature that allows you to sort your items within the different panel. And the best part of it? YOU can decide how you want to sort it.

The simple sort command on the different panel sorts the list differently (just another sign of how smart ELISA is) and they are as follows:

  • task panel - tasks are sorted from those that are incomplete to those that are completed. Within the two groups, they are sorted based on their priority, from high to medium and to low.

  • event panel - events are sorted based on their start date and time.

  • reminder - reminders are sorted based on their firing off date and time.

But why stop there? You are also able to sort by priority and description within all the panels and even combine different sorting together! You are only limited by your imagination (and the items within your lists).

Format: sort or sort <criteria>

Examples:

  • sort - a simple sort that follows the criteria mentioned above for the different panel.

  • sort pri - sorts the item within the panel by their priority (from high to low).

  • sort desc - sorts the item within the panel by their description (lexicographic order)

4.10.2. Finding a task: find

Is your task list getting too long and you are not able to find what you are looking for? Introducing the find function which will allow you to find what you want within the specific panel. Just type find and the keywords that you want to search for within the command box and ELISA will find the relevant items for you.

BeforeFind
Figure 7. ELISA before find command
AfterFind
Figure 8. ELISA after find command

Format: find <keyword>

Examples:

  • find CS2101 - find all items that have CS2101 in their description within that panel

  • find CS2101 CS2103 - find items that contains either CS2101 or CS2103 within their description.

4.10.3. Entering priority mode: priority

Overwhelmed by the number of tasks to complete? Priority mode will help you narrow your focus down to the most pressing task to complete.

500
Figure 9. ELISA before priority mode with a long list of tasks

By simply typing priority into the command box, you will be given one single task of the highest priority among your task list. This task is chosen by ELISA base on priority and the order in which the task was added to the list.

500
Figure 10. ELISA in priority mode

Notice that the ELISA icon turns red to signify that you are in priority mode and your task list has shrunk from 5 tasks down to the 1 most important task.

When you are done with your current task, just tell ELISA you are done by simply typing done 1 and ELISA will generate the next task for you.

500
Figure 11. ELISA after completing the first task

To go back to the normal task view, simply type priority again. Or even better, complete all your tasks and you will be automatically brought out of priority mode.

500
Figure 12. ELISA after all tasks are completed

Feeling lazy? You can also opt to turn off priority mode at a specific time by typing priority dd/mm/yyyy hhmm and ELISA will turn it off at that specific time for you.

For the easily distracted, there is an extreme focus mode available. Simply tell ELISA that you want to enter the extreme focus mode by attaching a -f flag to the back of the command. In the extreme focus mode, commands such as show, sort, find, game, event and reminder are banned.

Format: priority [DATETIME] [-f]

Examples:

  • priority - activates or deactivates the priority mode

  • priority 30/10/2019 1200 - activates the priority mode and ask ELISA to turn it off on 30/10/2019 at noon

  • priority 2.hour.later -f - activates the focus mode and ask ELISA to turn it off 2 hours later

  • Note that this command can only be called in the task panel and when you have incomplete tasks to be completed.

  • Note that if priority mode is currently on, any variation of priority will turn it off.

  • Note that all command such as edit, undo and redo still works in priority mode. However, if a done or delete command takes you out of priority mode and then you undo it, it will only undo the command but will not take you back into priority mode.

4.11. Exiting the program : exit

Exits the program.
Format: exit

4.12. Saving the data

ELISA saves the data in the hard disk automatically after any command that changes the data. There is no need to save manually.

5. Additional Notes

5.1. Input

  • Currently, an empty input can be entered, but ELISA will show an invalid command.

5.2. Calendar

  • Currently, it only shows 1 event on each date due to limited space on the calendar. If there are more events on that date, to find them all, you can go to the event list and sort through it.

  • Currently, it only shows the current month. We are still working to bring the next month to you.

  • Please keep a full screen. If you resize, we are unable to guarantee the view of the calendar.

6. Coming in V2.0

  • Events with AutoReschedule can have reminders that will be rescheduled along with it.