inicio mail me! sindicaci;ón

Cloning ActiveCollab

Just over 3 months ago, the developer of a a nifty little open source project management tool called ActiveCollab decided to go commercial and more or less drop the open source version. This didn’t sound too bad at the time, but as i got thinking i realised that there was a definite lack of simple project management tools which were open source. Most of those i found had clunky interfaces or a questionable development status. And of course, more or less all of them are written in PHP, not my most favourite programming language to say the least.


ActiveCollab Dashboard

In the end, i was left with uncertainty of the future of ActiveCollab, so i decided to hit two bird’s with one stone and fork my own version of ActiveCollab, but this time rewrite it in Ruby using the Ruby on Rails framework with a goal of making it open source. This seemed like a good idea at the time, as:

  1. I didn’t like PHP
  2. I was a bit of a novice at programming in Ruby
  3. My experience of dealing with the Ruby on Rails framework was sketchy to say the least
  4. ActiveCollab’s PHP framework was similar to Ruby on Rails
  5. Open source is great, lots of people will be interested in working on it with me

The development process started as thus:

  1. I started off with a run-of-the-mill started Ruby on Rails framework project
  2. I ported ActiveCollab’s DB Schema over into the schema.rb
  3. Using the PHP code and the schema as reference, i’d make basic Model’s for each type of object used.
  4. I’d decide to implement a controller
  5. Using the original php code as a reference, i’d replicate the controller and its action’s in the Ruby on Rails project
  6. I’d also import the associated templates from ActiveCollab and convert them into .rhtml files, which are essentially the same except they use Ruby as the scripting language instead of PHP
  7. Whilst trying to replicate the functionality of the controller, i’d also tweak up the related Model to fill in the gaps of missing functionality
  8. In addition, when i encountered anything missing from the Ruby on Rails framework that was required, i’d find a relevant ‘plugin’ and import it into the project, or just implement it all by myself
  9. I repeated steps 4-8 until i the majority of the functionality was implemented

At first, it started out as a little pet project as mine. Though after a while, i grew a bit tired of developing it (developing in this way became very tedious and boring), and decided to push on with the open source aspect of the project and ask the ActiveCollab community if they were interested in my code. The answer i got back was yes.
And thus i decided to open it up fully to the wonderful world of open source development and placed it on RubyForge. I also decided to give it a cool name, RailsCollab.

Initially when i placed it on RubyForge i was contacted by someone who was interested in assisting. So naturally, i added them to the project. I also added another person, purported to be a friend of theirs that was also interested.
Sadly though a month down the line, i received no signs of life from either of them. Its as if they thought “wow great, an open source project. lets join in!” and then promptly died from the excitement. Or maybe they just couldn’t be bothered, i don’t know.

So in the end being the kind person i am, i essentially did all the work myself out of the sheer hope that someone else might be interested in genuinely assisting with development. Or failing that, maybe someone would try it out and provide some much needed feedback.
Sadly though, neither happened even though it was apparent at the start that people were interested.


RailsCollab Dashboard

Right now, RailsCollab is usable as an alternative to ActiveCollab 0.7.1, with the exception of a few missing features which i have simply not got round to implementing yet. And of course it suffers from a few bugs and performance issues here and there. Still, for what it is, it works.

Will i ever do such a stupid thing like this again? I can conclusively say…. hell, no!

  • Very good write up and thanks for mentioning RailsCollab - I hadn't heard about that one before.
  • Gaz
    Hi James,

    Wow! I'm deeply impressed. If I've found anything about the OS community, it's that there are way too many projects and way too few contributors :-(

    Maybe you should host an installation on you server to get some users, and further down the line some of them will start handing you modest patches at first before getting more deeply involved?

    Cheers,
    Gary
  • Gaz,

    Good idea, although RailsCollab by nature isn't very multi-user friendly so i'm slightly reluctant with regard to hosting a demo.

    Still, i guess it couldn't hurt. Although i'm going to wait till i have time to plonk on a decent ruby rails installation on the box till i do anything further with it.

    Thanks,

    James
  • Sweet! I felt the same way when I heard ActiveCollab went commercial. We lost an awesome project management app in my opinion.

    I've toyed with the idea too of creating a BaseCamp/ActiveCollab clone. There's nothing too technically difficult about it, it's just a lot of work :)

    I did a little work for ActiveCollab, but I found their framework way to heavy and complex, Rails has spoiled me.

    I'll be honest, I'd love to work on it, but I just don't have the time. I'm still glad to hear there are people out there with the same ideas!
  • There is another fork of activeCollab 0.71 called ProjectPier. I am one of currently 5 people working on that.

    Right now we are collecting all 0.71 themes and translations and rebrand aC 0.71 to PP to PP 0.8 which will be our first version. Additionally we are working on a Drupal based website at http://drupal.projectpier.org to replace the (ugly) existing website at pp.org.

    In the next version we like to enhance the tool and simplify it on it's rough edges :-)

    If you like to join, please contact us through the Drupal web site. You will be very welcome.

    Cheers
    Roland
blog comments powered by Disqus