Facing History and Ourselves


Facing History and Ourselves is an international educational and professional development organization whose mission is to engage students of diverse backgrounds in an examination of racism, prejudice, and antisemitism in order to promote the development of a more humane and informed citizenry.

Note: This site is no longer active.

Drupal subsite deployment system and primary site code review

Facing History initially approached DesignHammer in the summer of 2010 with the need to build a system that would allow non-technical Facing History staff to deploy new sub-sites that would be pre-configured to the greatest extent possible, while maintaining integration with the primary FacingHistory.org site. In addition, their primary site had not been built in accordance with Drupal best practices, so Drupal core had been modified, there were a number of custom modules that did not properly use Drupal API, and so on.

Within months, DesignHammer delivered a new push-button deployment system based on Aegir that would allow Facing History to create over 30 sub-sites (for example, ostracism.facinghistory.org, or safeschools.facinghistory.org). All of the subsites featured user profile and role syncing between the subsite and the primary site. In addition, DesignHammer migrated the primary site to a clean Drupal 6 codebase, and began the process of cleaning up and documenting code.

Drupal / Salesforce integration

Facing History's website features extensive integration with Salesforce. When we took over maintenance of the FacingHistory.org site, the Salesforce integration that existed had numerous problems, and the site was using a modified version of the Drupal Salesforce Suite. Our team submitted numerous patches to the Drupal Salesforce Suite, created a stable release of the module, then migrated Facing History to use the new release. We then adjusted the syncing code for Drupal users and contacts so that we could process tens of thousands of records per day without slowing down site interactions.

Custom Drupal user registration system

After we completed the overhaul of the Salesforce integration code, the next project was to create a customized registration system that would override Drupal's default registration.

By design, Drupal comes with one user registration page, and customizing it usually requires some development experience. Facing History wanted the ability for non-technical staff to make changes to the registration form, and to add the ability to create any number of custom registration forms that would sync with Salesforce.

Leveraging the form creation abilities of the Webform module, DesignHammer created a custom registration system that allows Facing History staff to create a new registration form, map fields in the form to relevant fields in Salesforce, and link registrations to a given campaign in Salesforce. All of this allows Facing History to better track how people are signing up for their site and to measure the success of a campaign.

Purchasable resources in Ubercart

Facing History's customers and staff used to have up to six different channels to order products through. In the summer and fall of 2012, DesignHammer built out a product ordering system using Ubercart for Facing History. The main goal of the project was to streamline Facing History’s book ordering process for customers and staff. In addition, DesignHammer developed Salesforce integration with the standard Salesforce product objects provided by the Enterprise version of Salesforce, along with UPS WorldShip integration for shipping estimates, and coupon and role-based discount functionality.

Salesforce import admin
Admin for custom registration form
Custom registration form
Purchasable resources