Create new namespace Course for courses, for wikiversity. This would be somewhat similar to Extension:Category, in that it allows individual wiki pages to be added to a Course, with several key differences:
- Pages in a Course could be manually ordered. (Category sorts all pages by alphabetical order only.)
- Users could "Join" a Course. Doing so would add all the pages of the course to a special Courses user page.
- Users could mark individual pages of a Course as 'complete', or 'skip' to remove the page from their Courses page
- Another page might keep a record all of their completed work
- The master page would have a list of all completed pages
- Perhaps they would have a copy (?) of each course page, with a page next to it to write down their answers/record their work, like a Talk or Sandbox page?
This is also somewhat similar to wikisources various Book templates. However, this can't be done in a template or a gadget because it requires access to the database to store a user's progress through a course. It is also somewhat similar to watchlist; it's possible that a special gadget could made to convert the watchlist into a course subscription UI instead. However, this would prevent the user of the gadget from using watchlist for its original intention.
It's not clear how this would interact with the Quiz extension. At present, it is not possible for a user to save their quiz results either. However, in the future it would be nice for quiz results to be stored and also be marked as completed in a user's special Courses page.
Other functionality may have to do with timing or scheduling of a course. As currently described, this feature would work best if a course is gone through at the user's own pace. However, it is may be desirable in the future to "run" a course during a certain time period, or have certain lessons be "due" at certain times. Or have courses that are intended to be gone through with daily work, or weekly work, etc. This is possibly complicated permissions-wise; perhaps we could need a "course owner" role.