How to create Drupal exercise files that work every time
lynda.com has now released five of my Drupal courses (which you can watch for free, by the way), and there are two more coming soon. Part of the company's model is to include exercise files for each course, so that students can (a) follow along with the same assets the instructor uses, and (b) jump in at any point.
For Drupal courses, the first criterion is easy to solve: We just include the same graphics and text I use to create the model site, and instruct students to add them as they go. But Drupal doesn't have a good way to let students jump into the course in the middle. Such a packaging system needs to:
- Populate a complete site;
- Be easy for non-technical students to use. It must use a familiar interface, and not require them to touch the command line;
- Be reliable;
- Require no monkeying with the settings.php file; and
- Take as few steps as possible.
Those are the challenges. On the other hand, we can make some assumptions that make the job easier:
- All students use Acquia Dev Desktop as their AMP stack;
- The resulting sites won't be made public: We can freeze the Drupal version without fear of security holes.
I tried several solutions, even attempting to commission an all-in-one solution. Previous courses used varying methods, with varying degrees of success — and they usually required too much explanation. Here's what I finally settled on:
- Provide one copy of the base Drupal distribution, without the /sites folder. Yes, that means that students will be installing an out-of-date copy of Drupal. But again, these sites will be locally hosted, and not exposed to the internet. (We also direct them to instructions on how to update the site to the latest version if they want.)
- Give instructions on how to import that base copy of Drupal into Acquia Dev Desktop. This sets up the stack, and puts predictable values into the settings.php file.
- For each video, provide two files:
- a .zip of the /sites folder, which includes all assets and modules installed up to that point in the course; and
- a .zip or .gz of the database. Compression is important because Acquia Dev Desktop imposes a 2MB upload limit in a crucial place. We've manually removed the "CREATE DATABASE" line from the database before compressing it.
- To start at any point in the course, instruct students to:
- Replace the current /sites folder with that video's /sites folder; and
- Import the database via phpMyAdmin (which is included with Acquia Dev Desktop).
How would you solve this problem?
Blog category: Drupal Planet