Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

SchoolTool Integration: Difference between revisions

From MoodleDocs
Line 46: Line 46:
* When: Friday, June 5 at 10am EST
* When: Friday, June 5 at 10am EST
* Where: #schooltool-moodle on freenode
* Where: #schooltool-moodle on freenode
* What user data will go between SchoolTool & Moodle?
* Write down some use cases about ST+Moodle integration
* Write down some use cases about ST+Moodle integration
** Drop SchoolTool into existing Moodle site, leave Moodle as authoritative user directory, enrollment management system.
** Drop SchoolTool into existing Moodle site, leave Moodle as authoritative user directory, enrollment management system.
Line 54: Line 53:
** Drop Moodle into SchoolTool site.
** Drop Moodle into SchoolTool site.
** Drop SchoolTool into Mahara site (and vice-versa, out of scope at present)
** Drop SchoolTool into Mahara site (and vice-versa, out of scope at present)
* Design decision: Grades will only go from Moodle to SchoolTool.
* Design decision: For auth/enrollment/grades, only one side is ever authoritative. We are not going to synchronize both ways simultaneously.
* What user data will go between SchoolTool & Moodle?
** Which user profile fields do SchoolTool & Moodle have in common?
** Which user profile fields do SchoolTool & Moodle have in common?
* What enrollment data will go between SchoolTool & Moodle?
* What enrollment data will go between SchoolTool & Moodle?
Line 62: Line 66:
* Produce mock-ups of the SSO, enrollment, & grading data. (XML)
* Produce mock-ups of the SSO, enrollment, & grading data. (XML)
* Where will the python mnet library live?
* Where will the python mnet library live?
* Grades will only go from Moodle to SchoolTool.
* Can we allow the admin to choose whether auth directory goes from SchoolTool to Moodle or vice-versa?
* Can we allow the admin to choose whether auth directory goes from SchoolTool to Moodle or vice-versa?
** Definitely want bulk update via cron available for the chosen transfer direction.
** Definitely want bulk update via cron available for the chosen transfer direction.

Revision as of 14:45, 5 June 2009

The SchoolTool SIS project recently released version 1.0, and lots of people could benefit from a solid integration between Moodle and SchoolTool. This page is a work-in-progress specification for the first version of this integration.

Goal: Moodle-SchoolTool integration modeled on Moodle-Mahara integration.

  • SchoolTool-Mahara integration should require very little extra effort when this project is complete.
  • SchoolTool+Moodle+Mahara will provide a complete, integrated school administration/learning/portfolio suite that will be easily installable and supportable by time-crunched education systems administrators.

Requirements

  • SSO between SchoolTool and Moodle
  • Auto-enrolment in Moodle tracking enrolments in SchoolTool
  • Automatic grade transfer from Moodle to SchoolTool
  • Completely web-based integration configuration (similar to Moodle-Mahara configuration)

Supported versions

  • SchoolTool 1.0
  • Moodle 1.9.5+

Background info and references

Implementation notes/ideas

  • The PHP mnet library will be ported to python.
    • SchoolTool will need to use this library. Discussion about plugin architectures (auth, enrolment, grades) underway in #schooltool on freenode...
  • Moodle will need some awareness of SchoolTool in the mnet auth plugin. Not sure yet what this entails. (i.e., Mahara shows up in the list. We need SchoolTool in there, too.)
  • Moodle will need an enrolment plugin that gets data from mnet but is otherwise modeled on the external DB enrolment plugin.
  • Moodle will need a gradebook plugin (does this even exist? or something...) that can pass grades to SchoolTool via mnet.

Schedule

  • mnet library porting ASAP (Brett)
  • mnet interface and data content examples drawn from Moodle as input to SchoolTool design ASAP (Matt)
  • SchoolTool-side planning/spec meeting TBA

Data Samples

Auth/Profile

  • idnumber,lastname,firstname,username,email,<other profile fields TBD>

Enrolment

  • userid, courseid, role?, course name?, status?, credits?, other?

Grade

  • userid, courseid, item name, points earned, points possible?, other?

Moodle mnet Interfaces

SchoolTool mnet Interfaces

Planning meeting prep/notes (to be integrated above after meeting)

  • When: Friday, June 5 at 10am EST
  • Where: #schooltool-moodle on freenode
  • Write down some use cases about ST+Moodle integration
    • Drop SchoolTool into existing Moodle site, leave Moodle as authoritative user directory, enrollment management system.
    • Drop SchoolTool into existing Moodle site, after bulk data transfer from Moodle->SchoolTool, flip configuration and use SchoolTool as the authoritative user directory and/or enrollment management system.
      • Could this be used to migrate to SchoolTool from another SIS (integrated somehow with Moodle) by way of Moodle?
    • Start fresh with both.
    • Drop Moodle into SchoolTool site.
    • Drop SchoolTool into Mahara site (and vice-versa, out of scope at present)
  • Design decision: Grades will only go from Moodle to SchoolTool.
  • Design decision: For auth/enrollment/grades, only one side is ever authoritative. We are not going to synchronize both ways simultaneously.
  • What user data will go between SchoolTool & Moodle?
    • Which user profile fields do SchoolTool & Moodle have in common?
  • What enrollment data will go between SchoolTool & Moodle?
    • What are SchoolTool's course status concepts, and how will these interact with Moodle? (e.g., is enrollment simply binary, or are there other status options?)
  • What grade data will go between Moodle & ST?
    • One grade/student/course, or one grade/assessment/student/course? (Eventually want to provide admin(?) with option.)
  • Identify MNET interfaces published by Moodle & ST for this integration.
  • Produce mock-ups of the SSO, enrollment, & grading data. (XML)
  • Where will the python mnet library live?
  • Can we allow the admin to choose whether auth directory goes from SchoolTool to Moodle or vice-versa?
    • Definitely want bulk update via cron available for the chosen transfer direction.
    • Optionally allow on-demand update per user if used before bulk update via cron. (Moodle works this way now.)
  • Can we allow the admin to choose whether enrollment authority is in SchoolTool or Moodle?
    • Definitely want bulk update via cron available for the chosen transfer direction.
    • Optionally allow on-demand update per user if used before bulk update via cron. (Moodle works this way now.)
  • What will the code between SchoolTool and the python MNET library look like? (This is probably where zope-related considerations come into play.)
    • What, in summary, does MNET provide?
      • MNET is an XMLRPC implementation that dispatches messages to applications on either side (with a convention for function naming).
      • MNET has a security layer that enforces that every message is encrypted and signed (with regular key rotation).
      • MNET provides a core set of modules to provide common functionality such as SSO, key discovery, ping, and course enrollment.