The Virtual Lab School (VLS) supports military educators with training and enrichment around educational practices from birth through age 12. Their curriculum was developed by a partnership between Ohio State University and the U.S. Department of Defense to assist direct-care providers, curriculum specialists, management personnel, and home-based care providers. Because of the distributed nature of educators around the world, courses and certifications are offered virtually through the VLS website.

VLS came to Oomph to create the next generation of their distance learning platform with a focus on security, performance, and scalability for wider adoption.

Why Drupal was chosen: 

Drupal is an ideal framework for building custom online learning platforms and learning management systems (LMS). It is highly adaptable and allows for custom, fine-grained permissions for content delivery. It is powerful and can handle the millions of rows of data it takes to maintain the progress and assessments of students. It is fast and efficiently displays the personalized content required in an LMS and it's flexibility can accommodate any data model that an LMS requires. 

The previous site was built on Drupal 7 and part of the reason why an upgrade was important was to be ready for a smooth transition into Drupal 9. The new site needs to support more concurrent users around the world, and an upgrade to the most stable and secure version of Drupal was a huge part of supporting the performance needs. 

Describe the project (goals, requirements and outcome): 

Comprehensive Platform Assessment

The existing online learning platform had a deep level of complexity under the surface. For a student educator taking a certification course, the site tracks progress through the curriculum. For training leaders, they need to see how their students are progressing, assign additional coursework, or assist a student educator through a particular certification. 

Learning platforms in general are complex, and this one is no different. Add to this an intertwined set of military-style administration privileges and it produces a complex tree of layers and permutations. 

The focus of the platform assessment phase was to catalog features of the largely undocumented legacy system, uncover complexity that could be simplified, and most importantly identify opportunities for efficiencies.

Personalized Online Learning Experience

Enrollment and Administration Portal (above)

Administrators and instructors leverage an enrollment portal to manage the onboarding of new students and view progress on coursework and certifications.

Course Material Delivery (above)

Students experience the course material through a combination of reading, video, and offline coursework downloads for completion and submission.

Learning Assessments & Grading (above)

Students are tested with online assessments, where grading and suggestions are delivered in real time, and submission of offline assignments for review by instructors.

Progress Pathways (above)

A personalized student dashboard is the window into progress, allowing students to see which courses have been started, how much is left to complete, and the status of their certifications.

Certification

Completed coursework and assessments lead students to a point of certification resulting in a printable Certificate of Completion — a system-generated downloadable PDF file.

Faster and More Secure than Ever Before

The next-generation platform is built on Drupal 8, the latest version of the open source digital experience platform, and is Drupal 9-ready.

When building for speed and scalability, fully leveraging Drupal’s advanced caching system is a major way to support those goals. The system design leverages query- and render-caching to support a high level of performance while also supporting personalization to an individual level. This is accomplished with computed fields and auto-placholdering utilizing lazy builder.

The result is an application that is quicker to load, more secure, and able to support hundreds more concurrent users. 

Technical specifications

Drupal version: 
Drupal 9.x
Why these modules/theme/distribution were chosen: 

Bigpipe:

Bigpipe was used heavily in order to show customized content to user's with different roles while maintaining page caching. See: https://www.oomphinc.com/notes/2020/03/personalized-content-computed-fie...

Masquerade

Masquerade allowed administrators to easily navigate as a user in order to check permissions/check pages/test as a user with a specific role.

Migrate/migrate_plus/migrate_file

These were utilized heavily in writing custom plugins to migrate the site from Drupal 7 to Drupal 8.

Role delegation

This was used because of the intricate permissions that were required, because of the military involvement. All military roles were given 'administer users' permission, but depending on the role, they were only allowed to assign subordinate roles. This allowed us to easily provide that functionality.

Flag / Content Moderation:

Flag was used to customize the military review process. When a lesson was created, it would go through standard moderation and would eventually go into military review. Flag was used to let the military branches mark that they had reviewed a lesson. Customizations were added to pull the moderation state from 'review started' => 'review in progress' => 'review complete' all based on the user's that flagged a lesson node.

Remote stream wrapper/widget

These were used because all of the supporting files were being hosted at AWS in an S3 bucket. The D7 site has hard coded paths to these files based on naming of lessons. This was a shaky system and wasn't scalable. All S3 hosted files were migrated into media elements, but utilized the remote stream wrapper to allow the files to live outside of Drupal's file system.

Mailing list / Views Send / SMTP

These were used to keep a mailing list for the site that the administrators could use to update their users on changes. Views send was used to send bulk messages to users in the mailing lists. All messages were routed with SMTP through an AWS SES endpoint.

Search API / Solr / Facets

Two indexes were used, one for content and the other for users. The content search was pretty simple, indexing all content and facets were configured for the different courses/tracks.

User searches were important as it allowed users in the lesser roles to find people who were no longer active to re-enable their accounts and re-station them.

Organizations involved: 
Project team: 
  • Kaleem Clarkson – UX Engineer
  • Ellen Diamond – Account Manager
  • Philip Frilling – Web Engineer
  • Hanna Furey – Project Manager
  • Brian Hogue – UX Engineer
  • Matt Salvadore – UX Engineer
Sectors: 
Education