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.
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:
- I didn’t like PHP
- I was a bit of a novice at programming in Ruby
- My experience of dealing with the Ruby on Rails framework was sketchy to say the least
- ActiveCollab’s PHP framework was similar to Ruby on Rails
- Open source is great, lots of people will be interested in working on it with me
The development process started as thus:
- I started off with a run-of-the-mill started Ruby on Rails framework project
- I ported ActiveCollab’s DB Schema over into the schema.rb
- Using the PHP code and the schema as reference, i’d make basic Model’s for each type of object used.
- I’d decide to implement a controller
- Using the original php code as a reference, i’d replicate the controller and its action’s in the Ruby on Rails project
- 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
- 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
- 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
- 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.
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. It’s 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.
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!