July 7, 2005

Review: dotProject 2.0.1

Author: Sean Michael Kerner

DotProject is a robust Web-based project management framework written in PHP that allows users to schedule, plan, and staff projects. It's not a perfect application, but its extensive functionality and ease of use make
its shortcomings easy to overlooked.

The dotProject application is an open source GNU GPL-licensed project management application that was started in December 2000 and is actively developed and maintained. By way of an intuitive browser-based interface, dotProject offers project task management (task description, duration, scheduling, and assignment), multi-user support, granular user permissions, Gantt charts, discussion forums, file checkout, contact list, trouble tickets, reporting, calendar, and user-based to-do capabilities. If that's not enough built-in functionality for you, you can extend dotProject from a well-trafficked SourceForge project full of additional add-on modules.

I looked at the latest dotProject, version 2.0.1, which was released in April. DotProject runs on a typical LAMP (Linux, Apache, MySQL, PHP) server setup, but version 2.0.1
doesn't work properly with PHP 5 (there are some workarounds, but it's not worth the trouble), so you'll need to stick with PHP 4 (the most recent version 4.3.11 is a good choice).

To install dotProject, uncompress and untar the archive into the directory on your Web server from which you want to host it. From there the default (index.php) page will walk you through the installation process. It will even set up the MySQL database for you, so you don't even need to muck around with PhpMyAdmin. It's a relatively straightforward process; I was up and running in less than five minutes.


A simple tabbed user menu drives the application. (You can also set the menu to be "flat," but that feature doesn't work well and is scheduled to be dropped.)

The fundamental units of the dotProject system are companies, projects, tasks, and users. The first step in using dotProject is to create companies for which projects are to be completed. Users, projects, and tasks are all related to a company. The next step should be to add users to both your client company listings and to your own resource allocation. You need users so that you have someone to assign tasks to; otherwise the admin gets to do all the work! You can assign users varying degrees of permissions that can be matched to specific companies and/or projects.

After you've set up your company and initial users it's time to create project details that need to be managed and input tasks. Tasks can be linked and labeled as predecessor tasks and/or milestones and assigned to user resources. Users are notified of their task assignments by email, which is a neat feature. Users can also simply log in to the system and examine their own task lists.

Task management is the critical component of any project management application, and it's something that dotProject does reasonably well. Users can log time against a task directly in the system, giving a project manager a good synopsis of progress to date. From a scheduling point of view, dotProject helps users to calculate when tasks should start and when they should be completed based on time duration allocated and start task dependencies.

DotProject also allows users to create something called dynamic tasks, which takes their start, completion, and duration from the child tasks that are related to them. The newly updated and thorough dotProject documentation has some excellent explanation of how dotProject handles tasks, dynamic tasks, and dependencies. However, I found a few bugs (generally related to incorrect initial task start dates that are supposed to be linked to predecessor task finish dates) in the task dependency implementation during my evaluation.

Love them or hate them, Gantt charts are a mainstay of many project management packages. DotProject, rather than making the Gantt chart the focus of project management as they are in GanttProject, simply includes the chart as one of its tabs. DotProject offers no default export or print functionality for Gantt charts. There is also a known bug for the Gantt chart implementation that triggers an error that won't allow the chart to be rendered. The bug has been fixed in the CVS version (which I don't recommend using as it's not particularly stable). The fix has also been posted on the well-trafficked dotProject user support forums that I found to be an invaluable resource for dealing with the minor issues that I encountered with dotProject.

One of the "must-have" items that is missing from the default installation of dotProject is the facility to back up your projects easily via the browser-based interface. Luckily, a custom module available via the dotProject mods site does the trick.

Project managers tend to love their reports. DotProject can generate a number of project reports, including task log, user performance, allocated user hours, tasks sorted by user, tasks overdue, completed, upcoming, overall report, and project statistics.

Overall, dotProject offers a staggering amount of useful functionality. By virtue of it being a Web-based multi-user application, you can quickly put it to work for either individual or distributed team project development. Its online documentation and support forums help when you need to figure something out or have hit a snag. Certainly dotProject is not without issues; the developers maintain a list of documented bugs that need to be dealt with in upcoming releases. Items like the Gantt project bug are annoying but are easily fixed with a small code tweak.

On the whole, DotProject is a solid multi-user project management tool that stands on its own merits.


  • Enterprise Applications