As far as I know, ActiveCollab started out as a free alternative to (and almost straight copy of) Basecamp – It is open source, written in PHP, and version 0.7 was released just a few weeks ago. After installing and setting up an example project I really needed to see how the thing would run with some real data, y’know some real life stuff.
After playing around with the (very useful) Basecamp API I had created a little Ruby class that allowed me to import projects, users, messages, comments and categories into ActiveCollab from Basecamp.
Run from the command line, the class outputs SQL (to the screen or a file) – which you can run against your ActiveCollab database after a default install. Read on if you’re interested in how it works.
First, some information about the class;
- Start by installing a fresh copy of ActiveCollab 0.7, run through the installer, but don’t create any projects just yet
- View/Download my Ruby class from here (usage instructions described at the bottom)
- The script only generates SQL for importing Projects, Users, Messages, Comments and Categories (milestones, tasks etc. arent included)
- Since Categories don’t exist in ActiveCollab, Messages are organised by category using single Tags
- The user specified in the connection to the Basecamp domain is automatically assigned as an ‘administrator’ in ActiveCollab
- ALL USERS imported are automatically given the same password ‘123’ – since the Basecamp API does not expose raw user passwords for use
- To run, you’ll need Ruby installed, with the MySQL and RedCloth gems – and the basecamp.rb wrapper should be sitting along-side this class.
Second, some assumptions and configuration;
- No dates are extracted for messages/comments (to just fill the database with info, I didn’t bother looking at :posted-on)
- By default the prefix ‘ac_’ is assumed for all existing ActiveCollab tables (this can be changed on the class constant CollabTablePrefix)
- By default, the script assumes all imported data will be assigned to the default ‘Company’ that is created after installing ActiveCollab
- By default ‘TRUNCATE’ statements are generated for all affected tables, (clearing the before INSERTS) this can be switched off
- By default the class is configured to export all it can (in the generate_sql function) – however this can be tailored to generate SQL for different ActiveCollab tables in isolation.
Much more could be done with this, but it was enough for my evaluation purposes. There has been some talk (for some time) in the ActiveCollab camp for something like this script to be built-in to their next release.
After all this, I have to say I’m sticking with Basecamp, it just feels better – better UI, somehow more responsive, faster and it continues to make project management, more well, manageable. From what I can see, ActiveCollab is still in its infancy and things like their database structure and code base change frequently – so this class may not be of much use in the future.