Hia all, very glad to see more people wanting to push Drupal into the LMS market! :)
I considered chiming in on the "please join the LMS group" discussion, but instead I'll just describe how we are approaching these issues at the Norwegian centre for telemedicine. We now use ATutor as our LMS, but are working towards building most of our courses in Drupal instead. ATutor is fast, intuitive and user friendly, but has some shortcomings and is much harder to extend and develop for than Drupal. And in addition the community of Drupal is much, much larger and more vibrant.
Till now
So, one of the biggest show blockers I've always seen with building a LMS with Drupal is the group and group tools functionality. We never got OG to do what we wanted it to do, and at the same time have an intuitive UI and easy configuration. Luckily this changed dramatically with Open Atrium and the Features / Spaces / Context stack, so similar to Eduglu we are basing all course functionality on these modules. All content and tools that will exist in a course will be a Feature. Without this we would not have tried to do what we do now at all.
There are also some functionality you require in a LMS that is simply not mature enough in Drupal. Most important for us is the test & survey functionality. In Drupal we have the Quiz module, but as of Quiz 3 this is simply not there yet. So we have spent considerable resources on this module, and are now soon on RC status for Quiz 4. It's starting to get smashingly good, so I encourage you all to check it out and help with bug reports and patches if you can! We also have some people starting to create new question types based on Quiz 4 which is great.
We also need a way to collect data from passed quizzes and act on that information, so because of that we will develop a new module called Certify. We've been delayed, but it's coming. We made this module for ATutor first and will recreate it for Drupal. At first it will collect data from a users' quizzes and if the user has passed X number of quizzes they will be issues a pdf certificate. Later on we'd like to expand this to take data from other sources, like userpoints, tracking of pages etc. And also have more reactions so more things than issuing a pdf certificate can happen when you "pass". We'll aim to make it as extendable as possible.
We've also made a very small helper module called Strict filter for OG, that filters nodes and terms by OG / space. Useful to for instance create a forum feature based on the core forum module.
Features
One of the great things with the Features module is how easy it is to create specialized functionality for a group/ course, and here's a list of features we are thinking of so far:
- Course dashboard
- Discussion forums
- Test & surveys (based on Quiz)
- Certificates (based on Certify)
- Learning content (based on the core Book module)
- Userlistings / member overview
- Blogs
- Polls
- Picture / video gallery
- Chat
- File archive
- Blogs
- Calendar
- ++
We will also need a messaging / notifications system in place, so users can contact each other, but also to create a message center for users. Like, you get a message when a new quiz is available for you, a certificate is ready etc.)
Biggest challenges
What we do not quite know how to solve yet is:
- Some Book related things: in many LMSes you can set a release date on content. So module 2 becomes available two weeks after module 1 etc. Also, it's nice to have content released based on other data. Like, if you have passed the test for module 1 the next module will be opened for you.
- SCORM: I'm afraid we will need a SCORM player at some time. We'd like to build this as a feature too, where you could get a separate tab where you can launch SCOs, but there is no mature solution for this yet. I do not agree that this is something only needed in a corporate environment either, it's simply needed in many cases of e-learning. Also, even though I believe SCORM is much better in theory than in practice, my experience is that you are not able to "sell" a LMS without it. Even though people don't know how to use it they will not go for an LMS that isn't SCORM compatible.
- Course backup / recreate: A typical scenario for us is that courses (content, tests, interactions) are developed once then more instances with different students can run at the same time with different sets of students. In ATutor this is simply a "course backup" that you can create and recreate in a new course (Drupal = OG group). This is also a big reason why SCORM is important in e-learning. I really have no idea how to get Drupal to do this in a simple way.
And I'm sure there will be more :) We're not aiming to make an install profile for this anytime soon, but will at the very least share our progress / thougths / methods, base module contributions and features.

Comments
great post!
There's some really cool stuff you're working on, and great tips!
One suggestion for availability of content might be to incorporate the workflow module - so you can create rules that must validate before content becomes available, possibly through automating group or role membership.
Thanks for your insights!
Jason
Jason Pamental
[ @jpamental ]
Workflow or Rules
The Rules module gives you even more flexibility to publish content, notify users etc.
Best regards,
Jochen
Jochen Lillich, CTO freistilbox Managed Drupal Hosting
Re: Our take on a Drupal LMS
Most of the features (90%+) you mention are already available in Moodle. Will they meet your unique needs, some will and some will not.
One of the features, we implemented was to post content based on geographical location. We run a course and the instructors wanted to post case studies to the students based on their geo location and other parameters. We did not expect, to find this module among the contributed modules. To cut the long story short, expecting a module to behave based on your needs is only mathematically possible, given the high number of permutations possible. For example Moodle has a certificate module, and it might solve half of your needs, but dont expect too much. As stated earlier, coming up with a super list of requirements, is not only impossible, but again, i might be wrong. For the Drupal LMS to stand out, it needs to do certain things wrong, like better performance, optimization, the wish list should be spared, for other efforts, unless a drupal shop takes this up, and tries to satisfy, the large LMS market.
Thanks!
@jpamental and @freistil: I'm relatively familiar with Rules but hadn't really though of the possibility of using it in these cases. It could indeed get us quite a bit on the way to accomplish some of the content / book related issues.
However, Rules is very complex, and something you in most cases would not want to grant access to or train the occasional course creator in. They would need a far simpler UI (with less possibilities to break the site). But till we have that it's indeed something an administrator could set up on a per-course basis..
@strangebike I'm very familiar with ATutor, which pretty much does all this. I'm also familiar with Moodle and other open source LMSes like Dokeos, Docebo ++, but as we have a lot of other web activity based on Drupal, and we feel Drupal by far is the most flexible platform to work with and develop for, we have chosen to do this in Drupal. And it's not a hypothetical wish list, we have developed for instance Quiz for almost a year with this goal in mind, and we are getting there.
Re: Thanks
@vegardjo,
my comments were not directed to you as an individual. I think the aim of the Drupal LMS is to have a superior platform. Moodle is good, Blackboard, Sakai, A+, are also good. However they are all rough diamonds.
If the aim of this Drupal LMS is to meet the needs of every Tom, Harry and Mary, am afraid its off track (read wish list). The LMS needs to focus on performance, optimization (read performing better under low resources), good architecture, etc.
My personal wish list is to have an LMS which will greet me, tell me the weather, etc. But i will not submit these as the features that should be in the LMS.
In conclusion, the Drupal LMS group be sub divided, where all interests are taken care of. Forum, Bug tracking, Graphical user Interface, Wish list (read Feature requests), Development. That way, i will avoid responding to issues which are of little or no interest to me in the current setup, by joining the correct group.
Re: Thanks
Not really sure I see the connection to my original post here, but please feel free to not respond to any post you have little or no interest in! :)
If your main interest are in performance there are separate groups for that, for instance http://groups.drupal.org/high-performance. If you're interested in system architecture then read up on and discuss Drupal core. A Drupal based LMS will naturally inherit both the architecture and performance of Drupal.
Re: Thanks
The connection to your post, is clear. You posted a wish list or a feature list. The only problem is that it was quite long, and you could have already forgotten what you posted.
In regards to inheriting the drupal architecture, you are right to a limited extent. Its like saying since Suse and Red hat both use the Linux kernel, they naturally have the same performance. Some of these things are slightly advanced topics, and i can understand, if you find it hard to understand these concepts.
Read up
I can see you've had an account on drupal.org for about a week, and it's very obvious that you do not understand what kind of features I am talking about (hint: Features module). Please read up before making bold statements about what people here say or not. This is not the only thread you have behaved this way, and it will get you nowhere.
And no, you can not compare the Linux kernel and Linux distros to Drupal and Drupal distros / profiles / sites in that way. The latter is slightly less advanced, you might find it hard to understand.
Learn Drupal
Every man and his dog, knows being on the drupal for 2 years and 3 weeks, is not something to write home about. I created this account about 2 weeks ago, for this group (LMS). The Duration i have been on drupal is none of your business. Most drupal groups like other lists are full of junk posts. An example is when there is a monthly meetup. One of the admins, will post the event details, which is ok, and 50 emails, will follow, i will be there, another will go like, i wanted to come, but my cat is sick.
My humble request was to have the Drupal LMS subdivided, so the likes of ' His highness the one and only Mr. Very important founding Drupal member vegardjo', can post his useful, insightful, and never imagined super list of his wish list (in the dream section).
on a serious note, my interest is to have the group subdivided. I can not comment on Linux. Your limited knowledge on the subject requires, that you first learn how to use search engines for knowledge crawling. Adult education is not very easy.
Please keep posts on topic
Hello, @strangebike -
I'm writing here wearing my hat as the group moderator.
If you have something constructive to add, then add it. Your above comment is not constructive. I am leaving it unedited for now, as this feels to me like a miscommunication, and in this group we want to welcome and encourage all comers.
However, in the future, please be aware that posts that single out individuals for ridicule/sarcasm can result removal from the group, or from g.d.o.
Like I said before, this feels like a miscommunication, and it's often difficult to read intent via threaded, text-based discussions. However, we are all here because we want to work together to make Drupal a leading choice for educational organizations. We can and should disagree, but we need to keep our disagreements limited to the ideas we are discussing. Anything that veers from that is counterproductive, and has no place in this group.
Cheers,
Bill
FunnyMonkey
Let's keep talking functionality
Hi vegardjo,
Nice to see the focus on functionality -- I think it would be great to build some concensus around a collection of features that would make Drupal really viable as a learning platform. My company (http://atendesigngroup.com) recently finished a redesign of http://newsu.org. The site is built entirely in Drupal, and includes most of the features you outlined. We implemented "cascade publishing" to roll out entire new book sections, which can be tied into the "scheduler" module for scheduling sections within instructor-led courses. We also provided a very, very simple implementation of the SCORM JavaScript API to play 3rd-party modules.
There's a brief write-up online at http://atendesigngroup.com/work/newsu. I'm hoping to write an in-depth case study for a more technical audience at some point as well.
Re: Let's keep talking functionality
[edit: post below was posted twice, deleting this]
Re: Let's keep talking functionality
Hi justing2pin,
that's a very nice looking and impressing site you've built, kudos for that!
I registered and enrolled in a few self directed courses which are nice and clear, but I'm also interested in how you set up the group seminar courses, specifically what you use with regards to tests and assignments and possible certifications. Are assignments CCK based, Quiz (module) based, Flash based or SCORM based? Also, do you have any tracking besides how much time you have used on the site? (like, how you did on tests etc). And, are the groups plain OG, or do you use Spaces / Features / OG? I'd love to see a technical case study at some point :)
As for LMS features in Drupal I feel that the easier features are stuff like forums, chats, wikis, plain content delivery etc. Drupal is strong on that, and we have modules for all that which are relatively easy to add and configure to a group.
The harder parts are related to more adaptive content. This could be learning paths, content that is released based on time, tests results or other factors. Drupal is very strong on the more A to Z delivery of content, but I'm not sure how we best would go about creating more adaptive / dynamic content paths.
Then the whole thing with e-learning content being created once, then used in several instances of a course. How is that done on Poynter BTW? Is there only one group seminar course running at a given time, or could you have two instances of for instance Elements of design (http://www.newsu.org/courses/design-essentials-pegie-stark-adam) running at the same time, with different sets of students? Would you then copy the content? Would you have a member list with all members, or separate them? If so, how? Taxonomy? On Group level? How do you archive a course to preserve student discussions / comments and test / assignment results, while still being able to run new instances of it?
SCORM kind of solves this as the course content (often including tests) is separated from the administration of courses and students, but at the same time it has shortcomings, and I personally do not like to create such a separation between the content and the other learning tools (forums, chats, social network integrations ++ for instance). It actually seems a bit old fashioned to me..
I believe there are many different possible paths around these issues but have so far not seen any best practices emerging..
cheers, Vegard
Image management
Originally mentioned in http://drupal.org/node/678918#comment-3013014:
Somewhere in the feature list I would put options to work with other Drupal modules. I am looking at using Ubercart on one site to sell products and that site will eventually sell courses. I look forward to discussion on what can be sold as a product, a course, a lesson, etc. The site would work best where people can register for a large course then micropay for each small section.
Course development benefits from project management when you have several course developers each working on several courses and the whole lot interlinked by corequisites plus each course developer being an editor for other courses. Adding a module to connect to Storm or a similar project management module would help track task progress and development time.
Now add images supplied by professional photographers and external image editors/illustrators. You want to track copyright etc, and there are Drupal add-on modules to provide those features. What you need to do when selecting an image is find out the access rules for the image. You might have an original and a derived work on file but be licensed only to use the derived work in your courses. An Image rights/information interface would be good. Contributed documents, white papers, extracts, and a few other things could use the same management. You are not normally allowed to quote a whole chapter from a book but the author might give you permission to use one introductory chapter. You need to record the communication related to the permission.
CRM is a big one. I would hate to have people listed once in an existing Drupal based CRM then have them duplicated in LMS. No sync program will substitute for having one common record.
I am still investigating some of the existing Drupal add-on modules of use in LMS. Most require the use of an API or need some sort of linking module to make LMS entities appear in selection lists for the other modules.
petermoulding.com/web_architect
More items for the wish list
http://atendesigngroup.com/work/newsu mentions organic Groups, Ubercart, and Books. The Ubercart bit sounds good. My experience of Books is that of top down development. You create a book then add child pages. I am looking at courses where lessons are created then assembled into courses with some lessons used in multiple courses, something that does not fit in Books.
There is also a need for independent items within courses. Think of those boxes in the right hand side of the page with extra information. For example, electrical safety warnings could be quoted all over the place in several lessons, perhaps every page in some lessons. There are some nice modules for adding things as blocks and controlling their appearance and the modules are aimed at advertising. I can see some of those modules used for the sidebar items with just a slight rewording of the documentation from evil capitalistic advertising industry jargon to wholesome educational terminology.
There are themes with multiple columns for long text presented newspaper style. Given the wide use of wide screens, long sections of text could be split into columns. You probably need the option to use a variation of a theme for individual pages. If you use theme Example, you need the option to select Example_2_columns for some sections of lessons. I wrote a module to select a theme for each page. What might be more useful is to have the lesson section as a long_text node type and automatically allocate the right theme variation based on node type.
petermoulding.com/web_architect
Flexible block positioning
Hi Peter,
if you want to put blocks at various places and have flexible control over their appearance, check out the modules Context and Display Suite. They're much more generic so you don't have to (mis)use UberCart for content placement.
Best regards,
Jochen
Jochen Lillich, CTO freistilbox Managed Drupal Hosting
How to for most of LMS
2 years ago we did an LMS site Jewish Pathways which was done on Drupal 5 with many of the then available modules. The case study on how to create an LMS site with modules and all the details were created and posted on Drupal for a front page promotion. Since it was a Jewish site, it was not allowed to be promoted, but the basic set of modules, details are all available in that case study. Since then we have created Drupal 6 versions leveraging OG, Quiz modules here Demo LMS site. I hope the case study and example sites are useful..
Joe @ Powerful CMS
Re: How to for most of LMS
Also a nice site, thanks for posting!
I couldn't register for an account at the demo site due to an issue with the spam filter there, but I registered for an account at the main site.
I have just one question really: I see in the case study that you mentioned that Quiz could only display one question at a time, but then I saw that in a quiz I took (test 43, Daily living) that you had all questions displaying on the same page - how did you get past that issue?