I'm currently developing some Drupal 7 instructional videos for lynda.com. The company likes to offer "exercise files" for their courses so folks can jump in in the middle. In other words, someone could start at Chapter 5 by loading the Chapter 5 exercise file, which would make the site appear as though all the exercises from Chapters 1-4 had already been completed. A course would have at least a half-dozen such files (if one per section), and possibly as many as 70 (if one per video, as is preferred).
This has proven very difficult in Drupal. In Drupal Essential Training (2008) we included a .sql file at every step, but that didn't put assets in their proper directories. We included graphics wherever they first appeared, but that meant a user would have to go through all previous chapters to find the assets and load them up. That also didn't address the issue of modules and themes. It's been a support nightmare.
An ideal exercise file would:
Oh, and the proposed solution must be available soon for Drupal 7 -- for instance, modules that carry the D7CX pledge. And because people will be watching these courses until Drupal 8 comes out, it also has to take into account future versions of Drupal 7. That's why I hope I can find something that grabs "live" modules and themes, rather than packaging them in the exercise files themselves. (That's not essential, though, as users could just use Drupal 7's new Update features to bring the software up to date.)
I posted this question to a mailing list for Drupal consultants and got some good advice. But none of the recommendations seems to really solve the problem. The options -- and their drawbacks -- appear to be:
I doubt many people will have read this post down to here. If you're one of them, here's a secret opportunity... shh.... ;)
Any answer we find will need custom development. I'm not a programmer; I can't do it. The ideal solution would be a module that takes a snapshot that meets all our criteria and packages it up into a downloadable file. I'm looking into funding such a module, which would then be released back into the community under the GPL.
I talked to one developer I admire a great deal; he believed it would take 9-12 weeks and cost $10,000, which is WAY beyond what I could raise. I suspect he missed some easier options (such as modifying one of the solutions above). If you think you can do it -- or can make any suggestions -- I'd love to hear them!