Procrastinate is a to-do manager optimised for speed and ease of use via typing.
-
Welcome Screen
When you first start up the program, you will be greeted with the following screen:
A sample list of commands will be shown. If the user needs more help, they can type/help
for a more detailed description guide. -
Adding a Task
You interact with the programme by typing simple commands. This sample commandOP1 due 12/10/15
will add a new deadline and produce the following screen after being read into the program:
To minimise the number of words users have to type, we have omitted the use of the commandadd
, which will be automatically assumed for all inputs unless otherwise specified. Items are automatically sorted by their due date. Also note that dates are translated to relative dates for imminent events. -
Modifying a Task
You can modify an existing task by using theedit
command, specifying its line number and updated description. For example,edit 2 OP2
changes the description of task 2 to "OP2".
A user can also change the due date by specifying it as an optional parameter after the description. For example,edit 2 due 15/10/15
changes the due date of task 2 to 15/10/15 -
Delete, Undo, and Command Stacking
You can delete tasks using thedelete
command, specifying the line number of the task. The changes made by the last command can be undone usingundo
. Multiple commands can also be stacked within an input, using&&
as a separator between commands. -
Deadlines, Events and Dreams
As opposed to deadlines, which only have a due date, events have a start and end time. On the other hand, dreams do not have any associated date - they only need to be done eventually. Deadlines, events and dreams are collectively called tasks.
For events, date and time can be specified as a range and can span across multiple days. Final date can be left out if end time is on the same day.
*For* **_dreams_**, *date and time are left out.*
-
Mark Done
When tasks are marked as done, they will be archived and removed from the current view in order to keep the list clutter-free. -
More Commands:
To view more commands and functionalities of Procrastinate, please refer to the Cheatsheet section below.
Likely to be implemented
- GUI for Procrastinate. Have a simple GUI for the app so that it looks more friendly and appealing to its users.
- Define personalised shortcuts. User can define their own personalised shortcuts so that frequently used commands can be made shorter by them. If any commands do not appeal to their taste, they will have a choice of changing it.
- Have predefined shorthand commands to further reduce the amount of typing for the user.
- Have a shortcut command to launch the program directly.
- Alert users whenever there is any clash in their schedule.
- Allow users to add recurring tasks.
- Able to view items on a specific date.
- Able to add tags to categorise all my items.
- Able to specify a data storage location for the task list, to access the data for manual edit and allow access across devices through cloud synchronization services.
- Users should be automatically reminded of upcoming deadlines so that they will not miss them.
- Able to set reminder frequency
- Able to search items by description
Nice to have
- Able to search items by tags
- Able to search items by title
- Able to search with non-exact words (fuzzy search)
- Able to import Google Calendar events
- Have follow up commands suggested to the user
- View the list with color code so categories are clear
- Suggestions of wrongly typed command
- Autocomplete of command
- Customisable GUI
- Have text and audio based alerts/reminders
- Have a history of past items
- Allow block booking
- Automatically release all other reserved slots
Command | Usage | Description |
---|
| `<description>` due `<date>` | Adds a deadline with `<description>` and the corresponding due `<date>`.
| `<description>` from `<start>` to `<end>` | Adds an event with `<description>` and the corresponding `<start>` and `<end>` dates.
| `<description>` | Adds a dream with `<description>` and no associated date.
edit
| <line number>
<new description>
| Updates an existing task with the corresponding <line number>
with the <new description>
.
edit
| <line number>
due <new date>
| Updates an existing task with the corresponding <line number>
to a deadline due on <new date>
.
edit
| <line number>
from <new start date>
to <new end date>
| Updates an existing task with the corresponding <line number>
to an event with the <new start date>
and <new end date>
.
edit
| <line number>
eventually | Updates an existing task with the corresponding <line number>
to a dream with no associated date.
delete
| <line number>
| Deletes the task with the corresponding <line number>
specified.
undo
| | Undoes the changes you have made in the last command.
done
| <line number>
| Marks the task with the corresponding <line number>
as done.
exit
procrastinate
| | Exit Procrastinate.
You can stack multiple commands using <COMMAND1>
&&
<COMMAND2>
.