Moodle is a course oriented application with a typical 1990s approach of recreating everything already invented elsewhere. If you started building Moodle from scratch today, you would use a content management system and add some extra modules. I could use small parts of Moodle on a Drupal site and looked at Moodle integration with Drupal but it is just two separate systems sitting on the same server. A Drupal 6 based Moodle would gain so many good features. A Drupal 7 based Moodle would gain even more features with far less work.

As an experiment, I build parts of the course management using Drupal nodes and making some node types the same as Moodle tables. Drupal nodes give you a whole lot of features missing from Moodle. There are so many good things built into Drupal that there is not a lot of work in creating Drupal equivalents to the parts of Moodle I need. Moodle + Nodes = Noodle.

Drupal gives me content revisions, attribution, and workflow without a line of code.

I started writing a Web style online courseware application back when I was a kid with a mainframe to play with. A lot of work. The invention of the Web did not make the programming any quicker than the 1980s mainframe content delivery systems. In fact the Web meant you had to write login systems and all sorts of stuff that already existed in mainframe online systems. Drupal 5 is easier than those mainframe systems. Drupal 6 plus the huge range of add on modules kills all the predecessors. Moodle, XRMS, and a dozen other 1990s style applications should start again with an existing CMS as the base.

My experiments with Drupal 7 suggest Noodle 7 is viable. A small group of people working on the course delivery part could knock over a Moodle compatible equivalent in almost no time. If there were a small number of educational institutions to chip in a few dollars as a starter fund to overcome the initial inertia and provide focus, Noodle would be viable for 2011. Many of the other parts of Moodle are better served by the existing CRM and shop add ons for Drupal. Think of CiviCRM accompanied by CiviCourse. Noodle could be the missing bit.

Drupal 7 profiles make the packaging of the parts a breeze. Just about everything in Drupal 7 reduces noodle from a two year perhaps-I-should-compromise project to a feasible one year project. Now if I could just get Drupal to change some of their coding format rules so I could load existing code into drupal.org CVS without losing the formatting...

Comments

chuang’s picture

I'm not that familiar with Drupal nodes, but just curious, what features (other than "content revision history") you think are missing from Moodle that can be done with Drupal nodes? Thanks!

peterx’s picture

Two features that are missing from Moodle are add-on modules and Fields.

For Drupal 6 I would use some of the add-on modules to add functionality that is either not in Moodle or is already in a better form in Drupal. Image management is one area. I looked at using Moddle for a site presenting courses containing images that need to be managed in specific ways. I could not find anything suitable in Moodle. Drupal has some add-on modules with the right features. Most of the images would be loaded with associated nodes and some of the information in the nodes would be needed in the course content. Moving the course content from Moodle to Drupal nodes could make the image information available through tokens (the Token module is in Drupal 7 core).

Fields is in Drupal 7 core and still lacks documentation for the type of stuff I do but is on track for use this year. If I was starting a new site today or planning a major revision for the next financial year, I would use the Fields module as part of any extension because it makes adding some types of extra fields to nodes easier. I need extra fields in some of the Moodle content. Some of the fields will have standard formats and be in different content types, one area where Fields is easier than redefining the same field in several modules.

Overall the big saving is where part of a site already exists in Drupal and you are already using Ubercart or Storm or a similar Drupal based application and want to add Moodule functionality without changing the existing site or replicating data.

sepeck’s picture

Perhaps you could discuss this with the Drual in Education group? Seems a likely group of interested folks.

As to changing coding standards that are 9 years old........ not going to happen. There is nothing that it could change to that would not make some group unhappy so might as well meddle forward with what we have had for years now.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

peterx’s picture

Re standards. Drupal has a conflict between documentation in code and on drupal.org. I would like to see projects set up the module documentation pages as they create the PHP code and add links from the code to the documentation pages. There is probably a Doxygen standard for that.

I would also like them to at least adopt a readable standard for braces. CVS could change leading tabs to spaces to save us typing thousands of spaces where we need type only hundreds of tabs. We are still fighting an accidental standard created by the people who published the first book on C. At least Drupal fixed the irregular spacing issue.

sepeck’s picture

you mean api.drupal.org? only for modules? Long term goal.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

peterx’s picture

Hello Steven, there are pages for documenting contributed modules. The locations and titles keep changing but the node id stays the same. Here is the current breadcrumb to a page I created for one of the Storm modules.
Site Building Guide » Working with dates, actions, workflow and events » Storm (project management application) » Storm invoicing

The top levels are a problem because they change occasionally. The main project documentation page usually stays the same and is linked from the project page. I suggest the same link be added to the top of the .info file and every code file.

The project child pages are the ones that could describe business logic in detail. They are the ones we could link to from code within module files. There could be a child page for each .module file and possibly .admin, .css, .inc, and .js depending on the complexity of the logic.

/*
 * @file
 * @documentation http://drupal.org/node/nnnn
 */

A function might validate telephone numbers and could have a link to a heading in the .module page. If there is a Javacript assist function, the link would also be in the relevant .js file.

/*
 * Function to validate telephone numbers.
 * @documentation http://drupal.org/node/nnnn#telephone_number_format
 */

The code could document the internal technicalities of the validation while the online documentation page describes the reasons for using that format.

sepeck’s picture

ah, the documentation team is working on solving that problem for the future. It involves planning and where the project module is going for the Drupal.org site redesign.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

amc’s picture

Also see http://drupaledu.org/ for case studies & more

Anonymous’s picture

Hi,

I was interested in the Moodle-Integration module as I have both a Drupal 7 site and a Moodle site, but this module exists only in D6 and the developer has no plans and isn't interested in part sponsorship?

Would you be able to help or suggest any possibilities.

Thankyou

fm’s picture

The module page is now accepting donations for a D7 version. You might want to encourage him further.

http://drupal.org/project/moodle

sean456’s picture

thanks !! resolved

clawki’s picture

Not sure if this is still a live issue, but I would be interested in assisting on such a project. I am most interested in developing resources for K-12 environments, and this would be a great project to get in on.

Thanks

Kent
kclawson@rawdesigners.com

laz0rama’s picture

hi there,

so, after reading this, it seems that your "noodle" is so far nothing more than wishful thinking. am i correct?

i have worked quite a bit customizing dokeos for a client, and i have always hated it. i have never used moodle.

i will be building a website for a client that is not for online learning, but primarily for simple course management associated with classroom courses. i want to use drupal as the base cms, and i've just started looking into what course management stuff is out there that might integrate. if nothing seems easily doable, i may end up creating it all in drupal. as i have experience creating node-based modules (issue tracking and expense tracking, among others), i could definitely see creating a module or set of modules - maybe an installation profile - for a drupal-based lms.

if there is already such an effort underway, i would be interested in seeing if it makes sense to just contribute to that effort.

thanks,

-laz

WorldFallz’s picture

Be sure to checkout out the eLMS effort: https://elms.psu.edu

peterx’s picture

@laz0rama: I had some D6 code for compatibility experiments. Other projects are higher priority and I now work almost exclusively on D7, making the work less useful. Drupal 6 and Moodle can coexist at the database level and they can be interconnected with just small changes to Moodle, making a hybrid a first step in a conversion and most of the subsequent steps easy.

The changes to Drupal 7 make that type of interconnection more difficult. You do not gain the benefits of D7 unless you make a big conversion from Moodle to D7. The eLMS approach might be the best way to go.

laz0rama’s picture

@peterx: thanks for the info.

elms has no D7 version (i am now fully committed to 7 myself, finally), and even the D6 version is really not ready for prime time, according to the lead developer. we had contacted him to see about collaborating on a major project that could really use elms, but he did not seem to think it was the right choice. that was in the past 2 months. oh well.