Liip encourage their employees to suggest and participate in “Hackdays”, which are full days of hacking on some bite sized application or a proof of concept, or something we want to add to our favourite Open Source project, or just experimenting with a new technology.

One of my favourite Open Source pet projects is Mahara, which I was one of the founding developers of while I was still in New Zealand. Mahara is an e-Portfolio application, which gives learners the ability to collect, organise and share their learning portfolio. In many ways, it is a sister project to Moodle, which is one of our core Open Source projects we work with for our clients. Mahara is starting to gain more traction in Switzerland, which I am watching with interest, because it's so successful already in other countries, and version 1.3 is going to be released in around a month or so, so I thought it would be good timing to have a Mahara Hackday at Liip, to get some of our developers here interested in it, as well as seeing if we could get something cool done to go into the 1.3 release.

So a few weeks ago, on a Friday, Adi, Pierre and myself sat upstairs at a desk away from the rest of the company, listened to music and hacked all day. Here's a picture I took of them figuring out how something works:

4711419162_afbe23aabd

Happily, the feature we wrote has been merged into master already, and will be in the 1.3 release!

We had a couple of options for things to work on, but we ended up going with creating Views for Group homepages. In Mahara terminology, a “View” is a presentation of some content in some meaningful way, using different blocks that can be dragged onto the page. They're really a bit like mini webpages. We started off just using Views for portfolio presentations, but have expanded out over the years to using Views for other things too – the first one was done a few years ago, on an Easter Hackfest with Nigel McNie and myself, creating Views for users to use as their profile page, so that they can customise what is displayed using the same drag and drop editor that they always used to create their portfolio Views. Mahara 1.3 also has a dashboard View for users.

Groups have had portfolio Views for quite some time, but the group homepage was a bit boring, with just the description of the group and which members were in it, along with the latest forum posts, and some other information. This page was not previously customisable at all, and that actually prevented me from doing what I really wanted to do for the hackday, which was to write a Poll plugin. Having a poll plugin would be really cool on group pages, as well as user profile pages actually, but since the group homepage wasn't yet customisable, we thought that would be a better thing to work on for the hackday.

First we needed to figure out exactly what was on the group homepage, and find a way to reproduce all of that information in a View, using the Block plugins we had, and identify some more Block plugins that would need to be written. We then had to write a migration so that all existing Groups will have this View created for them during their 1.3 upgrade, and also make sure that new Groups got one auto created.

We kept track of a list of tasks on the Liip “Foss wiki” and managed to get through them all during the day, before going out for a victory beer. We published our code in our public Mahara repository on git.liip.ch, and I had a talk to some of the other core developers in NZ on our Mahara IRC channel (#mahara on freenode), and Richard Mansfield quickly did a review, made a few small changes and merged it into master.

I am personally really happy with what we achieved during the hackday, and how fast the other core developers reviewed it and merged it. Thanks, everyone! :)