May 19, 2004

2do review: A simple open source Web-based to-do list

Author: Preston St. Pierre

2do is, to quote its site, "A simple to-do list for the Web" based on PHP and MySQL. But it's more: 2do is a multi-user interactive to-do list capable of handling multiple projects easily while maintaining its simplicity. Designed for use by open source projects with hundreds of developers around the world, 2do implements many handy features for developers with virtually no learning curve.

Installing 2do takes very little time. You import the application's SQL file into the database, which adds two tables, todo_entries and todo_projects, then change the database settings in the configuration file. The configuration file is well-commented and very straightforward, with all the variables being well-named.

The features in 2do are based around the general concept of a to-do list, which is also referred to as a project. Each project has one to-do list; if you need multiple to-do lists, you can create multiple projects. (Multiple to-do lists per project is something on the to-do list of 2do.) Entries in each list contain the date, status, priority, and description of each item. Entries are assigned categories with priorities ranging from "Idea" to "Critical." Priorities are color-coded on the list display, and you can easily customize the colors used by editing a configuration file. You can easily add or remove categories in the configuration file and change the colors used.

2do also offers a completely customizable templating engine. I was able to use the 2do templating engine (the lovely part about it being open source) to separate the PHP from the HTML on my own site, allowing the 2do system to integrate flawlessly. Finally, for those times you need to change servers or duplicate information on a project, 2do allows for plain-text exporting and importing of the listings for individual projects.

Publishing a 2do list online lets visitors anywhere with a Web connection check project status in real time. If you don't want your data to be public, 2do provides a password protection feature, which forces project members to enter a password before they can view the list.

In an ongoing effort to torture myself with new technologies, I decided that I wanted to integrate 2do into a series of personal coding projects that use XML to communicate. One of these "projects" is simply the local page I use as a home page, a page that stores caches of my favorite open source news sites around the Net. Using the existing "export as plain text" functionality of 2do made it easy for me to create an XML exportation script. Simply adding the XML tags that my code would understand around the outgoing text did the trick. This entire experiment took me just under half an hour; the code in 2do is as simple to work with as the interface itself, though given the power of the templating engine I don't see why anyone would need to modify the PHP under normal circumstances.

You can integrate 2do into your existing Web site with very few modifications. A few changes to the HTML template make the page look the way you want without degrading the functionality.

2do is released under a BSD license, clearing up any possible legal issues about integrating it with a closed source site as long as you acknowledge the ownership of its developer, Bart King, and retain the copyright notice.

Many pre-packaged suites provide functionality you don't need that adds to the complexity of installation, maintenance, development, and usability. 2do, on the other hand, can become an integral part of any system. 2do follows the Unix standard of "do one thing and do it well." I found 2do to be a very useful product.

Preston St. Pierre is a Computer Information Systems student at the University of the Fraser Valley in British Columbia, Canada. One of his newest projects is creating a FLOSS 3D MMORPG.


  • Open Source
Click Here!