Wednesday, August 20, 2014

My new moodle front end - starring Genius SIS

We have a new *front end to our moodle service this fall.  This is our moodle instance that is serving the NYS public high school population.  Genius SIS is a 3rd party software program that works with numerous LMS, including moodle.  Genius is a dashboard where students log in to see things like links to their courses, progress in their courses, notes from the teacher etc.  It looks pretty good and synch's with moodle in terms of accounts and accounts enrollments.

Genius SIS also *pulls course grade data from moodle and updates the information that the students see is their dashboard.

Typical student dashboard.














Students follow the links in the Academic Snapshot area to their course(s).  Genius also has a concept of a advisor who is able to view course offerings and enroll their students into course offerings.

Technically - the Advisor has student accounts associated to it and it can choose one of its students and a course section, a course is not *enrollable, sections of a course are enrollable.  A course is a little more generic and is only used as the base or blueprint for a section.  A section has a teacher assigned to it, a section ID etc.

The section id is called a LMS ID in Genius and must match to an actual course on the moodle server.  It *links or synchs with moodle like this:

Genius has a course section LMS ID = a moodle course shortname

Very specifically - when a student is enrolled into a course section in Genius, a *special integration enrollment table is written to with moodle being *synched to it via the moodle Authentication plugin.

This is what the *special integration table looks like:



When students are enrolled into a Genius course section, the data is written to this special *integration enrollment table.  Moodle is pointed at this table and looks here every 15 minutes (cron script) to see if new enrollments have been made.




The courseid in this table is the LMS ID for the course section in Genius AND is the shortname of a course in moodle.

One thing that we are trying to do this fall, to avoid confusion about which course section is joined to which moodle course, is use the teacher last name in the courseid.

In moodle, we have teacher categories where we *deploy copies of a moodle course as needed.  In moodle, we have master courses that we format and then backup and then restore or deploy a copy of that master to a specific category.  That is where the teacher name in the section LMS ID in Genius comes in handy.  We can look at Genius course section LMS ID and know where (which category) the matching moodle course is deployed.

Every Genius course section MUST specify a LMS ID - so we can match it to a moodle course.  Plus, Genius will write the enrollment to the table show above even if there is no LMS ID.  It should NOT, but it does.  In that case we get a blank field in the record, and of course, it does not synch to moodle.

Genius Course list with Sections


Genius should have some logic that inspects the record to ensure that both the username and courseid are there before writing the record to the table.

I added an composite UNIQUE index to the integration table above on (username, courseid, role) ensuring that an account can only be enrolled once in a course in the student role.

The student account must exist first before it can be enrolled in a course section. The process starts at choosing the student account and then the course section it should be enrolled in.  To choose the section, you must first choose the term - which loads the course sections avail. to that term.  Fine.  The PROBLEM here is there is no check to ensure that there is an actual course matching the course section.  In other words, it is very possible to enroll a student into a course section and have that section not exist in moodle.  Then the enrollment does not work does it?  No, it can't *work unless their is a moodle course matching the section LMS ID - then, the enrollment will work.

It has not been fun sorting through the list of Genius course sections - checking their LMS ID to ensure it exists and that a matching moodle course exists and has been deployed.

My customer says "We will offer this course in part 1 and 2"  then leaves the work of getting - formatting, splitting,  backing up and restoring *Deploying a copy of the moodle course and then ensuring the moodle shortname matches the Genius course section LMS ID.  Have I said that enough yet?

There is an integration report in Genius that I like because it does inform me about the success or failure of an attempted enrollment.

Genius Integration report - could be useful




























Notice the Error Message and the Result column - there are duplicate entry failures because the account is already enrolled in that section.  This is useful to me because it alerts me to stupidity in Genius and allows me to be proactive.

I will monitor the Genius Integration report to ensure there are no failed attempts to enroll student accounts into course sections.


No comments:

Post a Comment