I'm working on a site that will have lessons on HTML, CSS and such. Each lesson will be like this:
I'm planning on writing a Drupal module to manage the exercises. Any feedback?
Goals
Each exercise will have:
-
Title, e.g., Create a nav bar.
-
Description. Include link to a solution.
-
Learner's solution. Each learner will enter the text of a solution. Often it will just be a URL.
-
Learner's notes. Some text, e.g., problems in completing the exercise, ideas for improvements.
-
Discussion. The learner community can talk about the exercise.
Lesson embedded view
Exercises will be embedded in the text of each lesson. There'll be three parts to each one. The first part is the title and description.
The second part is a collapsible fieldset with two fields: the learner's solution, and the learner's notes The former will be something like this:
(This isn't a form field, just some text with a border.)
Click Edit and the text becomes a form field, and the button says Save. Click it to update. Use Ajax - no page reload.
If the user is not logged in, all s/he will see here is a message: "If you were logged in, ..."
Below the solution fieldset will be a collapsible discussion fieldset, with one field, containing peoples' comments about the lesson. The field will have a maximum height and a scrollbar when the height is exceeded. Implemented in CSS.
Lesson summary view
At the end of each lesson, there will be a page with a table with three columns. The first will be the title of each exercise (clickable to see exercise on the lesson page). The second will be the learner's solution. The third will be the learner's notes on the exercise.
Portfolio view
Each learner will have a portfolio collecting all the learner's solutions. It will look like the lesson summary view, but with some grouping by lesson and book. Groups will be collapsible.
Content designer's view
There'll be a new content type. The designer will type in the exercise's title and description, with a link to a solution.
When creating a page, the designer will enter some token for an exercise, like:
add_exercise button-bar-1
So - what do you think?