Specs for a learning exercise module

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
mathieso's picture

I'm working on a site that will have lessons on HTML, CSS and such. Each lesson will be like this:

Only local images are allowed.

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:

Only local images are allowed.

(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?