Update: Do it with Drupal has put their session on this topic on-line. Watch the video, view all slides as PDF and even download the whole website! Great stuff!

This is a follow-up post on ‘Building your own Basecamp (project management) with Drupal‘. As described in  the first part, the most difficult challenge will be to figure out what exactly ‘a project’ should be and how to organize the structure – what kind of architecture will be needed?

Functionality wishlist
In our project management ‘app’ we would like to have the following functionality, similar to Basecamp/ActiveCollab:

  1. messages, discussion (like a forum basically)
  2. writeboards (single documents with more markup options)
  3. file-sharing, all files in a single place
  4. multiple to-do lists per project
  5. milestones/calendar/planning tool
  6. time-tracking
  7. email integration (a ‘dropbox’)
  8. unlimited user profiles
  9. user access control (and possibility to restrict users from seeing time-tracking for example)
  10. everything needs to be searchable
  11. ability to subscribe/notify users about new content through email
  12. should print well
  13. would be cool to make it usable through mobile devices

We’ll look in detail at each if these later on. Some of these can be custom made content-types and other will have to come from specific modules.

The backbone: Organic groups
We can satisfy a lot of requirements by using organic groups (OG). This module enables users to create collaborative groups. That’s exactly what we need. OG is a big solid well-known module with many plug-ins available to extend its functionality, but the core functionality will nicely serve as the backbone for our Basecamp clone.

Just think about a project as a group of people working together, sharing different content-types. OG enables that with a few clicks. Furthermore, OG works together with views and templates to customize your project homepage, handles all access control and integrates with notification modules.

Can’t we do it without Organic Groups?
If you would like to build something like this without OG (for any reason), you would need to use something else to ‘group’ all the users and node(types) to a project. One way would be to use a unique taxonomy term for each project as a ‘container’. Taxonomy is built-in with Drupal and this would allow for a scalable solution.

However, we would need to use additional modules to handle things like access control and taxonomy terms are not nodes. In general it would me much harder to manage projects and users. Also, creating a project itself would to be more of a hassle.

Panels and Organic Groups
Just a quick note on Panels which is an excellent module (right up there with CCK and Views). The good news is it might one day replace blocks in Drupal, and I think it would be great if we could use panels to customize our project-pages.

The bad news is that Panels 2.0 is still in an early alpha stage for Drupal 6 which I soon discovered when I started playing around with it for a test-setup. It doesn’t seem very stable when using path overrides with arguments and context variables. OG comes with panels support, but you will see a big uppercase warning next to that part of the module: not yet compatible with Drupal 6.

I think it could take a while before OG and Panels work well together in D6. But it’s certainly a desired feature.

In the next part I’ll complete this recipe with the other (OG) modules needed, after that it’s time to put it all together and start building and experimenting!

13 comments

  • Ken says:

    Sounds interesting. Will this be added as a Drupal project for the open source community to use when it’s finished?

  • do you think it’s possible to combine the project module and the organic group module?

    probably most of the features that you need will be satisfied if you can merge those two modules

  • Albert says:

    @Ken
    I’m thinking about adding it as a recipe on drupal.org if it all works out. Until now it’s only a plan.
    There is already an idea for this at http://drupal.org/node/210008
    I also found this page with some research research and options for Drupal:
    http://groups.drupal.org/node/17288

    Strange enough, these sources don’t mention Organic Groups as an option to ‘tie it all together’.

    @Johnny
    The project module is current only D5. There is a patch for D6 but I want to use stable versions whenever possible. Also, I think most of the functionality can be realized with CCK and some other modules, keeping it more flexible, and the Project module is focused on software development, not a very generic solution.

  • Well we mostly use the project module because of the issue tracker.

    would be great if the issue tracker for drupal 6 would be a more generic solution that doesn’t rely on the project module. then in our own solution we could throw away the project module as well ;)

  • Sam Kleinman says:

    Is there a particular reason why you’re interested in building this out with Drupal?

    I can see a number of reasons why this might really work out: for organizations that use drupal to manage other related workflows (so some sort of publishing company, say?) Or a company that has a drupal-managed intranet, might need to “build on” project management capabilities onto their existing system.

    There are other specific project management tools that already exist, Readmine: comes to mind, but there’s also “trac” and I’m sure others as well. Becasue they’re designed for the purpose it strikes me that they might involve less up front work, and force your users “work around” quirks in an ad-hoc system.

    It might also be valuable to come ups with ways to integrate Drupal systems with other compatible open source tools. These sorts of integrations, can be really killer, as I’m sure you know.

    In any case, I look forward to seeing the process of this project, and I think there’s probably more potential in drupal to do amazing things for internal networks/intranets, as there is in drupal’s ability to power amazing outward facing websites.

  • Tom Behets says:

    Was just working to build a basecamp (didnt know its called like that, with coincidence i called mine ‘base :)
    Thanx for your insight.

  • Albert says:

    ‘Do it with Drupal’ has now published this session on their website! You can watch the video, download their slides and even download the site they made (including database dump).
    It’s an extensive presentation showing the process step-by-step. Excellent stuff!

  • [...] was made in 48 hours to show off the functionality of Drupal. Impressively, it’s a pretty darn good attempt! Although it will require a lot of additional [...]

  • Ehab says:

    Thanks for the ideas. I might be implementing something similar with WordPress later this month.

    Great comment styling. Absolutely awesome !

  • bernd says:

    so, another attempt to set up a project management system in drupal … which wasn´t finished :(
    i´m now searching for over a year for some HOWTO, but it seems that mainly software-development-dudes circle around themselves and their topic when it comes to project management issues.

    thanx for the hint on doitwithdrupal and the lullabot project.
    just downloaded and installed it.
    this might be my break-through.

    would be nice if more ppl would follow this example or develope it further.

  • Anil says:

    Hello,

    Are you going to complete this article?

    It will be very helpful

  • Albert says:

    No, at this time it would take too much of our resources to customize this the way we want it. Plus we would need to migrate all data, etc. It’s not worth the effort.

    Also, I’m eager to tryout Google Wave as a platform for project collaboration and management which should be released at the end of this year.

    I would recommend you watch the ‘Do it with Drupal’ session which will explain how to build this in great detail. See links at top of the article.

  • Albert says:

    Check out Open Atrium – an open source intranet/project management environment powered by Drupal. Looks very cool and to be released this summer.

    http://www.developmentseed.org/blog/2009/jun/17/announcing-open-atrium-open-source-intranet-package-powered-drupal

What do you think?