The notion of 'topics' used to categorize lessons would probably make it easier to find learning material you're interested in – especially across different curricula/ladders. Topics should also be ordered in tree structures describing inclusion ("is a part of") and dependencies ("you should learn first").

A use case description: A site visitor wants to learn how to use the Features module. There are seven different lessons on this, in different curricula/ladders, but they all relate to the topic 'Features'. Viewing this topic, the visitor will also see some related topics – like:

  • 'exporting settings in the variables table' is a sub topic
  • learning about Features is recommended before learning how to create distributions

Some features/functionality this issue should provide:

  • Lessons may/must relate to topics (entity reference)
  • Topics have descriptions (long text field)
  • A topic can be a sub topic of a given topic (entity reference)
  • A topic can require learning another topic first (entity reference)
  • There should be a searchable list of all topics on the site (Views)
  • There should be a list that can be used for showing other lessons on the same topic (Views)

Maybe provided in future issues:

  • Flags to mark procifiency in a topic
  • Personalized lists to show topics in a user's 'learning vincinity' (only requiring topics the user already knows)
  • Graphical representations of tree structures for topics
  • The ability to have multiple connections between topics, and vote up/down on these

Comments

itangalo’s picture

Status: Active » Needs review

There is now a sandbox for this issue, with two features ready to go: http://drupal.org/sandbox/itangalo/1497346

itangalo’s picture

Project: Lessons » Learn
Version: 7.x-1.0-alpha1 » 7.x-1.x-dev
StatusFileSize
new7.1 KB
new11.87 KB

…and here are the two features, separated out.
A new dependency is introduced, to the Panels project (only for the example layout feature). The topics feature requires Views Content Panes, but that is included in the CTools project already.

(I was going to create a patch, but I wasn't sure how to do that to a distribution.)

itangalo’s picture

StatusFileSize
new0 bytes

Hey, when I cloned the project with Git it was much easier to know how to create the patch.

I think "Git" is short for "Good shIT". At least, that's how I feel. :-)

Make file is NOT updated in this patch.

Darko’s picture

Maybe not as good as you may think. The patch you attached is empty :)

itangalo’s picture

Yes, it is empty. WTF?

Attached are two separate patches – one for each feature. *crossing my fingers*

bryanhirsch’s picture

@Itangalo, Thanks for putting together this video! Lots of great ideas here.
http://www.youtube.com/watch?v=wLck42xlEpA.

It looks to me like there are two major feature sets your distro:
1. Learning resource management, referencing lots of different types of learning resources (local and external).
2. Learning resource relationships, mapping out connections and dependencies between topics and learning materials.

It's easy to see the huge value in both of these feature sets. But the related workflows are pretty complex. I'm reluctant to introduce additional complexity to Learn Drupal before the 1.0 minimum viable product (MVP) is ready to release. But I'm also very interested in the work you've done here. How does this sound as a way to proceed?...

Would you be willing to maintain a new branch of learn? Say 7.x-1.x-topics or 7.x-1.x-something. As your branch comes out with modules and features that are compatible with 7.x-1.x, we can include them in the 1.x branch. In 1.x, the default install should focus on the simple learning ladder. But if people want to try out additional bells and whistles, they can optionally enable and configure additional modules from 1.x-topics. We could also include a separate learn.profile in 1.x-topics to configure a modified version of the install profile, oriented around topics rather than (or in addition to) ladders.

I'm thinking it would look something like this:

  • Ideally 1.x and 1.x-topics have the same modules and features included in their code bases
  • 1.x and 1.x-topics potentially have different learn.profile, learn.info, learn.install files, implementing different initial site configuration and enabling some different modules by default
  • 1.x-topics is an incubator for developing the features and UX around learning resource (AKA lesson) management and relationships
  • After Learn Drupal release 1.0, we can start doing do tagged releases of 1.x-topicsN (I've never seen anyone do this, but I think d.o will let us do it, just like 1.x-alphaN releases and 1.x-betaN releases)
  • As the UX around features included in 1.x-topics evolves, we can merge in features to 1.x or 2.x as appropriate

If you think the patch you intended to upload in comment #2 still makes sense to apply to 1.x, please re-upload.

itangalo’s picture

#6: I think this calls for a larger discussion – moving it to another issue (to keep it separate from the "topics" discussion): #1506690: Merge features from "Learning site" into Learn profile?

dgoutam’s picture

@itangalo, @bryanhirsch Please pardon me but I do believe that what we are talking here and itangalo is pointing towards actually tends toward the discussion around the Information Architecture of the entire site. If your time permits please opine your point of view regarding the issue http://drupal.org/node/1506458.

BrockBoland’s picture

Project: Learn » Drupal Ladder
Assigned: itangalo » Unassigned