Moodle LMS

Open Source Moodle / Learning Management System / SCORM / Javascript / SAML
Adobe Captivate / Adobe Connect/ Actionscript

Moodle is an open source Learning Management System that I have many years of experience with. I was first introduced to Moodle while working at Crew Training International where we used it extensively with the Air Force MQ9 drone program. We developed custom SCORM packages using javascript, flash, actionscript, and flex for interactive applications and elearning modules. The SCORM specification communicates to the LMS with javascript using the SCORM API. Javascript calls were initiated from actionscript within flash swf files from buttons, frames, or other events.

SilkRoad Greenlight LMS

When I first joined HUB International, I was the administrator of the SilkRoad Greenlight LMS. We used it to launch our HIPAA training which our team managed in conjunction with HUB Law. Whenever we added or switched out a course in Greenlight, I was responsible for getting the AICC file from Skillsoft and setting it up in Greenlight. AICC is similar to SCORM and it allows for the content to exist on the Skillsoft servers while Greenlight launched and tracked the completions.

The HUB Learning and Development team decided to move our Skillsoft licensed content, most of our course catalog, to Skillsoft's Skillport LMS which was free for their content. I worked with someone from our IT team and a Skillsoft's Engineer to set up the signal sign on between our Microsoft ADFS and Skillport.

Moodle and Captivate

At HUB, we began using Moodle for our own custom content which was created using either Articulate Storyline or Adobe Captivate. Articulate Storyline was used by our elearning designer. I was responsible for installing and testing the SCORM packages created as well as offering tech support for getting them working correctly. I provided training for how to setup a course visually, enroll students (manually or by import), and setup activity and course completion, and view and download reports. We had trainers in multiple regions and offices who began using Moodle for creating custom insurance courses.

Single Sign on

As Moodle gained in use and popularity, it became necessary to set up single sign on. I installed and setup the SAML2 Single Sign On plugin for Moodle and coordinated the security policy certificate with HUB IT so it could authenticate using Microsoft ADFS.

Before single sign on, I was updating our users(11,000+) once a month in both Skillport and Moodle with a user upload csv file. Well, even after single sign on, I was still updating Moodle and Skillport with a user upload. The single sign on could only create users if they tried to log in to the system and it would only create the account with username and email. Importing the users would setup any new users with HUB specific data (for profiles) and update(or synchronize) the any changes made to the data from the HRIS system.

Windows Forms Application with C#

Moodle presented a challenge because of the long execution time required for the user upload and the fact that it was being run on a shared hosting Godaddy server. Since it was being hosted on a shared Godaddy server, I did not have control over setting the server and script timeouts.

While working at Physicians Post Graduate Press, I had complete control of the IIS server and the execution timeout. I could also run a process in the background asynchronously if needed. The Skillsoft user import used a background process to run the import and notify the admin once the job was complete. With the shared hosting, I had to break the csv file into 11 csv files that consisted of 1000 records. I did not want to have to manually format excel data once a month.

To make the manual user importing simple and quick, I created a Windows Forms Application in C# that would import a csv file into a sqlite database and then generate a csv file formatted for SkillPort, 11 csv files formatted for Moodle, and 11 csv files formatted for WordPress. The interface was very basic but required the use of an asynchronous thread and a progress bar so the UI wouldn't freeze until it was done importing. I would select the csv file I got from the HRIS system and run the Importer to generate the files formatted for importing into Skillport, Moodle, and WordPress Multisite.

Captivate Simulations for WordSensa Training

I used Adobe Captivate to create some WordSensa Training for HUB Law. WordSensa was a document analysis software that HUB Law was using for comparing insurance documents. I use the Adobe tools and make use of the creative cloud quite extensively. The WordSensa training used the Simulation feature of Captivate. I created a chapter menu where each chapter was a simulation. The chapters were locked so they had to be viewed sequentially. This means that before you could access chapter 2 you had to complete chapter 1. It saved your progress so you could revisit chapters that you already completed.

Adobe Connect and Captivate for Sexual Harassment Training

I used Adobe Captivate to create some Sexual Harassment and Prevention Training. The main requirement was that they wanted to track who watched the whole video and offer a certificate of completion. We had a trainer that regularly held Sexual Harassment and Prevention Training and had a 45 minute presentation. My solution was to record an adobe connect meeting where the trainer shared his desktop to run his PowerPoint presentation. We shared the desktop instead of importing the presentation into adobe connect because he wanted his animated transitions to appear. I recorded the 45 minute presentation with adobe connect, downloaded the mp4, and did some minor edits. I use Adobe Premier to quickly edit video and Adobe Media Encoder to compress the video for optimized streaming (The whole project was 53 mb). I then imported the video into Captivate where I hid the video controls and required the user to watch 45 minutes before the completion button appeared. When the completion button appeared, I took the user to a completion page and the package saved the completion. The certificate became available once the Sexual Harassment and Prevention Training package was completed.

Boost Advanced CSS

In the one of the images above, I show that I customized the Boost theme for Moodle with css. I used the fonts and colors that were defined by our brand guidelines. I edited the HTML and css on the classes list as well as in the course to produce a consistent look across all courses. I created courses with guest access(no enrollment required) which served to launch Skillport courses. This way we could have all of the Skillport library represented along side our custom HUB courses. The Skillport courses were not imported directly because we wanted to keep the reporting separate. It worked seamlessly because both systems had the single sign on implemented.

LevelUp Gamification

We often had discussions with trainers from various hubs who were interested in gamification. Using some of our custom content that was created for Workday integration, I created a gamified course using the LevelUp plugin for Moodle. Each activity completed provided the student with experience points. As the student earned experience points, they would advance through the levels which included images of trophies.