Description:

The American Association of Independent Music (A2IM) wanted to strengthen connections between its member organizations with a site that implemented the latest social networking features.

Skills used:

HTML, CSS, PHP, Wordpress/Buddypress API, MySQL, jQuery, social network design

Case Study

The first step was to choose a development platform. Two main choices presented themselves: Drupal and Buddypress. Drupal offered better customization of information architecture, but we chose Buddypress because it had more features we needed set up right out of the box, and better usability. (Had I built this site today, I would have used Drupal).

Next came data migration. There wasn’t a huge volume, but I had to write scripts to efficiently execute certain JOINS and multi-table INSERTS.

We teamed up with a graphic designer, who did a great job choosing a color scheme and creating a subtly textured, clean design. My job was to implement all functionality on the site.

Buddypress was about one year old when we began this project, and the first version we installed was 1.03. We found the plugins that we needed (taxonomy management for groups was the big one), and they worked in 1.03. A necessary upgrade to 1.1 midway through development broke about half of the plugins pretty badly. Unable to get updated versions from the developers, I had to quickly diagnose the problems and fix them.

This project was very fun because Buddypress development was largely uncharted territory. Unlike standard WordPress and Drupal, Buddypress didn’t (and still really doesn’t) have a documented API. Completing this project meant really getting to know the code, and getting inv0lved in the Buddypress.org community to give and receive help.

A2IM also required a more direct way to allow members to add users directly to groups without going through the friend->invite->accept cycle. This required a custom plugin, which I named BP-Group-Control. I used to host a version of this, but regretfully it only worked it BP 1.1.2. I was about half way through debugging it for 1.2 when I got hit with a bunch of school/contract work. Soon though, I’ll start hosting a new Beta version.

This project required a lot of small customizations through which I gained a lot of experience with the WordPress/Buddypress API, including filters, search functionality and the AJAX framework.