Starting way back in September 2020 we took the decision to build an asynchronous learning portal for thinkingmuseum.com. Thinking Museum is the web presence for my wife Claire’s business. Claire provides training and a community for museum educators. Her mission is to bring open conversation about art and objects to everyone. To support this mission she really wanted to make her classes and assets available to students asynchronously. So with that in mind we started to build out her technology stack and we started on our journey. While the requirement was relatively simple and we already had a working WordPress instance
Firstly we had to overhaul the entire wordpress infrastructure and bring things up to code – we did this in August 2020 and this was a starting point for our development working going forward.
Secondly to upload and host our video we built a complete video processing backend which make it streamable and also secure (although more on that later).
Thirdly we started to play around with potential learning management systems for WordPress. There are a stack of them out there but navigating through those which either provide a complete solution (including cart and payment integration) or are integrated with Woocommerce, or are reliable enough, is a complicated journey. We looked at Sensei LMS, and we looked at MemberPress but the former seemed not to do quite what we wanted and indeed broke in our themes, the second was too complete a solution – wanting us to use it instead of Woocommerce – and we felt that it was too large a step for us to take at this time. Finally we landed on TutorLMS which is free to start with (and probably this is suitable for most use cases) and we were delighted with the results.
One thing that we did want to ensure though was that any video we uploaded wasn’t downloadable – only embedded in our web page.
In order to get our processed video secure we had to not only create am AWS Cloudfront distribution secured by certificate and then utilise an HLS video player for WordPress which supports signed URLs. For this instance we used the excellent FVPlayer from Foliovision.
Additionally I had to write a new WordPress plugin called AWS Signed Cloudfront Download which enables a shortcode which allows PDFs etc to be linked and download automatically from secure locations on Cloudfront.