In my quest to learn the Ruby on Rails (a web development framework), I re-writ a PHP-based project management app (ActiveCollab) in it. In fact, I wrote about all of this a few months ago.
Now i’ve had my ups and downs with RailsCollab. The biggest down being that there is little interest in it, especially compared to alternate solutions such as ProjectPier. Which is unfortunate.
In any case, a little problem I noticed recently was that RailsCollab still wasn’t really finished. There were still numerous bugs and missing features which made it feel more of a hack than a real product.
So I set aside some of my spare time to fix it. After a few days, I managed to get it stable enough so that it worked properly in the latest version of Rails. I also got the mail notification working, which I felt was a very important feature of ActiveCollab.
But there was still a lingering problem: Apart from the OpenID support, RailsCollab didn’t really offer anything more than ActiveCollab or ProjectPier offered.
So I thought for a while: What feature could I implement that wasn’t present in either solutions?
And then it hit me: an API! Though not just any API, no. Rather, the BaseCamp API.
For those of you that don’t know, BaseCamp was the inspiration behind ActiveCollab (and thus, RailsCollab). From an API standpoint, it pretty much has the same features, which was great for me as it mapped quite nicely to the BaseCamp API. There were only a few features missing, such as the Message Categories, but those didn’t take too long to implement.
So I pretty much ended up with a nice and shiny implementation of the Basecamp API (minus two minor functions which I have yet to implement). Which meant that I could use all of those fancy third party Basecamp tools widgets with RailsCollab as well.
However there was a snag. While RailsCollab worked fine in development mode, it failed to work properly in production mode due to some problem with controller helpers – which as you can imagine was highly frustrating.
Ruby on Rails might be a great web development framework for getting things up and running quickly, but when you start having such simple problems that cannot easily be debugged, and to top it all off it’s inherently slow, then it starts to look more like the web development framework from hell.
Rants aside, I somewhat hope the lure of the Basecamp API implementation will generate more interest in RailsCollab. Though even if it doesn’t, I will still have the satisfaction of knowing I put some effort into polishing it off and turning it into a real product.