How did we build this? Part 1

Submitted by matt on March 7, 2007 - 4:33pm. ::

In the spirit of sharing information with our public broadcasting peers I thought I'd delve a bit under the covers of the new Public Radio Talent Quest site that we just launched. This post will focus on the decisions that were made and how we got to where we are, part 2 will focus on more of the technical details. Planning the project started in the fall of 2006, we talked about features, rules, user roles and permissions while investigating our technical options. We're primarily a Java development shop, PRX.org is built on Apache/Tomcat/MySQL but we have PHP, Python, Perl and increasingly more Ruby and Rails code everyday. Our development staff is comfortable wading around in any of these languages, so our technical implementation options were wide open.

A few things that we had to keep in mind when deciding on our technical approach.

  1. Time - As a result of the mind boggling way grants work we had to hold off on starting our implementation until the grant start date. That gave us about 2 months to start the technical work and get the site live on February 28th.
  2. Money - Yes the grant is for $250,000 but we're giving a substantial chunk of that money to the contestants and others on the project, leaving a fairly small pool of money for the technical implementation.
  3. People - Talent Quest is a one year grant, it's a project and not the core of the PRX business model. Counting me we have 3 technical resources and I don't want to even talk about how little code I get to write now.

So we looked at our options to build out our contest focused site:

  • Build the app from scratch
  • 3rd party contest sites
  • Customize an existing web application platform

Build the app from scratch
To a group of developers this was the most attractive, we'd get to build every component, have complete control over features and APIs. This option was so attractive that we started to prototype the project out using Rails, just to get a handle on what it would take to get the project done. We made good progress on the prototype but I knew that it would take huge developer time, and we had a lot going on with our development efforts and staffing. If we fold PRTQ into the core PRX business model this option definitely gets re-evaluated.

3rd party contest sites
We looked at companies like, Bix, KickApps, Ning and Gather. All had possible solutions for us, but some were dropped from the list due to timing others for lack of control over the presentation of the contest site and still others for lack of features. Given our time and money constraints this was a worthwhile investigation but things just didn't line up.

We ended up with customizing an existing web application platform
Many developers and managers know of the 80-20 rule. Choosing an application platform to modify means understanding the level of difficulty involved in implementing the 20% that you deem most important. The ability to create and manage an audio contest was the feature that we needed most.

Another major concern that I had was choosing a platform that would provide me with a pool of people to work on the project. Given that we are a non-profit, finding talented people, working below industry wages in this employee focused market was of primary concern. I can't run out and hire people with the promise of stock options and huge salaries, and the public radio benevolence card can only be played so often.

So what did we end up doing?
We looked at a number of open source CMS options to customize and build on - Plone, Drupal, Wordpress. We settled on Drupal. It has a large developer community, gave us 90% of the things we needed by installing additional modules, functionality that we needed could be added using custom modules and PHP/Drupal developers can easily be found. The custom contest module is well on it's way and will be released to the Drupal community once we complete it.

Hopefully that provides some insight into our decision making process, next post I'll get into the details of how we are using Drupal, what modules we installed and customized and our experiences working with it. If you have Drupal experience and want to help our efforts please drop me a line at matt at prx dot org.