OpenSesame is the world’s marketplace for buying and selling e-learning courses.
OpenSesame is the first marketplace to make buying and selling corporate e-learning as easy as downloading a song from iTunes. Using crowd-sourcing similar to iStockPhoto, OpenSesame’s marketplace and technology displaces the leaders in the highly fragmented $4.5B U.S. off-the-shelf e-learning content market.
The marketplace enables sellers of all sizes to reach new buyers without investing in additional sales and marketing resources. Sellers post their courses in the marketplace and set the price and discounts. OpenSesame hosts the content, attracts buyers, collects payment, and keeps a portion of sales revenue. OpenSesame enables buyers to access the broadest and freshest selection of e-learning content from a worldwide set of publishers all in one location. Content hosted on OpenSesame’s patent-pending platform will work on any learning management system.
OpenSesame launched in November 2010 with an e-commerce site built using Drupal 6. After developing the content catalog and customer base, the OpenSesame team decided to upgrade to Drupal 7 in order to support e-commerce more effectively and prepare the site to scale quickly. Since rolling out the Drupal 7 site in September 2011, the OpenSesame software team has continued to make improvements to commerce and payout processes.
OpenSesame relies on Drupal in order to offer users a variety of complex features, including:
- User-generated products: Users can self-serve to upload courses for sale in the marketplace.
- E-commerce sales: Customers can purchase courses using a credit card and download license files instantly.
- Multi-faceted, searchable catalog: The course search can be filtered by more than 10 facets.
- Custom product-level discounts: Sellers can create custom bulk discount tiers for each course.
- Multi-language support: The most-trafficked pages are translated into seven languages, with language switching. Users can also upload courses for sale in any language.
- Custom order types: In addition to e-commerce purchases of licenses with defined numbers of users, customers can get unlimited licenses for content and then get billed at the end of the month for actual usage.
- Custom payouts: Sellers can receive different shares of revenue based on their agreements with OpenSesame. OpenSesame will contribute the payout module back to Drupal 7.
- Site speed improvements: OpenSesame has improved page load time by pre-theming content and pre-caching content on the CDN.
Team & Timeline
The OpenSesame development team includes five software engineers of whom one focuses on theming and design. In addition, OpenSesame worked with consulting designers on user interface design.
The dev team began focusing on the Drupal 7 upgrade shortly after DrupalCon Chicago in 2011. Beginning in April, two engineers began testing the new modules and migrating code in a local environment. By June and July, the Drupal 7 upgrade took up most of the development team’s time, including two engineers at close to full time and another two engineers at about half time. The OpenSesame team successfully met its goal of rolling out the new Drupal 7 site in time for OpenSesame’s participation in Demo Alley at TechCrunch Disrupt in September 2011. Based on a rough estimate, the Drupal 7 upgrade represented 1,800 engineer hours.
Design and User Interface
As a crowd-sourced marketplace, OpenSesame depends on having a crowd of sellers and a crowd of buyers: Two audiences with distinctly different destinations and needs from the site experience.
In order to meet the needs of both buyers and sellers, the OpenSesame development team focused on creating a simple site with an intuitive workflow. For example, sellers are focused on how to add their products for sale in the marketplace while buyers are focused on searching for, reviewing, selecting and purchasing products. OpenSesame uses consulting graphic designers and user interface designers to create the simplest possible design. OpenSesame continually iterates on site design by using anonymous user testing services to seek feedback on the purchasing experience.
- OpenSesame runs in AWS
- Takes advantage of the smaller memory footprint of Nginx with php5-fpm
- Uses APC as both an op-code cache but also a non-database Drupal cache (taking advantage of Drupal 7’s built-in caching layer)
The OpenSesame team was developing the site while the Drupal code base was still largely in development itself. This concurrent development process meant some of the modules were moving targets.
From a process perspective, the developers started by working with one module at a time, migrating them from Drupal 6 to Drupal 7 in a local environment. They started with some of the more complex modules in order to ensure that Drupal 7 was able to support OpenSesame’s essential functions.
Some of the biggest investments of engineering time were devoted to getting Apache Solr (for product search) to work with the Commerce module. In addition, the SQL migration from UberCart to Drupal Commerce was extremely complex and required a lot of debugging.