User Guide
Dash is a personal planner app which offers unparalleled speed using text-based input. It supports both management of tasks and contacts. Dash is tailored to the needs of university students, who must keep track of a slew of different deadlines, commitments, and contacts. So long as you’re a fast typist, Dash provides a blisteringly quick way to stay on top of your responsibilities.
This guide was written to help you set up and start using Dash. You can navigate by clicking the table of contents below. If you’re a new user, the Quick Start guide has all you need to get started. If you’re an intermediate user looking to get more out of Dash, all supported commands are listed below.
Table of Contents
- Table of Contents
- Setting up Dash
- How to use this User Guide
- Getting Started
-
Features
- General
- Contacts
-
Tasks
- Adding a task:
add
- Editing task details:
edit
- Tagging a task:
tag
- Assigning people to a task:
assign
- Completing a task:
complete
- Deleting a task:
delete
- Finding all tasks matching given details:
find
- Viewing all upcoming tasks:
upcoming
- Listing all tasks:
list
- Clearing completed tasks:
cleardone
- Clearing all tasks:
clear
- Adding a task:
- Command summary
Setting up Dash
Whether you’re using Windows or macOS, the steps for installation are the same.
-
Ensure you have Java
11
or above installed in your Computer. Not sure what Java is? Click here! -
Download the latest
dash.jar
from this website. - Copy the file to the folder you want to use as the home folder for Dash, which is where your data is stored.
- We suggest creating a folder called “Dash” and putting the
dash.jar
file inside it. You can place this folder wherever you want. Next, we recommend that you create a shortcut for Dash by right-clicking on thedash.jar
file. On Windows, click on theCreate Shortcut
option while on macOS, click onMake Alias
. You can then put this shortcut in a convenient place (such as your Desktop) for easy access.
- We suggest creating a folder called “Dash” and putting the
-
Double-click the file to start the app. Here’s what you should see in a few seconds:
- That’s all you need to do for the setup. To get started writing commands, refer to the Getting Started section below.
How to use this User Guide
- Go to the Getting Started section for an overview of Dash.
- If you want to dive straight into features, you can check out our Features section.
- For a quick recap of the commands, you can take a look at our Command Summary section.
Here is the meaning of some icons used in the guide:
Extra information about the specific section.
Important information to help you avoid errors.
Tips to help you get the most out of Dash.
Getting Started
Dash supports contact and task management in several ways. In terms of contact management, Dash allows you to add contacts and fill in details such as their phone number, address, and email. It even allows you to group them using tags such as “Neighbour” or “Colleague”, so you can look them up more easily. For task management, Dash allows you to add tasks, tag them, and set deadlines for them. Once you’re done with a task, you can mark it as complete.
Dash uses a tab system to keep your contacts and tasks separate. To view and edit your contact list, you must switch to the contacts tab. Similarly, to view and edit your task list, you must switch to the tasks tab. Finally, the help tab provides you with a quick summary of Dash’s features and how to use them.
Dash uses a Command Line Interface (CLI) to optimize speed. This means that you use mostly your keyboard to interact with Dash, instead of relying on your mouse to click on options. For example, you can switch tabs by typing in a command; you cannot do so by clicking the tab.
Type the command in the command box and press Enter to execute it. e.g. typing help
and pressing Enter will open
the help window.
Some example commands you can try:
-
contacts
: Switches to the contacts tab -
tasks
: Switches to the tasks tab -
add n/Joe
: Adds a contact named Joe. -
clear
: Deletes all contacts. -
exit
: Exits the app.
You can press the up and down arrow keys in the command box to retrieve your 10 previous commands. This can save you a lot of time!
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Command words (like
add
,find
,help
, etc.) are always lowercase and are case-sensitive. e.g.Help
will not be understood by Dash, buthelp
will. -
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional.
e.g.n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used more than once.
e.g.p/PERSON_INDEX…
can be used asp/1
,p/1 p/3
,p/4 p/5 p/2
etc.
e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command, but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,contacts
,tasks
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
Here is the meaning of some icons used in this section:
Brief description of what the command does.
Explanation of included screenshots.
Format of the command. Refer to the command format notes above for more information.
Notes on the command behavior, with relevant examples.
General
Switch Tabs: contacts
or tasks
or help
If you want to switch to a certain tab, you can do that by typing out the tab name.
Format: contacts
or tasks
or help
Alternatively, you can switch tabs using shortcuts to save time:
Format: c
or t
or h
Exiting the program: exit
If you want to close the window and exit the program, you can use the Exit command.
Format: exit
You can exit the app at any time by using the exit command or by closing the window. Your progress will always be saved.
Contacts
Command behaviour: Make sure you switch to the Contacts tab before using these commands! They will not work otherwise.
Adding a contact: add
If you want to add a person to the contact list, you can use the Add command. Only the contact’s name is compulsory during creation.
The above screenshot shows how you can use the Add command to add a person with the following details to your contact list:
- Name: Mitski Miyawaki
- Phone number: 91288841
- Email address: mitski@example.com
- Address: 1 Hougang Street 91, #01-41
- Tag(s): friend
Format: add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...
Name limitations:
Names must be unique, and should be no longer than 30 characters.
Editing contact details: edit
If you want to modify the details of a specific contact, you can use the Edit command.
The above screenshot shows how the Edit command can be used to edit the phone number and email of a contact.
Format: edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...
Notes:
- At least one of the optional fields must be provided.
- Edits the contact at the specified
INDEX
.- The
INDEX
refers to the position of the contact in the displayed contact list as indicated by the number next to their name. - The
INDEX
must be a positive integer (1, 2, 3,…).
- The
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the contact will be removed i.e. adding of tags is not cumulative.
- To add tags without removing existing tags, refer to the Tag command in the next section.
Name limitations:
Names must be unique, and should be no longer than 30 characters.
You can remove all tags from a contact by typing edit INDEX t/
.
Tagging a contact: tag
If you want to add new tags to a contact without replacing the old ones, you can use the Tag command.
The above screenshot shows how the Tag command can be used to tag a contact with the tag “groupmate”.
Format: tag INDEX t/TAG...
Notes:
- At least one tag must be provided.
Tag limitations:
Tags should be no longer than 15 characters.
Deleting a contact: delete
If you want to delete a contact, you can use the Delete command.
Format: delete INDEX
Notes:
- Deletes the person at the specified
INDEX
.- The
INDEX
refers to the position of the contact in the displayed contact list as indicated by the number next to their name. - The
INDEX
must be a positive integer (1, 2, 3,…).
- The
Finding all contacts matching given details: find
If you want to filter your contacts by tags, names, or any other details, you can use the Find command.
The above screenshot shows how the Find command can be used to search for all contacts who are tagged as “friends”.
Format: find [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]...
Notes:
- At least one of the optional fields must be provided.
- The search is case-insensitive. e.g.
find e/hans@gmail.com
will matchHans@gmail.com
. - The order of the keywords does not matter. e.g.
find a/tampines 111
will matchBlk 111 Tampines Street 11, #02-345
. - Contacts matching all keywords will be returned (i.e. AND search).
- e.g.
find n/Hans Bo
will return onlyHans Bo
andHans Bo the Second
. It will not returnHans Gruber
orBo Yang
. - e.g.
find p/86235343 t/CS2101
will return only contacts who have both the phone number86235343
AND the tagCS2101
. It will not return contacts with different phone numbers, even if they both have the tagCS2101
.
- e.g.
For added convenience, you can find contacts by their names by typing just find NAME
without the prefix n/
.
Listing all contacts: list
After you’ve filtered your contacts using the Find command, if you want to view all of them again, you can use the List command.
Format: list
Clearing all contacts: clear
If you want to delete all of your contacts, you can use the Clear command.
Format: clear
Clearing all contacts:
This command is irreversible and your contact list will be permanently deleted.
Tasks
Command behaviour: Make sure you switch to the Tasks tab before using these commands! They will not work otherwise.
Notes on the Contacts panel: On the Tasks tab, there is a Contacts panel on the right that shows a simplified view of your Contacts tab. If you filtered your contacts by using the Find command before switching to the Tasks tab, the Contacts panel shows the same filtered contact list. In this way, if you have a lot of contacts, you can maintain a focused view of the current people of interest and more easily assign them to tasks.
Adding a task: add
If you want to add a task to the task list, you can use the Add command. Only task’s description is compulsory during creation.
The above screenshot shows how you can use the Add command to add a task with the following details to your task list:
- Description: Submit PR
- Date and Time: 1 Nov 2021, 5:00 PM
- Tag(s): Groupwork
- Assigned Person(s): Alex Yeoh
Format: add d/DESCRIPTION [dt/DATE] [dt/TIME] [dt/DATE, TIME] [p/PERSON_INDEX]... [t/TAG]...
Notes:
- If you want to assign people to the task, the people to be assigned to the task (assignees) are specified with
PERSON_INDEX
.- You can assign multiple people to the same task at once.
- The
PERSON_INDEX
refers to the position of the person in the Contacts panel as indicated by the number next to their name. - Any specified
PERSON_INDEX
must be a positive integer (1, 2, 3,…).
- An explanation of how Date and Time formats work can be found here.
Editing task details: edit
If you want to modify the details of a specific task, you can use the Edit command.
The above screenshot shows how the Edit command can be used to edit the Date, Time and assignee of a task.
Format: edit INDEX [d/DESCRIPTION] [dt/DATE] [dt/TIME] [dt/DATE, TIME] [p/PERSON_INDEX]... [t/TAG]...
Notes:
- At least one of the optional fields must be provided.
- Edits the task at the specified
INDEX
.- The
INDEX
refers to the position of the task in the displayed task list as indicated by the number next to its description. - The
INDEX
must be a positive integer (1, 2, 3,…).
- The
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the contact will be removed i.e. adding of tags is not cumulative.
- To add tags without removing existing tags, refer to the Tag command in the next section.
- If you want to modify the assignees of the task, new assignees are specified with
PERSON_INDEX
.- You can assign multiple people to the same task at once.
- The
PERSON_INDEX
refers to the position of the person in the Contacts panel as indicated by the number next to their name. - Any specified
PERSON_INDEX
must be a positive integer (1, 2, 3,…).
- An explanation of how Date and Time formats work can be found here.
You can remove all tags from a task by typing edit INDEX t/
.
Tagging a task: tag
If you want to add more tags to a task without replacing the old tags, you can use the Tag command.
The above screenshot shows how the Tag command is used to add the tag “urgent” to the task “Submit CS2100 Assignment by 23:59”.
Format: tag INDEX t/TAG...
Notes:
- At least one tag must be provided.
Tag Limitations:
Tags should be no longer than 15 characters.
Assigning people to a task: assign
If you want to assign more people to a task without replacing the old assignees, you can use the Assign command.
The above screenshot shows how the Assign command is used to assign “Alex Yeoh” to the task “Submit CS2100 Assignment by 23:59”.
Format: assign INDEX p/PERSON_INDEX...
Notes:
- Assigns people, specified with
PERSON_INDEX
, to the task at the specifiedINDEX
.- At least one person must be provided.
- You can assign multiple people to the same task at once.
- The
INDEX
refers to the position of the task in the displayed task list as indicated by the number next to its description. - The
PERSON_INDEX
refers to the position of the person in the Contacts panel as indicated by the number next to their name. - The
INDEX
andPERSON_INDEX
must be positive integers (1, 2, 3,…).
Completing a task: complete
If you have completed a task, you can mark it as completed by using the Complete command.
The above screenshot shows how a completed task has its text greyed out and has a green tick next to its description. An incomplete task has a red tick instead.
Format: complete INDEX
Notes:
- Completes the task at the specified
INDEX
.- The
INDEX
refers to the position of the task in the displayed task list as indicated by the number next to its description. - The
INDEX
must be a positive integer (1, 2, 3,…).
- The
- You cannot ‘un-complete’ a task.
Deleting a task: delete
If you want to delete a task, you can use the Delete command.
Format: delete INDEX
Notes:
- Deletes the task at the specified
INDEX
.- The
INDEX
refers to the position of the task in the displayed task list as indicated by the number next to its description. - The
INDEX
must be a positive integer (1, 2, 3,…).
- The
Finding all tasks matching given details: find
If you want to filter your tasks by tags, assigned people, or any other details, you can use the Find command.
The above screenshot shows how the Find command can be used to search for all tasks marked “07:00 PM”.
Format: find [d/DESCRIPTION] [dt/DATE] [dt/TIME] [dt/DATE, TIME] [c/COMPLETION_STATUS]
[p/PERSON_INDEX]... [t/TAG]...
Notes:
- At least one of the optional fields must be provided.
- The search is case-insensitive. e.g
find t/HOMEWORK
will match thehomework
tag. - The order of the keywords does not matter. e.g.
find d/lectures ST
will matchST Lectures
. -
COMPLETION_STATUS
must be eithertrue
(for completed tasks) orfalse
(for incomplete tasks). - Tasks matching all keywords will be returned (i.e. AND search).
- e.g.
find d/Math Quiz
will return onlyMath Quiz
andMath Quiz 8
. It will not returnMath Assignment
orGEQ Quiz
. - e.g.
find dt/1900 t/homework
will return only tasks which have both the time1900
AND the taghomework
. It will not return tasks with different times, even if they both have the taghomework
.
- e.g.
- An explanation of how Date and Time formats work can be found here.
For added convenience, you can find tasks by their descriptions by typing just find DESCRIPTION
without the prefix d/
.
Viewing all upcoming tasks: upcoming
If you want to view all of your upcoming tasks, you can use the Upcoming command. Upcoming tasks are incomplete tasks whose Date/Time are after the current Date/Time.
The above screenshot shows how the Upcoming command is used to view all incomplete tasks after the current Date/Time. In this example, it was 25 October 2021, 09:16 PM.
Format: upcoming
Notes:
- Filters your task list so that upcoming tasks will be listed in chronological order.
- The current Date/Time is determined locally by your system clock.
This command will reorder your task list, even after you remove the filter with the List command. Completed tasks will appear first, so it’s convenient to use the Cleardone command next!
Listing all tasks: list
After you’ve filtered your tasks using the Find command or the Upcoming command, if you want to view all of them again, you can use the List command.
Format: list
Clearing completed tasks: cleardone
If you want to delete all of your completed tasks, you can use the Cleardone command.
Format: cleardone
Clearing all tasks: clear
If you want to delete all of your tasks, you can use the Clear command.
Format: clear
Clearing all tasks:
This command is irreversible and your task list will be permanently deleted.
Notes about specifying Date and Time: A task can optionally have a Date, or both a Date and a Time.
add [dt/DATE] [dt/TIME] [dt/DATE, TIME]
- When only Date is specified in the Add command, a task will only have the specified Date.
- When only Time is specified in the Add command, a task will have today’s Date and the specified Time.
- When both Date and Time are specified in the Add command, a task will have both of the specified Date and Time.
edit [dt/DATE] [dt/TIME] [dt/DATE, TIME]
- When only Date is specified in the Edit command, a task will only have its Date changed to the specified Date.
- When only Time is specified in the Edit command, a task will only have its Time changed to the specified Time.
- When both Date and Time are specified in the Edit command, a task will have both of its Date and Time changed to the specified Date and Time.
Multiple Date/Time parameters:
All commands that accept Date/Time parameters (Add, Edit, Find commands) expect only one Date/Time parameter.
If you specify multiple Date/Time parameters, only the last Date/Time parameter will be taken.
e.g. if you specify dt/12/02/2021 dt/1900
, only dt/1900
will be taken.
Date Formats
Format | Example |
---|---|
dd/MM/yyyy | 02/10/2021 |
dd-MM-yyyy | 02-10-2021 |
yyyy/MM/dd | 2021/10/02 |
yyyy-MM-dd | 2021-10-02 |
dd MMM yyyy |
02 Oct 2021 (First letter of Month must be capitalised) |
Time Formats
Format | Example |
---|---|
HHmm |
1300 (01:00 PM in 24-hour notation) |
hh:mm a |
10:00 PM , 02:00 AM (AM and PM must be capitalised) |
Command summary
General
Action | Format |
---|---|
Contacts |
contacts or c
|
Tasks |
tasks or t
|
Help |
help or h
|
Exit | exit |
Contact Tab
Action | Format |
---|---|
Add | add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... |
Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... |
Tag | tag INDEX t/TAG... |
Delete | delete INDEX |
Find | find [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... |
List | list |
Clear | clear |
Tasks Tab
Action | Format |
---|---|
Add | add d/DESCRIPTION [dt/DATE] [dt/TIME] [dt/DATE, TIME] [p/PERSON_INDEX]... [t/TAG]... |
Edit | edit INDEX [d/DESCRIPTION] [dt/DATE] [dt/TIME] [dt/DATE, TIME] [p/PERSON_INDEX]... [t/TAG]... |
Tag | tag INDEX t/TAG... |
Assign | assign INDEX p/PERSON_INDEX... |
Complete | complete INDEX |
Delete | delete INDEX |
Find | find [d/DESCRIPTION] [dt/DATE] [dt/TIME] [dt/DATE, TIME] [c/COMPLETION_STATUS] [p/PERSON_INDEX]... [t/TAG]... |
Upcoming | upcoming |
List | list |
Clear Done | cleardone |
Clear | clear |