Prescribing Drupal: CMEDownload's Video-on-Demand Subscription Service for Continuing Medical Education
CMEDownload is a continuing medical education (CME) service that gives physicians and medical students access to a high-quality library of thousands of lectures in video and audio formats for computers and mobile devices. This video on demand (VOD) service contains thousands of lectures and hundreds of hours of continuing medical education.
The service is a good example of Drupal being used to power a MOOC, or massive open online course: it combines digital-age distance learning with unlimited participation and open access to educational materials. CMEDownload has since been joined by other MOOC services using Drupal, including edX.org.
Attending conferences can be tricky for busy medical professionals. CMEDownload partners with top-level national and international medical conferences so that physicians can view lectures without leaving their homes, jobs, or families. Customers who sign up for an all-access pass can stream or download any of the thousands of videos and also earn certificates in continuing medical education through watching these videos.
Exaltation of Larks has been working with CMEDownload since 2012. What started as a standard site audit — with a focus on improving website performance and fixing security issues — turned into a major refactoring project and infrastructure overhaul. With the results from our initial site audit, we have steadily improved the website in almost every way.
To this day, Exaltation of Larks continues to maintain and support the CMEDownload website. We are a fully-integrated, full-service design and engineering firm, and in the case of CMEDownload we have provided development, maintenance and support, infrastructure consulting and managed hosting services.
IDENTIFYING CMEDOWNLOAD’s NEEDS
Sujal Mandavia, CMEDownload’s CEO, is a sharp businessperson with a great product. He wanted to improve CMEDownload’s security and performance and he needed a sleeker, faster-moving way to present and organize the service’s video media, as well as improve the user experience of the customer-facing features.
As someone with development experience himself, Sujal knew he needed to find a team that was familiar with site architecture for media-heavy sites, and who understood how to organize, catalog, and serve up large amounts of video media. Sujal searched extensively for the right team to handle the upgrades he needed.
“The Larks’ consistency was a plus,” Sujal says. “So was their level of experience.” Both companies have offices in Los Angeles — CMEDownload is an LA startup and Exaltation of Larks has a Los Angeles-based team — which made working together an easy decision.
OUR PROGNOSIS & SOLUTION
Code Audit and Refactoring
We began with a full infrastructure audit. This included a review of CMEDownload’s web hosting, which at the time of our audit was on a dedicated Xserve server. This server was occasionally crashing and we took emergency measures to improve data integrity in the event that the MySQL database server crashed. At the same time, our implementations significantly improved the database performance.
Understanding the way the original CMEDownload website was constructed required high technical expertise. Through our audit, we learned we would need to untangle some of the previous development work. We refactored large parts of the codebase to use high quality third-party modules that are available on Drupal.org to provide the same functionality, while performing a code audit of the 17 custom modules installed. (The previous vendor had developed significant parts of the Drupal codebase from scratch and in many cases had reinvented the wheel.)
Managed Hosting
CMEDownload is now hosted on Amazon Web Services (AWS). We’ve utilized AWS extensively to reduce CMEDownload’s web hosting costs by almost 50%. These changes include refactoring and optimization of the codebase and database, which have lowered both web hosting fees and ongoing maintenance costs.
We provide long-term support and maintenance services for CMEDownload. This includes ticket-based support, ongoing bug fixes, and working directly with CMEDownload’s staff. Through our support system, we provide CMEDownload with services for all of their hosting and infrastructure needs.
Performance and Scalability
We improved CMEDownload’s page load speeds through extensive database tuning and performed significant database maintenance tasks, including automated integrity checks and optimization of the database tables.
Modules we installed and configured included Varnish, Expires and Purge, and we added Views caching that was missing for nearly all the blocks and pages, including video queues, playlists, completed quizzes, etc.
We also implemented the CDN module for Drupal in order to use a content delivery network. With the CDN, CMEDownload is able to deliver the files in its enormous video library much more quickly and efficiently to its customers.
Security Improvements
One of the first things we worked on was improving security, fixing potential information disclosure vulnerabilities. Many pages and custom lists of information displayed by Views did not check for access control, which we promptly fixed.
As is standard with e-commerce sites we work on, we performed an e-commerce audit to ensure that customer data was protected. This was also one of the first projects where we enforced HSTS, or HTTP Strict Transport Security, a security implementation created in 2012.
“HSTS is a powerful and relatively little-used method for increasing security and even improving usability by preventing mixed content warnings. We recommend using HSTS on all our projects that use SSL,” says Christefano Reyes, of Exaltation of Larks. “It’s been part of our standard security package for a while and we would love to see more websites using it.”
Subscription Issues
Customers are presented with an interface similar to Netflix: members have a queue to which they add videos they want to save for later viewing. We added functionality that allowed members to reorder their queue and delete videos from it. CMEDownload also uses the Drupal iTunes module to expose users’ playlists in iTunes.
We fine-tuned custom modules that determined how a lecture or course was labeled and displayed to subscribers, and who had permission to view what content. We also worked on streamlining a method for offering discount codes. Many lectures and courses have attached quizzes, to test subscribers on the material before they can gain a certificate of completion. We worked on CMEDownload’s custom modules to simplify the process of displaying these quizzes to viewers.
CMEDownload also keeps track of who has watched which videos, and issues the corresponding continuing education credits and certifications. CMEDownload uses custom code and scripts to calculate these credits and display them. These proprietary methods enable CMEDownload to track the views of individual members.
Exaltation of Larks is an Authorize.Net development partner and we implemented their service with Drupal to better manage CMEDownload’s subscription information.
Another customer-facing change we implemented was a switch from FlowPlayer to JWPlayer for streaming video. We chose JWPlayer because support for JWPlayer is very good and the player does most of the work: it can play HTML and Flash files in one instance, whereas with FlowPlayer it’s necessary to switch between two types to play HTML or Flash. CMEDownload and their customers are happy with the results.
GIVING CMEDOWNLOAD A CLEAN BILL OF HEALTH
Our customer is very satisfied. Sujal’s only complaint was that he wished Exaltation of Larks had been on the project from day one. “I think companies like Larks have made it easier for folks to access the power and community of open source without being experts themselves,” Sujal says.
Sujal believes the Los Angeles startup scene has changed for the better in recent years. He recognized the need for a CME product and he filled that need, but the startup community was smaller and technical resources were harder to find at the time CMEDownload was founded. Open source software was available but only easily utilized by developers and hardcore aficionados.
Here at Exaltation of Larks, we’re extremely happy to have helped CMEDownload with their success. We are currently working with CMEDownload on upgrading from Drupal 6 to 7, which will make feature development considerably faster and further reduce support and maintenance costs.