WeBWorK Main Forum

Moodle integration

Moodle integration

by Stacy Hoehn -
Number of replies: 10

Has anyone recently integrated WeBWorK with Moodle?   The documentation I can find (https://webwork.maa.org/wiki/Moodle_Integration) appears to be from 2012, so our IT department is reluctant to install  it until they know it will work with Moodle 3.9.   I am mostly interested in Moodle Assignment as opposed to Moodle Question Type.

Tags:
In reply to Stacy Hoehn

Re: Moodle integration

by Sean Fitzpatrick -

There have been a number of Moodle integration options, and I think some of them (including the ones you've referenced) are out of date.

There are two other options:

  1. Opaque Server --- I tried unsuccessfully to get this working this summer. I think almost nobody is using it, so Mike is the only person who knows enough to help and he's pretty busy. I've given up on it. There is also the downside (as far as I understand it) that you need to create a new "question engine" every time you want to make a question bank, an this requires admin privileges (leaving you at the mercy of IT)
  2. LTI. If you don't absolutely need WeBWorK running within a Moodle quiz or assignment, this is the easiest and most reliable option. To use LTI, you add a new External Tool in Moodle that points to your WeBWorK course. Students click the link and are automatically logged into WeBWorK. WeBWorK will automatically send grades back to the gradebook.
I've been using LTI for about 5 years now. I have not had any problems.
Do you run your own WeBWorK server? If so, you have to do a bit of setup in the authen_LTI.conf file in /opt/webwork/webwork2/conf, and uncomment a line in localOverrides.conf to include the LTI file. If you're using the hosted version I believe they have LTI set up.

The nice thing about LTI is that you can use it without any involvement from IT (unless they control your WeBWorK server -- my IT won't touch WeBWorK because they're a Windows shop and they don't have anyone willing to touch a Linux server).
Once you know the shared secret (which is set in authen_LTI.conf) you just do manual configuration of a Moodle External Tool.

If you want individual gradebook entries for every Assignment/Quiz in WeBWorK, you can do that, but you have to change the way WeBWorK reports the grades to Moodle (there are two "grade modes") and you need to make a new external tool for each assessment.
In reply to Sean Fitzpatrick

Re: Moodle integration

by Michael Gage -

I backup up what Sean says.  I'm sorry not to have more time to work with wwassignment and the opaque server but that is the current situation.  wwassignment works just fine with moodle 3.3 (perhaps also 3.4) but probably not with the later ones.  The modifications that have to made are entirely within the moodle modules (mods) and have nothing to do with webwork, so someone familiar with moodle can probably make the updates needed to adjust wwassignment module to work with moodle 3.4 -->3.9 -->  ?  as well or better than I can -- I'll gladly consult.  Something similar is true for the OpaqueServer -- the  upgrades that are needed are all on the Moodle, php side in this case updating the opaqueclient module and opaqueclient behavior module -- these were written by Tim Hunt and are essentially unmodified from his implementation -- so it might be possible to just get a new version of these (if there is one) two modules and plug it in.

Anyone interested in these projects?  I'll be glad to consult, but currently they are a ways down my todo stack. If the local IT people eventually get php 7 up and running (they have been promising it for a year now) I'll be able to upgrade moodle and then try to work directly on upgrading and testing the moodle modules with moodle 3.9. 


The long term road map is to get LTI1.3 (LTI advantage) running on WeBWorK -- this handles gradebooks well -- at which point the specific moodle connections will get replaced by this standard.

In reply to Sean Fitzpatrick

Re: Moodle integration

by Stacy Hoehn -

Thanks so much for pointing me in the right direction, Sean.  LTI is exactly the type of thing I was looking for.

In reply to Stacy Hoehn

Re: Moodle integration

by Sean Fitzpatrick -

Ah, good! You're welcome.

One slightly odd thing: in the WeBWorK LTI configuration, you set only the 'shared secret'. There is no consumer key set. But when you set up a new external tool in Moodle, it will ask for both. If you leave the consumer key blank, it will not work. But you can put in seemingly whatever text you feel like in that field!

On our system, the most reliable student identifier coming from Moodle is the email address.

In the LTI configuration, there is a key like "lis_sourcedid" (I could be remembering this wrong) and one of the options is "contact email primary". Then there is the option to strip the user name from the email address.

So Moodle will send WeBWorK the information "jane.student@school.edu" and WeBWorK will use jane.student as the user name.

In reply to Sean Fitzpatrick

Re: Moodle integration

by Olga Matthes -

Is it possible using Moodle LTI (or some other methods) to programmatically create student accounts? 

We have about 100 students for a course and don't want manually create all their accounts. We want them to go to WeBWorK directly from Moodle course and have accounts to be automatically created in WeBWorK.

In reply to Olga Matthes

Re: Moodle integration

by Danny Glin -

Yes, this is handled by the LTI integration.

If you set up an LTI link in your Moodle course, when a student clicks on the link, it first tries to log them in to an account with that username (when you set up LTI, you can choose whether to use the Moodle username or the email address as the WeBWorK username). If the student account doesn't exist in WeBWorK, then it is automatically created and assigned all visible sets in the course.

In reply to Danny Glin

Re: Moodle integration

by Sean Fitzpatrick -

Earlier in the thread I mentioned that I use LTI with Moodle, for exactly this reason :-)

It is pretty easy to set up. Are you running your own server? You need to change 3 or 4 lines in two configuration files, and then you just add it using the External Tool plugin in Moodle.

In reply to Sean Fitzpatrick

Re: Moodle integration

by Olga Matthes -
Great, thank you! I'm going to use these instructions https://webwork.maa.org/wiki/LTI-Advanced_Authentication
In reply to Sean Fitzpatrick

Re: Moodle integration

by Jonathan Desaulniers -

Hi Sean,

just so you know we have been using WeBWorK with opaque server for quite some time now at my college, and i just love it. If you need some help making it work i would be happy to help out (the IT could back me up on some topics).

I have been trying this summer to ad "Exam Question" function to the opaque plugin without succes. My goal is to be able to add an option that would make it possible to only permit student to preview or grade answer. In short, i want to disable the possibility to chek if the answer is good or not by adding an option in the question parameter of Moodle. If i'm not mistaken, i think Tim Hunt si the one that made the plugin. Maybe il try to ask him for a hint soon, but i dont think he support this plugin anymore!!!

Anyway, feel free to ask for help if you need some with the opaque (and sorry for my english!!!) 

Jonathan

In reply to Jonathan Desaulniers

Re: Moodle integration

by Sean Fitzpatrick -

Hi Jonathan,

Thanks for the offer -- I heard some CEGEP schools were using it.

For now, at least, we're not going to worry about it. We couldn't get it working this summer, and now with everything online, our Moodle team (and IT generally) have their hands full.

It seemed like, if you wanted to generate question banks from problem sets, using Mike's script, you need admin access on Moodle, because you need a new opaque engine each time. So that was a bit of a non-starter because none of faculty have admin privileges and IT would be too busy to help.

We have been working on getting APEX Calculus converted to PreTeXt (you can see the current results at https://opentext.uleth.ca/calculus.html). Many questions (especially in the first 5 chapters) are coded as WeBWorK problems -- you can do them live in the book now, but answers don't get recorded.

In PreTeXt you can strip out the exercises with WeBWorK code and output to pg files, or even to set definition files. I had this idea that you could combine the PreTeXt script with Mike's script, and there you go -- one Moodle question bank for every section in the book.

But maybe this was overly ambitious. :-)