Okay, so we’ve decided on a few things about LiberalLab so far. It’s going to be written using PHP, it’ll be DB independent or at the very least work with MySQL and Postgres. It’ll use the symfony PHP framework for the most part. Since it’s PHP/MySQL it makes sense to use Apache as our webserver.
What sort of usability/accessibility requirements do we need to keep in mind from ground zero? Well, I don’t think we have any particularly unusual requirements except that the system should be easily translated into French and English (maybe we could provide karma to those users who diligently translate pages). This means navigation options and the like need to be text rather than images.
Usability considerations are pretty straightforward, make what you’re supposed to do at any point easy. The Karma system is going to have to have some well designed affordances since it’s an unconventional tool. The forums are going to have to be simple and feature spartan. I think I’ll use that javascript package (it’s in Wordpress) to allow advanced text editing.
However, the obvious question is considering this is simply a slightly more advanced synthesis of 3 systems why re-invent a new system. There are plenty of Content Management Systems out there (www.opensourcecms.com has a few to try out), there’s also plenty of PHP forum software out there Simple Machine Forums, PHP BB, YaBB, Ultimate BB etc. Social networking software is more or less built into most CMS apps nowadays.
I think it will, in the end, prove more useful to build from scratch than to try and integrate by developing packages for each of these apps. Firstly, I’d have to learn at least two architectures, and so would every other developer for the system. LiberalWeb used Drupal fused with SMF for its setup and it produced a workable product but having attempted similar feats with Joomla, Mambo and other CMS with various forum packages to see if any would be better I can say I would rather spend 6 hours coding exactly what I want than 4 hours configuring something that sort of works the way I’d like it to.
Plus, feature focus for most of these applications are in the wrong direction. MediaWiki has strong authorship tools but a very weak forum system. Drupal has a good forum integration and social networking tools but its collaborative authorship tools leave a lot to be desired. Plus, it’s not only what we want in the system, it’s the rather specialized way in which we’ll use it. For example, the wiki isn’t really a “wiki” it’s a collaborative authorship tool for a select group of people. Plus the enforced parity between discussion and wiki would require some major tinkering in both MediaWiki and any forum application I’d likely use.
So, we’re building from scratch – but not entirely. Symfony offers a quick mechanism to get basic functionality down, and once we’ve got some mockups of the kind of user interfaces we want we’ve basically covered the hardest of the three steps in Symfony, the view. The model is dead easy to create and the controller is more or less automatic when the view and model are defined.
Don’t know what model, view or controller are? Wait until next post where I’ll explain what those are and how they’ll fit into LiberalLab.