Thursday 8 November 2007

dotProject experience

    dotProject is light weight, free web-based team collaboration tool.
Hosting where I have tried it first was linux-based with cPanel X v2.3.0 as primary remote control. I'm not very good in administrating Linux server, but Fantastico tool installed dotProject in a few clicks. Of cause, I wasn't able to install specific version (I had experimented with , but as for me, it is extremely important that installation can be so easy. Anyway, team collaboration system is something customers don't pay for. And if you're collaboration tool don't demand your efforts, it's big advantage both for development and management.
    It's free, web-based and written in PHP. There are some entities you need to know about if you work with dotProject:

company - your team
projects - your global tasks, that make sense for management
tasks - your local tasks, that do not make sense for management
files - heterogeneous project documentation
forum - place where we can discuss something
tickets - some notes, that can either trigger discussion or task
events - calendar events
user - project contributor

dotProject has module structure. Each module can be represented as tool bar item (or hidden for convenient or security reason).


    Basic installation include following modules: Companies, Projects, Tasks, Calendar, Files, Contacts, Forums, Tickets, User Administration, System Administration, Departments, Help.
    For project like ours some of them are in fact surplus, so first I did is getting rid of Companies (we operate just one), Departments and Help. I was about to remove projects also, but realized that no task or event can be created without activating this panel. That's really strange, because logically I expected that like file can be created in files panel, or user in User Administration, tasks should be created on Tasks panel. This is little disadvantage: you can't set user rights to let them create tasks without removing or adding projects. Another inconsistency I have noticed is that user should have rights to operate forums to have right at least to post their message. Administrator can set although rights to create entities, and restrict to remove, but I think in most cases it's not a good solution.

dotProject in use


How to create user users in dotProject?

    Each user has rich profile with contacts (even ICQ is available), but which can not be extended with custom fields. To create user you should use User Administration panel and you can actually fill whole necessary information about them
Users should have role to be active. I reduced rights for project worker (by default project worker has all rights except administrative panel (User Admininstration and System Administration). dotProject proposes few standard user roles for different project contributors.

    User can be united in departments, project and companies, but I found this functionality somewhat surplus for me.
    There is a confusing field in user's profile called user type: it has no impact on rights or settings, but used only for information.

Tasks and tickets
    dotProject is not much convenient for doing this, but indeed that's good that tasks are more "heavy" than ticket, so tasks should be created from panel (there are 3-4 clicks needed. There are some attributes in tasks and projects that are not necessary: project can have states, tasks can be different types, and set of those states and types can be only changed by intruding to DB. Both tasks and project have budget, it's good that dotProject has this feature, but this field can be hidden for different roles, which makes this feature not very good for practical usage. In general all entity attributes in dotProject is not objects of administration, so you can't grant access to some entity with concealing some data for them.
    Tasks can be distributed by multiple people, but this requires from manager to see percentage of contribution, so probably it is reasonable to agree with team how to use percentage, otherwise it will be a mess.

Tickets supposed to be used as trouble reports, but can be used for "offline brainstorming" - people can express their proposals here.

Forums - are not very special discussion placeholder. Each forum has moderator, which has the same rights as anybody else, so this is not role, but just administrator

Files - that's really cool that dotProject has storage for homogeneous documents (in any format). It supports versions (and check in/check out operations) and allows to view the documents directly from browser.

Any version can be reviewed and all versions are kept in file system on the server. With mySql database which can be exported from server, it makes dotProject quite portable. File can be attached to certain task and project or not attached to any.

Calendar - good for organizing events. Events can be created by users in project pane and notification will be sent if needed. Actually after fanstastico installation notification works! Like most of entities events can have also web URL (for collaboration with Wiki) and bound to certain task

dotProject tuning


Other settings - there are plenty of settings, in System Administration panel even color scheme can be set, but there are anyway many properties that can be easily changed: for instance although you can set Saturday and Sunday as working day in calendar, you can't make Sunday in the end of week. Settings for notification and mail server can be set here,
custom fields can be attached to companies, projects, tasks and events, but unfortunately not to tickets and contacts.

It took 3 hours to install dotProject domestically on my Windows machine, but I'm lucky I did it: I have deployed our team DB on my machine and made my experiments even more thoroughly. DB include some significant settings that can be useful for dotProject customization (for example task and document categories and user types). They are represented as rows in certain columns of mySql database.

Other features

  • Contacts can be imported and synchronized with LDAP

  • Translation manager can be used for localization

  • User logs allow tracking user activity in project (Good feature for paranoiac managers)

  • There are more modules like search, history, install and so on available in System Administration


Let's briefly resume problems in dotProject

  There are some trouble with Cyrillic characters, which can make impediment for export/import DB or incorrectly rendered in PDF reports.
  I have found SQL injection error (discovered when I included to company name apostrophe character, see figure to the left)
  Calendar can't be set to European standard
  Initial color scheme is ugly, IMHO
  Fast localization and some attributes choice require changes in DB
  dotProject provides no integration with CVS systems, probably connection with development workflow should be conducted by filling some custom fields to tasks or making direct reference

Main conclusion: dotProject provides really good start for small and medium IT projects with good team collaboration platform which can be extended or in far future transferred to something and can be easily used together with Wiki or other CMS system.