Build your own Basecamp with Drupal
We at Merge use Basecamp as a project management tool and Highrise (CRM) for a couple of years now. Simply because at the time we couldn't find a good free open-source alternative that would meet our requirements and - more importantly - we didn't use Drupal yet.
Basecamp and Highrise are great products. However they have their limitations, for example they don't have a shared user base. So a client in Highrise isn't available in Basecamp and you end up setting up the same users twice. I hate doing the same tedious thing twice so I decided it's time to make an inventory how to set up a project management tool in Drupal. At this point, we haven't built it yet, and this case is only a thought on one possible recipe. I also assume you are somewhat familiar with the functionality of Basecamp/Highrise which makes this post much more understandable. You can get free trials for both.
What resources are available?
Surprisingly, when I started Googling on this topic, I noticed one of the session at the 'Do It With Drupal' seminar held in New Orleans last week was titled 'Basecamp built with Drupal'. They claim to have built such a system in a weekend (quite possible if you leave out theming and any special customizations). However, New Orleans was a bit too far away and I didn't attend this session, so I don't have information on their approach. By the way, make sure to check out the Lullabot podcast live from that seminar.
There are some modules available who offer complete project management functionality with Drupal. There is the project module for example. But this module tends to be aimed at software specific projects. Then there is the more generic casetracker. But that one doesn't seem to be actively maintained any more, also the case for projectmanagement which hasn't even seen a release.
One reader mentioned the storm module as a complete project management solution for Drupal 6. I checked it out, it has many features - even a simple invoice system - and is very easy to install. No dependencies whatsoever. But it is a fixed, closed system. You won't be able to customize it the way you would like, without breaking the code.
Goals and requirements
The goal is to roll your own flexible project management platform using Drupal 6 and require as few contributed modules as necessary in addition to core functionality. Also I don't want to integrate other massive open source alternatives like sugarCRM or Alfresco. This is great software but I don't want all that functionality and possibly issues when upgrading. I want to keep it simple and having developed sites with similar functionality in Drupal, I have a good feeling it can be done.
The main architectural challenge is to have a system were you can create unlimited projects and assign specific clients to these projects. A client should only see their project(s) and everything that is associated with it. A client should also be a user in Drupal, and clients should be able to be grouped into organizations. This would be the basis for the CRM functionality. And - if possible - I would really like to have the email/dropbox functionality. This is an excellent feature of Highrise and Basecamp which works really well, and I think it might be one of the bigger challenges.
In the next part, I will take a look at the architectural approach and list of module candidates.