In today’s post, we take a trip to Johannesburg in South Africa to meet Garren (@GarrenSmith) and Shelley Smith (@shellt), creators of Classroom 7 (@classroom7), an online learning tool for trainers and teachers to deliver material, build assessments and surveys, and organize their sessions. Classroom 7 is great for remote training and distance learning.
Classroom 7 brings many of the benefits of MOOCs such as Coursera and edX to people whose current method of course delivery is in a face-to-face context. It enables trainers in small training companies or big corporates to set up their own private MOOCs. The application then makes it easy for trainers to interact with their learners and track progress for reporting purposes.
The application saves time by automating processes such as grading quizzes and generating reports to visualize students’ progress. Trainers can also upload material like videos, documents, and e-learning content to build a fully online course, or to supplement a face-to-face course. Have a look at the infographic to see how a trainer would use Classroom 7.Ruby on Rails with a Backbone.js front end, and instead of using PostgresSQL or MySQL, the de facto back ends for Rails apps, they used Cloudant’s NoSQL JSON document store.
We had a great chat. Here’s how it went!
Cloudant: How did Classroom 7 get started?
After a month of intensive courses, everyone was asking, “What now?” There were many more people on the island who required training. There were requests for additional courses with customized content, and the island’s training department needed a standardized process to assess employee progress and recognize their achievements.
Garren: Shelley needed to continue the training program she started on the island, and regular trips back and forth just weren’t practical.
On the Internet-free voyage home, we had a lot of time to think and chat, and that’s where the idea for Classroom 7 took root. We initially planned on building a course delivery and learner management system just for Shelley’s courses, but gradually we realized that we could build it into a product that other trainers could use and customize to deliver their own courses online. We realized we were on to something when we had been back on dry land for a few months and two of Shelley’s fellow trainers mentioned that they were looking for a similar system to what Shelley needed for St. Helena. That’s when we took a leap of faith, and I started working exclusively on Classroom 7.
Cloudant: What did your application architecture look like when Classroom 7 launched?
Garren: We needed to build the product quickly. We had a small window of opportunity with our clients that we needed to capitalize on. We also needed flexibility, because we had a basic feature set planned for our first release, but were planning to add more features at a rapid rate after that. So I went looking for the tools that would help us develop Classroom 7 quickly, make it flexible, and ensure a great experience for our users.
I built Classroom 7 using Ruby on Rails with a Backbone.js front end. Instead of using the more traditional approach of a Rails application with a SQL back end, I designed Classroom 7 to use CouchDB. I chose CouchDB not only because I’ve always been a big supporter of the Apache project and I’m a CouchDB committer, but also because its flexible schema easily handles different types of content and won’t inhibit us as we add new features to the application.
Using a NoSQL back end like CouchDB works perfectly for a product like Classroom 7, as the data can be stored in a semi-structured way. It also makes it easy to change the structure when necessary. Using CouchDB’s built-in MapReduce, I was able to define powerful database views to query the data.
Cloudant: Why did you move your application to Cloudant?
Garren: Because we were a small team bootstrapping Classroom 7, we knew we needed the support of a super-reliable database management service — in short, a service that would allow us to #sleepMore. We didn’t want to be sweating the details of database infrastructure management and performance-tuning, and we needed to know that we’d never wake up one morning to a failed database service. Also, because I was the only developer on the system, I needed something that was really quick and easy to use.
For us, Cloudant was the obvious choice. With its CouchDB-compatible API, distributed service, excellent support channels, and fair pricing, Cloudant ticked all the boxes for taking Classroom 7 live.
I still use CouchDB for testing and development work, but it’s Cloudant for production. Cloudant’s API is compatible with CouchDB, so it was a simple transition between the two. I rest easily knowing that all the data generated on Classroom 7 is safe and secure, and that when they generate reports, our clients can be assured that the data is accurate.
Cloudant: What’s next for Classroom 7?
Shelley: It’s been over a year since we launched, and Classroom 7 now serves a wide range of clients — from independent trainers and small training companies to big corporates. Classroom 7’s main aim is to remove the administrative and technical aspects of training delivery, so that trainers can get on with the business of developing and delivering awesome courses.
Classroom 7 has some ambitious growth plans, and with Cloudant, we’re confident that Classroom 7 will be able to scale beautifully — which is a good thing because the online training and skills development industry in South Africa, and the world, is growing — and more and more great trainers are going to want to get their courses onto a Classroom 7 learning hub!
Cloudant: Thanks for the time, and we hope to hear more about new features launching soon!
We had a great time talking with Shelley and Garren. If you’re building an online course, be sure to check out http://www.classroom7.com/.
-- Mike Broberg, marketing communications manager, Cloudant