By : W13-B4
Since: Jan 2017
Licence: MIT
- Introduction
- Quick Start
- Features
3.1. Viewing help
3.2. Adding a new task
3.3. Listing tasks
3.4. Sorting tasks
3.5. Finding a task
3.6. Editing an existing task
3.7. Deleting a task
3.8. Marking tasks as finished
3.9. Undoing previous commands
3.10. Setting an alias for a command word
3.11. Loading an external data file
3.12. Changing the storage location
3.13 Changing themes
3.14. Saving the data
3.15. Clearing all tasks
3.16. Exiting the program - FAQs
- Command Summary
Do you love the adrenaline rush you get when you check an item off your to-do list, but are you too busy to actually make one? Use Doist today, be a Doist and feel more organised than ever before!
Doist is the comprehensive tool to help you in all your planning. It allows you to key in, sort, tag and even search for your tasks and events so that you can focus on getting things done. Your hands never need to leave the keyboard with our command-line input interface, and our easy-to-use UI will keep you coming back for more. Once you are a Doist, there's no looking back.
Doist. Rediscover your love for doing things, one line at a time!
Are you ready to be a Doist?
- Ensure you have Java version
1.8.0_60
or later installed in your computer.
Having any Java 8 version is not enough. This app will not work with earlier versions of Java 8.
-
Download the latest
.jar
from the releases tab. -
Copy the file to the folder you want to use as the home folder for Doist. You can change this later.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
Figure 2.1: Doist Application Window -
Voila, you are ready to be more productive! Type a command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window.
Type the following commands and press Enter after each command.
add Attend group meeting \from 3pm \to 5pm
.
Adds an event for today with a description of "Attend group meeting" from 3pm to 5pm todayadd Go grocery shopping \by 6pm 25th Oct
.
Adds a task with a description of "Go grocery shopping" which has a 6pm deadline on the 25th of October.finish 1
Marks the first task in the list as finished.list pending
Lists all the pending tasks.delete 1
Deletes the 1st task shown in the current list.exit
Exits the application.
Go ahead and try out different date and time formats for the add command!
Refer to the Features section below for details of each command.
Command Format
Take note of some general information for our commands :
Figure 3.1: General command format
- All parameters start with the backslash
\
.
e.g.\from
,\to
- Command words and parameters that consist of multiple words will not contain spaces. Underscores are used instead.
e.g.remove_alias
- Words in
UPPER_CASE
are the values. You can enter whatever you want for them!- Items in
[]
are optional.- Items with
...
after them can have multiple instances, separated by space.
e.g.[INDEX...]
means you can specify multiple indices for that command.- The command parameters can be entered in any order after the command word.
e.g.add Buy the milk \to 3pm \from 5pm
works too!
Command Features
-
Highlight: Commands get highlighted with different colours as you type!
-
Auto-complete: When you start typing a command, Doist will provide you with command word suggestions. Press TAB to accept the first suggestion.
Figure 3.2: Autocomplete giving command word suggestions -
Command History: Use ↑ and ↓ to scroll through previously typed commands. You won't have to remember what you have previously typed!
-
Quick Navigation: Use Esc to enter navigation mode. In navigation mode, you can use j and k to scroll through the tasks up and down respectively. To exit navigation mode and to resume normal typing, press Esc again.
Feeling a little lost? Simply type help
to view the handy help page!
Format: help
The following window will appear:
Figure 3.1.1: The help window pops up when you use the help command
You can use the add
command to add tasks. Tracking your tasks is what Doist does best!
Description
Add a new task with a description by using just the add
command word.
Format: add TASK_DESCRIPTION
Examples:
add buy milk
Start time and End time
Add a task with a start time and end time for events that occur over a period of time with \from
and \to
parameters.
Format: add TASK_DESCRIPTION [\from START_TIME] [\to END_TIME]
Examples:
add buy milk \from 3pm \to 4pm
add buy milk \from 12 Oct 3pm \to 12 Oct 4pm
Remarks:
- See Figure 3.2.1 for acceptable date and time formats.
Deadline
Add a task that has a deadline with the \by
key.
Format: add TASK_DESCRIPTION [\by TIME]
Examples:
add buy milk \by 3pm
add buy milk \by 28th Feb
Acceptable date and time formats
Date Format | Examples |
---|---|
Day Month | 1st Oct |
Day Month Year | 1st Oct 2017 |
Month Day | Oct 1st |
Month / Day | 10/1 |
Month / Day / Year | 10/1/17 |
Relative | today, tomorrow, tmr, two days later |
Time Format | Examples |
---|---|
Hour:Min | 03:00 |
Hour.Min | 03.00, 3.00 |
Hour am/pm (12 hour format) | 3pm, 3am |
Hour (24 hour format) | 3 |
Figure 3.2.1: Acceptable date and time formats
Remarks:
- If you do not explicitly state the date, the date will be assumed to be within the next 24 hours
- If you do not explicitly state the time, the time will be assumed to be the current time of the day
- If you do not explicitly state the year, the year will be assumed to be the current year
- Note that the start time must be earlier or equal to the end time
Priority
Add a task with higher priorities with the \as
key. By default, tasks are of normal priority. Since we all have certain tasks that are more important than others, you can indicate that they are important or very important!
Format: [\as PRIORITY]
Examples:
add buy milk \as important
add buy milk \as very important
Remarks:
Priority
can benormal
,important
,very important
Figure 3.2.2: Important and very important tasks have stars next to them
Tags
Add a task with tags with the \under
key. Separate multiple tags with spaces.
Format: [\under TAG...]
Examples:
add buy milk \under shopping friends
add buy milk \under for_myself
Remarks:
- Tasks can have any number of tags (including 0)
Sample Commands:
do group meeting \from 4pm today \to 6pm today \as important \under school_work CS2103T
add submit pre-tutorial activities \by 6pm this Wednesday
You can use the list
command to list different types of tasks! Doist knows that you have many tasks and will need to filter them in some way to concentrate on doing those tasks.
List all, pending, overdue, finished
Just typing list
will allow you to list all tasks!
List pending
, overdue
, finished
tasks too with the list
command.
Format: list [TYPE]
where TYPE can be pending
, overdue
or finished
Examples:
list
list pending
list overdue
list finished
Remarks:
list
will by default show all tasks, with finished tasks placed at the bottom
List tasks during a time period
If you want to list tasks occurring during a time period, just use the \from
and \to
parameters.
Format: [\from TIME] [\to TIME]
Examples:
list \from 3pm \to 5pm
Remarks:
- See Figure 3.2.1 for acceptable date and time formats
List tasks under tags
You can even list tasks that are under certain tags by using the \under
key.
Format: [\under TAG]
Examples:
list \under shopping
Sample Commmands
list pending \under school_work
list pending \from today \to tomorrow
list finished \from 1st March \to 20th March \under internship
You can use the sort
command to sort tasks in alphabetical order, by priority or by time.
You can even combine multiple sorting methods!
Format: sort TYPE [TYPE...]
where TYPE can be alpha, priority or time
The default sorting
Examples:
sort priority
sort alpha priority time
Remarks:
- By default, tasks are sorted by time, priority then alphabetical order.
You can use the find
command to find tasks whose description contains any of the given search queries. You just need to remember any of the words in the description of a task to find it in your long list of tasks!
Doist will suggest descriptions of existing tasks to make finding a task easier. Just press TAB to accept the first suggestion!
Figure 3.4.1: Autocomplete giving suggestions for find
Format: find QUERY [QUERY...]
Examples:
find buy groceries
find meeting with professor
Remarks:
- Spaces are allowed in search query.
- The search is case insensitive.
- The order of the search terms does not matter. e.g.
Hans Bo
will matchBo Hans
- Only the task description is searched.
- Tasks matching at least one search query will be returned. e.g. A task with a description of
Hans
will match search queryHans Bo
- Even if the description of the task does not contain the exact word that you search, Doist will return close matches!
You can use the edit
command to edit the specified task. Feel free to edit whatever you want in one line. Be assured that other properties of the task will not change!
Format: edit INDEX [TASK_DESCRIPTION] [\from START_TIME] [\to END_TIME] [\as PRIORITY] [\under TAG...]
Just like the add command, \by
can be used in place of \from
and to
.
Format: edit INDEX [TASK_DESCRIPTION] [\by TIME] [\as PRIORITY] [\under TAG...]
Examples:
edit 3 edited description of task
Remarks:
- This is similar to 3.2 Adding a new task
Sample Commands
list
edit 1 watch NBA \from tuesday 7pm \to tuesday 9pm
Suppose that the description of this task is originallywatch nba
, the new description will be changed towatch NBA
. The 'from' and 'to' times will also be updated.
You can use the delete
command to delete the task specifed by an index. The index refers to the index number of the task shown in the most recent listing.
Format: delete INDEX [INDEX...] [INDEX - INDEX]
Examples:
delete 3
delete 3 4 5
delete 2-6
Remarks:
- Deletes the tasks at the specified
INDEX
.- You can delete more than one task by specifying multiple indices.
- You can also specify a range of indices to be deleted.
Sample Commands
list finished
delete 1 2
This combination of commands deletes the 1st and the 2nd tasks in the result oflist
command.find 'party'
delete 1-5
This combination of commands deletes the first 5 tasks in the results of thefind
command.
You can use the finish
command to mark the specified tasks as finished.
Format: finish INDEX [INDEX...] [INDEX - INDEX]
Use the unfinish
command to change the status of an already finished task to not finished.
unfinish INDEX [INDEX...] [INDEX - INDEX]
Examples:
finish 3
finish 3 4 7-9
unfinish 3
Remarks:
- The index refers to the index number of the task shown in the most recent listing.
- If the task(s) at the specified
INDEX
is/are already finished, there will be no changes made.
Figure 3.8.1: Finished tasks have their checkboxes marked and have a green sidebar
Sample Commands
list pending \in this week
finish 1 2
This combination of commands marks the 1st and the 2nd tasks in the result oflist
command as finished.find 'project'
finish 1
This combination of commands marks the 1st task in the results of thefind
command as finished.
You can use undo
to undo previous commands. Undo as many times as you wish!
Format: undo
Keyboard Shortcut: Ctrl + Z
If you regret undoing a command, you can use redo
to restore your changes.
Format: redo
Keyboard Shortcut: Ctrl + Y
Do you feel that our default command words are too lengthy and will like to set your own command words?
You can use alias
to set an alias for an existing command word. You will then be able to use the alias to trigger the command!
Format: alias ALIAS \for COMMAND_WORD
Examples:
alias a \for add
Remarks:
ALIAS
should have no spaces, we suggest you use underscores to replace spaces.- If you are unable to set an alias, your alias is an existing command word.
- If you try to set the same alias to two different command words, the alias will only be set for the second command word.
Viewing aliases
You can use view_alias
to view the current list of aliases! There are already some default aliases set for you. For example, do
can be used in place of add
and ls
can be used in place of list
.
Format: view_alias
Removing an alias
To remove an existing alias for a command word, simply use remove_alias
!
Format: remove_alias ALIAS
Resetting aliases
To remove all the aliases you have set and reset to the default aliases that was set for you, use the reset_alias
command.
Format: reset_alias
You can use load
to load an external data file (.xml) to replace the current tasks. Note that you can undo this loading of tasks later if you wish to.
Format: load PATH
Examples:
load C:\Users\admin\Desktop\todolist.xml
load /data/todoList.xml
Remarks:
- You can provide a relative path for this command.
- To go up a directory, use
../
- Both
/
and\
are acceptable as the director separator, that is, the symbol between the folders in a path
You can use save_at
to change the place that Doist would store its data at.
Format: save_at PATH
Examples:
save_at C:\Users\admin\Desktop
save_at /doist_data
save_at data
Remarks:
- This is similar to 3.11 Loading an external data file
- You can provide a relative path for this command.
- To go up a directory, use
../
- Both
/
and\
are acceptable as the director separator, that is, the symbol between the folders in a path
Click on Theme
on the menu bar to change the look and feel of Doist! For now, there are two themes for you to choose. The default theme is LightTheme.
Figure 3.13.1: Changing the theme
Figure 3.13.2: Doist Dark Theme
Doist will automatically save! There is no need to save manually.
Done with all your tasks? Need an empty to-do list?
You can simply use clear
to clear all tasks.
Format: clear
Use exit
to exit Doist.
Format: exit
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data files (namely, todolist.xml and aliaslistmap.xml) it creates with the old data files that contains the data of your previous Doist folder.
Q: Do I need to save my data before I exit Doist?
A: You do not need to explicitly save your data, as Doist automatically does this for you!
Q: Why does Doist not recognise the date / time that I typed?
A: See Figure 3.2.1 for acceptable date and time formats. Note that we use the US Date Format of MM/DD/YYYY.
Q: Why am I unable to give an alias?
A: If you are unable to alias, your alias is an existing command word.
Q: What happens if I give an existing alias to another command word?
A: The alias will only be set for the current command word specified. It will no longer be set for the previous command word.
Q: How to I remove the timings associated with an existing task?
A: For example, if the task has an index of 1, you can simply type: edit 1 \by
or edit 1 \from \to
Q: How to I remove the tags on an existing task?
A: For example, if the task has an index of 1, you can simply type: edit 1 \under