BuyBlue.org is proud to announce the launch of their new web site using Drupal’s upcoming 4.7 codebase. Thanks to the many community-driven features Drupal ships with, we were able to save time and money and concentrate on the custom modules developed by matt westgate. We have also designed an elastic 3 column theme that is compatible with all major browsers and operating systems and highlights the possibilities of the Phptemplate engine courtesy John.
The new BuyBlue site was a complex challenge primarily because of the need to create a company profile containing large subsets of data and intricate relationships with other node types, and still perform well under high traffic conditions. Our site has gone through periods where we got 50K to 60K hits a day in the past. Drupal's cache API was a godsend for this, allowing us to cache anonymous as well as authenticated user views. Profiles also have different levels of user access. Some users can edit all profile content while others only a couple of fields.
We wired JpGraph into profiles for dynamic graph generation of political donations. In the future we have many more graphing enhancements planned. We also tied it all together with an email templating system to send form letters to these companies which let us harness the new flood control features in core. Much of the customization however happened at the theme level. We manipulated the presentation of taxonomy terms, appended company forums to the company profile view, and added tabs and sub-tabs to the menu navigation. Only two core hacks were made (hack 1, hack 2 involved using contact module for a sitewide contact form and privatemsg module for community messages).
Yet another interesting challenge was to import the 2.4 million election records from the Federal Election Commission containing most of the political donation data needed for the site. Matt created an FEC module for us that imports future election cycles and generates pages which analyze donation and history trends. The performance of searches against this data are surprisingly fast on our server. Currently this functionality is only available to researchers but we plan to release it to the public in the future.
And thanks to Drupal's node workflow system, we were able to ditch our previous company workflow which involved using two different systems: one for research and one for publishing. Now after a profile has been reviewed it's simply a matter of checking the 'published' box. What previously took days now takes less than an hour.
We also use the following contributed modules:
- Directory (revised and reborn for this release)
We very much believe in the Drupal community and the product and we’d like to contribute some of our modules back. Matt intends to contribute and maintain the following modules:
Stockapi - an API for grabbing and caching stock quotes from finance.yahoo.com using cron.
We plan on contributing additional modules in the future as we have a chance to make them more generic and develop new ones. If anyone has questions we'd be happy to answer them here.