Getting Things Done Using myTinyTodo

My ToDo List

This article covers myTinyTodo (MTT), a Getting Things Done (GTD) application.

Getting Things Done (GTD) by David Allen helps individuals manage tasks and remain productive in a stress-free manner. The key principle is to list all tasks and then process them according to their priority. Keeping all commitments in mind could distract one’s focus on current activities. As the number of tasks increases, we develop stress and anxiety. With the modes of communication increasing day by day, the tasks we need to perform can originate from many places. Keeping track of all those tasks at one place and managing them continuously is the key to success.

“The ability to be successful, relaxed, and in control during these fertile but turbulent times demands new ways of thinking and working.” — David Allen

There are many software tools available for task management and for to-do lists on PCs, mobile phones and the Web. Desktop-based to-do software on Linux include Getting Things GNOME, gToDo, and Emacs org-mode. Web-based to-do apps include Google Tasks and Remember the Milk. Mobile phone apps include Got To Do on Android, and Remember the Milk.

However, let us focus on the LAMP-powered browser-based task-management software myTinyTodo (MTT), which has all the features required to implement the GTD workflow. This open source tool has been developed by Max Pozdeev using PHP and jQuery, and is distributed under the GNU GPL. The tool can also be accessed using the browser on mobile phones since it supports small screens. Features include support for multiple lists, drag lists, tasks, tagging, prioritisation and search. You can try the software online before installing it.

To install the software on Ubuntu, download the MTT zip files. Unzip the zip file to the Web-root folder for your Web server software. In a browser, navigate to http://localhost/mytinytodo. You should see the following message displayed: “Not installed. Run setup.php first.”

To the URL, add setup.php. When this is run, the myTinyTodo 1.4.2 Setup asks you to choose between SQLite and MySQL databases. If you choose SQLite, ensure that the directory mytinytodo/db and the file todolist.db are writeable by the user account that your Web service runs under (e.g., apache). When the setup is done, it prompts you to Delete this file for security reasons.

In a terminal, rename mytinytodo/setup.php to setup_orig.php or give it a name of your choice, or move it to another folder out of the Web server root directory. Now, navigate your browser to http://localhost/mytinytodo to get started.

Putting GTD in use with MTT

MTT allows you to easily create tasks, add notes to tasks (for processing), organise tasks into groups, use tags to review through logical grouping, and finally mark the task as complete. These five steps map to the workflow defined in GTD.

  • Collect — Create tasks by just giving a title to each
  • Process — Add notes or inputs required and the next actions to perform
  • Organise — Group each task after processing into the task list, represented by tabs in the tool
  • Review — Review periodically (to do, or dump)
  • Do — Mark the task as complete when done

“We need to transform all the ‘stuff’ we’re trying to organise into actionable stuff we need to do.” — David Allen

Create these tabs in MTT: INBOX, ACTIONABLES and SOMEDAY. Here is the purpose of each list:

INBOX

Collect all tasks you need to complete; “blindly” take note of the task, without thought on whether it needs you to work on it or not. After the complete list is captured, review and process tasks. Any task that needs an action from you, or is to be delegated to someone will move to the ACTIONABLES list. You move tasks from one tab to another by clicking the triangle that appears at the end of each task row (see Figure 1). You should immediately complete tasks that can be done in two minutes, and mark them closed by checking the box.

Raw list of tasks being processed

Figure 1: Raw list of tasks being processed

ACTIONABLES

This task list could have a due date and also have tags associated, based on the category. Each task can have (see Figure 2) priority, tags (for context), due dates, notes/information required to perform the task (such as ‘Next steps’, which you should enter here). Tags can be used effectively to group tasks like calls, tasks assigned to a person, whether personal or work related, like @calls, @shopping, @billpay, etc.

Editing a task

Figure 2: Editing a task

SOMEDAY

This list contains futuristic tasks/projects you would like to do, with no defined timeline — for example, learning a skill as a hobby or enrolling in a self-development course. Also, tasks that got suspended indefinitely due to waiting for an event or person can fall into this list.

Other cool features of MTT

  • MTT’s “Due dates” feature lets you assign due dates to tasks that are time-bound or need to be performed on a particular day. MTT displays the due date of a future task, and the number of days that have lapsed for an overdue task.
  • Hovering the mouse over a task tag hides all other tasks in the list that do not belong to that category. Lists can also be filtered based on the selection of tags.
  • Where MTT is hosted on an Internet-accessible server, users can access tasks using the mobile browser — the layout is customised for small screens. (You can see a demo online.)
  • Tasks can be assigned a priority; the tool gives a visual indication with a coloured number at the beginning of each task. Default (+0) priority has no prefix; top-priority tasks have ‘+2′ shown in RED (see Figure 3).
    Priorities and tags

    Figure 3: Priorities and tags

  • Users can search the complete set of tasks (including the Notes field of each task) using the Search field to the right of the New Task field. By default, search is done on tasks in the tab. To search all tasks, select the All Tasks tab.
  • MTT reduces UI clicks with a feature called ‘smart syntax’, which allows users to enter a task in a particular format, including the task title, priority and tags: /priority/ task /tags/. Spaces after the / are required for the tool to distinguish tags.
  • The Export feature enables tasks to be integrated with Microsoft Outlook Calendar when exported as iCalendar, and otherwise to be shared with others. By default, tasks are protected by a password. The user needs to explicitly choose Publish from the Tasklist menu, to make it available to other users.

MTT is an easy-to-use, flexible and powerful tool to implement the GTD workflow. Being available on LAMP allows users access anywhere. There is scope for enhancements and, hence, for you to contribute back to the open source community — for instance, by extending the tool to group of users (workgroup) and improving the smart syntax to add due dates in it.

Feature image courtesy: Lasse Rintakumpu. Cropped and reused under the terms of CC-BY-NC 2.0 License.

  • Juan Manuel

    Thanks for the article. It was really helpful. I added some features, like PostgreSQL support and a “hoverable” Progress bar to each task.

    Best regards.

All published articles are released under Creative Commons Attribution-NonCommercial 3.0 Unported License, unless otherwise noted.
Open Source For You is powered by WordPress, which gladly sits on top of a CentOS-based LEMP stack.

Creative Commons License.