It helps to have a mental model of what a Skilling installation looks like, before we start making one.

Mental model of a Skilling installation

First, you need a server to run your site. A web server is just a computer. It's like the PC on your desk. Like your PC, servers have files, folders to put files in, programs, and so on. The differences are the way servers connect to the internet, and the operating systems they run. Most of them run Linux, while your computer runs Windows, or Mac OS.

You rent space on a server from a hosting service. There are oodles of hosting companies out there. ReclaimHosting is a decent service aimed at universities. I run on InMotionHosting, since Reclaim doesn't have the power I need (at the time of writing, that seems to be changing).

Your server hosts domains, like,, or (you can't have that one). I create one subdomain for each course.,, etc. The technical differences between domains and subdomains aren't important to us.

Here's the model again.

Mental model of a Skilling installation

So the domain has your course. Inside the domain, you'll have three things:

  • A database, with the lessons, feedback messages, etc.

  • Programs. The software that shows lessons, records feedback, and so on.

  • Data files with student work

The DB has the data specific to your course. Lessons, exercises, patterns, notifications, suggestions, you name it.

The programs are the same from course to course. The programs that run your math course are the same as the ones that run your econ course.

The student data files are the students' work. Their Word files, spreadsheets, whatevs. They're stored separately from the rest of the files, since they need special security.

There are other things, like image files that you show in lessons, but let's leave it for now.

Let's look at the programs again.

Mental model of a Skilling installation

Rather than writing Skilling from scratch, I wrote the code to run on top of Drupal. Drupal is an open source content management system (CMS). It helps you make websites that use data about domain objects. For a university website, the objects might be courses, departments, degrees, minors, etc. For a skill course, the objects might be lessons, exercises, submissions, notifications, and so on. Writing Skilling to run on top of Drupal made my job easier.

There's one other piece of the model that we haven't talked about: the operating system.

Mental model of a Skilling installation

An OS connects the hardware of the server to the programs. Most web servers use Linux.

We'll be using the model to understand Skilling installation. You might run a program that tells the OS how to download Drupal. You need to make a database. You need to tell the OS what folder to store student data files in. These things are easier to understand if you have a basic mental model.

BTW, when you're writing lessons for your own course, consider helping students make mental models. In fact, Skilling has a special object type "Model," that's for explicitly representing models.

Section contents