At DrupalCon Boston, I met Erich Beyrent, Engineering
Manager at CommonPlaces e-Solutions. As it turns out they are using Userpoints for several large sites, including Greenopolis.com in very interesting ways.
Later, we had Erich as a guest visiting 2bits.com onsite in Waterloo, and we had this interview about Drupal, Userpoints, and other things.
Khalid Baheyeldin: Erich, it was great meeting you at DrupalCon, and again having you visit 2bits.com in Waterloo.
Erich Beyrent: It was fantastic to finally meet you at DrupalCon, and your hospitality and generosity during our meeting in Waterloo was beyond
KB: First, tell us about CommonPlaces, what are their goals and philosophy.
EB: CommonPlaces is dedicated to utilizing open source technology to provide robust web-based solutions. Back in 2006, we made a strategic decision as a company to focus on developing social networks and enterprise-level collaboration tools. This decision was based on industry trends, forecasting, and our Internet knowledge -- and it all pointed to the value of social networking and collaboration beyond personal use. We knew we could build effective social applications that would benefit businesses and corporations. CommonPlaces is now in a unique situation of understanding e-commerce and monetization aspects of the Internet, and offering the integration of these strategies into social networking and collaboration sites.
KB: How did Drupal help Common Places and Greenopolis.com? What features were appealing to you.
EB: CommonPlaces evaluated a number of potential social platforms. We looked at a few hosted services (such as Prospero, Sparta, Hive, Leverage) that offered the MySpace-like features we were seeking, but didn't offer much as far as flexibility of the platform, and integration of 3rd
party applications. We also investigated several open source social networking applications. The pilot for Greenopolis.com was actually built
using open source social network software that soon reached its limits for the site. Drupal allowed CommonPlaces the ability to quickly theme the site to our branding specifications and offer the MySpace-like features we needed as a baseline. Drupal also allowed us to offer API Integration for 3rd party partners, and build in the onsite and off site points features so important to the rewards program.
Quite simply, Greenopolis.com would not have launched in the timeframe given without Drupal. The feature set was incredibly broad and robust, and the wealth of modules available to us from the community made it possible to build the site with a small amount of custom development. Most of the MyOpolis section within Greenopolis was built in three weeks by a team of four engineers.
KB: You use the 2bits.com developed Userpoints module suite. Tell us more about how the site uses it, what you like about it from the user perspective as well as the developer's perspective.
EB: Userpoints is one of the central features of the Greenopolis website. Site members are awarded points for creating content, such as blogs, events, forum topics, and groups. Greenopolis uses the userpoints_basic module to configure the points awarded for each activity. The wide range of configuration options makes Userpoints very flexible. Excellent support, active development, and excellent documentation are other features of Userpoints that we like.
EB: Userpoints is one of the central features of the Greenopolis.com website. Site members are awarded points for creating content, such as blogs, events, forum topics, and groups. The site uses the userpoints_basic module to configure the points awarded for each activity. The wide range of configuration options makes Userpoints very flexible. Excellent support, active development, and excellent documentation are other features of Userpoints that we like.
One of the features on the Social Network is the user badge system, which allows us to display a graphical representation of a member's efforts to help promote the sustainable lifestyle. We used the User Badges module in conjunction with the Userpoints Role module to tie these graphical badges to roles. The roles are associated with a point threshold, which allows us to define specific point levels that are required to be promoted to the next highest role, or badge. However, we extended this functionality with some custom code to tie in other factors, such as sums of content creation for different content types. For example, a member could get promoted to the next role and badge if he or she had a certain number of points, a certain number of blog posts, a certain number of forum posts, etc. We further extended this concept by integrating the Webform module to create multiple-choice quizes, and awarding bonus points for scores of 80% or higher.
The Social Network uses the Services module to allow Flash widgets, embeddable on any website, to retrieve a given member's current points and graphical badge and display the data in real time.
CommonPlaces is able to integrate points with 3rd party vendors through a robust SOAP interface, exposing a good portion of its platform over web services. With consulting from 2bits, CommonPlaces built a workflow utilizing hook_cron to synchronize points earned on the site and points earned off-site via SOAP. SOAP faults are being handled through a queue mechanism based off the userpoints transaction table.
Another way we are using userpoints is with our custom Top User module. This module allows us to designate a specific user account as the "spokesperson", with the goal of making sure the total userpoints for that account is always higher than the next highest point balance by a configurable percentage. With consultation from 2bits, the mechanism for keeping these points higher than all other users implements hook_cron.
KB: What new features would you like to see in Userpoints
in the future.
EB: We would like to see a way to access information about the node or be able to access the parameters passed to the API in hook_userpoints. We have run into situations where on a "points before" operation, we need to make decisions based on the node regarding whether points should be awarded or not. A good example of this is event nodes with repeating schedules. The behavior of the repeating schedule is to create individual event nodes for each schedule iteration. As a result, points are awarded for each node. We only wanted points to be awarded on the
first event node, and not on any of the nodes created as part of the repeating schedule.
KB: The site also uses other modules that 2bits.com
developed. Tell us more about them.
EB: We use the AdSense module. The Favorite Nodes module will be used in production in the future, allowing users to mark content such as Tips for Sustainable Living as favorites, and to share those favorites via Flash widgets, Views, and Services. We've worked with the SessionExpire, Feedback, and Flag Content modules as well, both on Greenopolis and on other Drupal sites.
KB: Erich, thanks a lot for this interview. Looking forward to hearing from you regularly.
EB: Likewise. Thanks for everything.