Moodle Expertiza Integration: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
 
(20 intermediate revisions by 2 users not shown)
Line 13: Line 13:
LTI will allow us to perform these following tasks:
LTI will allow us to perform these following tasks:


# Students and Instructors will automatically be "signed in" when they open Expertiza(assignment) from Moodle. Students need need not "sign in" into two LMSs(Moodle and Expertiza).Thus, LTI will enable '''single-sign-on'''.
# Students and Instructors will automatically be "signed in" when they open Expertiza (assignment) from Moodle. Students need need not "sign in" into two LMSs (Moodle and Expertiza).Thus, LTI will enable '''single-sign-on'''.
# Student's account will be automatically created if he visits an Expertiza Assignment from Moodle. Hence, students '''need not create a separate Expertiza account themselves''' before starting any Expertiza assignment.
# A student's account will be automatically created if he visits an Expertiza Assignment from Moodle. Hence, students '''need not create a separate Expertiza account themselves''' before starting any Expertiza assignment.  
# Student need not be added as a participant by the instructor in Expertiza before he can start any Expertiza Assignment. Since student will visit the Expertiza assignment from a legitimate authorized source like Moodle, he/she will be automatically added as a participant for that assignment in Expertiza.
# Student need not be added as a participant by the instructor in Expertiza before he can start any Expertiza Assignment. Since student will visit the Expertiza assignment from a legitimate authorized source like Moodle, he/she will be automatically added as a participant for that assignment in Expertiza.
# When instructor assigns grades to a student for a particular assignment in Expertiza, the grade will automatically show up in the Moodle grade book. Instructor need not export grades from Expertiza to a csv file and then import the same in Moodle. It will be a '''one-click grade pass-back process'''.
# When instructor assigns grades to a student for a particular assignment in Expertiza, the grade will automatically show up in the Moodle grade book. Instructor need not export grades from Expertiza to a csv file and then import the same in Moodle. It will be a '''one-click grade pass-back process'''.
Line 26: Line 26:
# Sign into Moodle using Moodle administrator credentials.
# Sign into Moodle using Moodle administrator credentials.
# Go to Site Administration > Plugins > External Tools > Manage External Tool. You will see a page where you will have an option to Add a Tool using a URL.
# Go to Site Administration > Plugins > External Tools > Manage External Tool. You will see a page where you will have an option to Add a Tool using a URL.
# Enter the Expertiza URL for registration and click on "Add Tool". This Expertiza URL will be provided by the Expertiza administrators. It is a standard URL which can be used by all the LMSs for authorizing Expertiza as an LTI provider.
# Enter the Expertiza URL for registration and click on "Add Tool". This Expertiza Registration URL (typically, '''http://[Expertiza Url]/lti2_tp/registrations/''' where [Expertiza Url] = localhost:3000 or www.expertiza.com) will be provided by the Expertiza administrators. It is a standard URL which can be used by all the LMSs for authorizing Expertiza as an LTI provider.
# You will be taken to Expertiza Registration page on the Expertiza website where you will be provided a button to "Add  Provider".
# You will be taken to Expertiza Registration page on the Expertiza website where you will be provided a button to "Add  Provider".
# When you click on "Add Provider", you may see a small popup on Moodle with permissions asking whether you want to activate "Expertiza".  
# When you click on "Add Provider", you may see a small popup on Moodle with permissions asking whether you want to activate "Expertiza".  
Line 35: Line 35:
'''Instructor/TAs:'''
'''Instructor/TAs:'''


Before instructors and TAs can work with Expertiza in Moodle, the above step of Moodle administrator enabling Expertiza(as an external tool provider) has to be carried out as a pre-requisite.
Before instructors and TAs can work with Expertiza in Moodle, the above step of Moodle administrator enabling Expertiza (as an external tool provider) has to be carried out as a pre-requisite.
Later, the instructors and TAs can configure Expertiza assignments in their course website. The steps for the same are as follows:
Later, the instructors and TAs can configure Expertiza assignments in their course website. The steps for the same are as follows:
# Sign into Expertiza using instructor/TA credentials.
# Sign into Expertiza using instructor/TA credentials.
# Go to Manage > Assignments using the top header.
# Go to Manage > Assignments using the top header.
# Edit the assignment you want to configure.
# Edit the assignment you want to configure.
# Copy the assignment number of the assignment from the url on the address bar of the browser. For eg. if Url is '''http://[Expertiza Url]/assignments/781/edit''' where [Expertiza Url] = * localhost:3000 or * www.expertiza.com, the  assignment number is 781.
# Copy the assignment number of the assignment from the url on the address bar of the browser. For eg. if Url is '''http://[Expertiza Url]/assignments/781/edit''' where [Expertiza Url] = localhost:3000 or * www.expertiza.com, the  assignment number is 781.
# Sign into Moodle using your instructor/TA credentials.
# Sign into Moodle using your instructor/TA credentials.
# Turn Editing Mode on and Click on Add New Activity.
# Turn Editing Mode on and Click on Add New Activity.
# In the URL section, enter '''http://[Expertiza Url]/lti_assignment_users/''' where [Expertiza Url] = localhost:3000 or www.expertiza.com.  
# In the URL section, enter '''http://[Expertiza Url]/lti_assignment_users/''' where [Expertiza Url] = localhost:3000 or www.expertiza.com.  
# Under custom parameters, enter assignment_id = [assignment id] where [assignment id] is the earlier copied assignment id from Expertiza. For eg. enter the following for custom parameters, "assignment_id = 781". This step is very important.
# Under custom parameters, enter assignment_id = [assignment id] where [assignment id] is the earlier copied assignment id from Expertiza. For eg. Enter the following besides custom parameters, "assignment_id = 781". This step is very important.
# Fill in all the other details like the name of assignment etc. as required.
# Fill in all the other details like the name of assignment etc. as required.
# Click on "Save and Return to Course"
# Click on "Save and Return to Course".


After performing the above steps, the students and other users registered for this course will be able to see a new LTI configured Expertiza Assignment.
After performing the above steps, the students and other users registered for this course will be able to see a new LTI configured Expertiza Assignment.


Instructors and TAs can also automatically pass back grade from Expertiza to Moodle. Note that this is only applicable for those LTI configured assignments which have been completed by the student after visiting the assignment via Moodle.
Instructors and TAs can also automatically pass back grade from Expertiza to Moodle. Note that this is only applicable for those LTI configured assignments which have been completed by the student after '''visiting''' the assignment via Moodle.
The steps needed to carry out by the instructor for the grade pass-back feature are as follows:
The steps needed to carry out by the instructor for the grade pass-back feature are as follows:
# Sign into Expertiza using instructor/TA credentials.
# Sign into Expertiza using instructor/TA credentials.
Line 57: Line 57:
# Click on "Alternate View" besides any team for whom you want to assign the grades.
# Click on "Alternate View" besides any team for whom you want to assign the grades.
# You will see a page where you can assign grade and write comments for the team which you selected.
# You will see a page where you can assign grade and write comments for the team which you selected.
# Enter any grade up to 100, comment(optional) and click on "Save".
# Enter any grade up to 100, comment (optional) and click on "Save".


After clicking on Save, the grade should automatically be transferred to Moodle using a single click. The grades will be visible for only those students who had visited this LTI configured assignment from Moodle at least once.
After clicking on Save, the grade should automatically be transferred to Moodle using a single click. The grades will be visible for only those students who had visited this LTI configured assignment from Moodle at least once.
   
   
'''Students:'''
'''Students:'''


Students will be able to seamlessly use other LMSs like Moodle with Expertiza. Student just needs an account in a single primary LMS like Moodle(LTI Consumer) and he will be automatically be able to access Expertiza resources without even creating an explicit Expertiza account or signing into Expertiza.
Students will be able to seamlessly use other LMSs like Moodle with Expertiza. Student just needs an account in a single primary LMS like Moodle (LTI Consumer) and he/she will be automatically able to access Expertiza resources without even creating an explicit Expertiza account or signing into Expertiza.
Student has to sign in to Moodle using his Moodle credentials. Then, he/she needs to click on any Expertiza assignment. This will automatically take the user to Expertiza and he/she can complete his assignment in Expertiza. Students can return to the assignment multiple times and need not complete the assignment in a single iteration.
Student has to sign in to Moodle using his Moodle credentials. Then, he/she needs to click on any Expertiza assignment. This will automatically take the user to Expertiza and he/she can complete his assignment in Expertiza. Students can return to the assignment multiple times and need not complete the assignment in a single iteration.
After the student completes the assignment, instructor can assign grades to the student whenever the instructor wishes to using the steps mentioned above.
After the student completes the assignment, instructor can assign grades to the student whenever the instructor wishes to using the steps mentioned above.
Line 74: Line 73:


The design will include the creation of these following tables:
The design will include the creation of these following tables:
# lti_registration_wip - This table will store information about the several tenants which will attempt to add Expertiza as a tool provider along with the messages (profiles) they will exchange.
# lti_registration_wip - This table will store information about the several tenants (LMS like Moodle) which will attempt to add Expertiza as a tool provider along with the messages (profiles) they will exchange.
# lti_tenants - This table will store information about the tenants which will approve Expertiza as a provider and who will be properly authorized for communication with Expertiza.
# lti_tenants - This table will store information about the tenants which will approve Expertiza as a provider and who will be properly authorized for communication with Expertiza.
# lti_assignment_user - This table will store a mapping of the assignment participant and lis_result_sourcedid. The lis_result_sourcedid is a hash value which will be used to send grade back to Moodle per student per assignment.
# lti_assignment_user - This table will store a mapping of the assignment participant and lis_result_sourcedid. The lis_result_sourcedid is a hash value which will be used to send grade back to Moodle per student per assignment.


Also, we will make use of the VitalSource lti2 engine which will provide the basic functionalities needed for LTI communication. This engine will be mounted in our routes.rb and hence the routes defined in this engine are also applicable for Expertiza.
Also, we will make use of the [http://github.com/vitalsource/LTI2-Reference VitalSource lti2 engine] which will provide the basic functionalities needed for LTI communication. This engine will be mounted in the Expertiza's routes.rb and hence the routes defined in this engine are also applicable for Expertiza.


There are other tables like lti2_tp_tools, lti2_tp_registries, lti2_tp_registration which either store static seed data required for initial configuration or is required by the lti2 engine.
There are other tables like lti2_tp_tools, lti2_tp_registries, lti2_tp_registration which either store static seed data required for initial configuration or is required by the lti2 engine.
Line 89: Line 88:
[[File:Lti2.png|center|alt=Internal Registration Message Exchange between Expertiza and Moodle.|Internal messages exchanged during the registration procedure]]
[[File:Lti2.png|center|alt=Internal Registration Message Exchange between Expertiza and Moodle.|Internal messages exchanged during the registration procedure]]


When the Moodle administrator adds the registration(deployment) url in Moodle and launches it, a POST request is sent from Moodle to Expertiza. The POST request contains a URL called as "tc_profile_url" which can be GET requested by Expertiza to view all the capabilities of Moodle.
When the Moodle administrator adds the registration (deployment) url in Moodle and launches it, a POST request is sent from Moodle to Expertiza. The POST request contains a URL called as "tc_profile_url" which can be GET requested by Expertiza to view all the capabilities of Moodle.
Expertiza also advertises its own capabilities which are stored as initial configuration data(tool_profile) in lti2_tp_tools table. The Moodle administrator is taken to Expertiza where he interacts with the system and adds Expertiza as a provider. On the basis of this submitted information, Expertiza creates a "tool_proxy" which contains the capabilities and services provided by both, consumer as well as provider. The tool proxy is approved by the Moodle administrator and the Expertiza tool is activated for use by instructor and students.
Expertiza also advertises its own capabilities which are stored as initial configuration data (tool_profile) in lti2_tp_tools table. The Moodle administrator is taken to Expertiza where he interacts with the system and adds Expertiza as a provider. On the basis of this submitted information, Expertiza creates a "tool_proxy" which contains the capabilities and services provided by both, consumer as well as provider. The tool proxy is approved by the Moodle administrator and the Expertiza tool is activated for use by instructor and students.


'''2.  Student Clicking LTI Configured Expertiza Assignment in Moodle '''
'''2.  Student Clicking LTI Configured Expertiza Assignment in Moodle '''


After the Moodle administrator activates Expertiza as a tool, instructor/TAs can configure an Expertiza assignment easily as shown above. An Expertiza Assignment will then be visible to students who are registered for that course.
After the Moodle administrator activates Expertiza as a tool, instructor/TAs can configure an Expertiza assignment easily as shown [[#Usage|above]]. An Expertiza Assignment will then be visible to students who are registered for that course.
This is the flow diagram for the scenario when students clicks on an LTI configured Expertiza assignment in Moodle:
This is the flow diagram for the scenario when students clicks on an LTI configured Expertiza assignment in Moodle:
[[File:Lti3.png|center|alt=Student activating LTI link in Moodle.|Students activating LTI link in Moodle.]]
[[File:Lti3.png|center|alt=Student activating LTI link in Moodle.|Students activating LTI link in Moodle.]]


When student clicks on an LTI configured Expertiza Assignment, a POST request on the URL is sent along with assignment_id as a parameter. The POST request also contains Moodle authentication details of the user like the username, email, course, and organization. Using the Moodle authentication details, the user is authenticated on Expertiza. If student does not have an Expertiza account, an account will be created for him. If the user is not signed in or if a different user is signed in, the requesting user will be signed in using the Moodle authentication details(email). Also, the POST request will contain a hash value for the "lis_result_sourcedid" which will change for every user and for every assignment. It is needed further for sending grades back to Moodle and hence is stored in the "lis_assignment_user" table with the mapping of participant_id and assignment_id.
When student clicks on an LTI configured Expertiza Assignment, a POST request on the URL is sent along with assignment_id as a parameter. The POST request also contains Moodle authentication details of the user like the username, email, course, and organization. Using the Moodle authentication details, the user is authenticated on Expertiza. If student does not have an Expertiza account, an account will be created for him. If the user is not signed in or if a different user is signed in, the requesting user will be signed in using the Moodle authentication details (email). Also, the POST request will contain a hash value for the "lis_result_sourcedid" which will change for every user and for every assignment. It is needed further for sending grades back to Moodle and hence is stored in the "lis_assignment_user" table with the mapping of participant_id and assignment_id.


'''3.  Grade pass back from Expertiza to Moodle'''
'''3.  Grade pass back from Expertiza to Moodle'''


Instructor can assign grades for participants for an assignment as shown in the above steps. The grade submission triggers a PUT request from Expertiza to Moodle. This PUT request contains the "lis_result_sourcedid" which was initially stored in the "lti_assignment_users" table when user visited that particular assignment on Expertiza via Moodle. The PUT request also contains a grade score in the range of 0 to 1.0 which will automatically show up in Moodle once the request is successful.
Instructor can assign grades for participants for an assignment as shown in the [[#Usage|above steps]]. The grade submission triggers a PUT request from Expertiza to Moodle. This PUT request contains the "lis_result_sourcedid" which was initially stored in the "lti_assignment_users" table when user visited that particular assignment on Expertiza via Moodle. The PUT request also contains a grade score in the range of 0 to 1.0 which will automatically show up in Moodle once the request is successful.


=='''Troubleshooting'''==
=='''Troubleshooting'''==
Line 110: Line 109:
''' Consumer Key is invalid or does not exist! '''
''' Consumer Key is invalid or does not exist! '''


- This generally occurs when the "consumer key" parameter does not exist in the request when student clicks on an Expertiza Assignment in Moodle.
This generally occurs when the "consumer key" parameter does not exist in the request when student clicks on an Expertiza Assignment in Moodle.
- The root cause is that the Expertiza Tool is not properly configured and activated by the Moodle administrator.
The root cause is that the Expertiza Tool is not properly configured and activated by the Moodle administrator.


''' Grade pass-back does not working! '''
''' Grade pass-back does not work! '''


- This grade pass-back from Expertiza to Moodle is triggered when the instructor assigns a score to a team in the "Alternate View".
This grade pass-back from Expertiza to Moodle is triggered when the instructor assigns a score to a team in the "Alternate View".
- Grade pass-back does not work correctly when the tenant_key and tenant_secret which is sent along with the grade change request from Expertiza to Moodle is incorrect.
Probable reasons for the failure could be:
# Tenant_Key and Tenant_Secret passed along with the PUT request is incorrect or no longer working. Solution is to re-register Expertiza on Moodle.
# lis_result_sourcedid passed along with the PUT request is incorrect and belongs to some other participant-assignment mapping. Check the assignment-participant combination once more.


==External Links/References==
''' LTI Error on clicking an Expertiza Assignment '''


* IMS Global Learning Tools Interoperability (LTI) - http://www.imsglobal.org/activity/learning-tools-interoperability
Probable causes for the above error are:
* http://www.catb.org/esr/writings/taoup/html/ch04s02.html
# Assignment Id configured in Moodle for that assignment is missing or invalid. See [[#Usage|above]].
* http://www.artima.com/intv/dry3.html
# URL configured for Expertiza Assignment is incorrect. Check the URL configured for the assignment in Moodle.
* http://blogs.msdn.com/steverowe/archive/2008/05/15/design-principle-don-t-repeat-yourself.aspx
 
* http://en.wikipedia.org/wiki/Don't_repeat_yourself
=='''Future Scope'''==
* http://en.wikipedia.org/wiki/DRY_code
 
* http://c2.com/cgi/wiki?DontRepeatYourself
# We can probably synchronize the assignment deadlines from Expertiza and other LMSs. Since it is not provided out of the box in LTI, we may have to devise some other mechanism for a generic LMS solution or we could implement a Moodle specific solution.
* http://codebetter.com/blogs/jeremy.miller/archive/2007/03/21/The-Don_2700_t-Repeat-Yourself-Principle-and-the-Wormhole-Anti_2D00_Pattern.aspx
# Using LTI, we can implement the integration with other LMSs like Blackboard, Canvas etc.
* http://geekswithblogs.net/chrisfalter/archive/2008/03/07/refactor-to-dry.aspx
* http://debasishg.blogspot.com/2007/05/refactoring-unit-test-methods-to-speak.html


=='''External Links/References'''==


[1]Hunt, Andy and Thomas, Dave
* IMS Global Learning Tools Interoperability (LTI) - http://www.imsglobal.org/activity/learning-tools-interoperability
Keep It DRY, SHY, and Tell the Other Guy,
* Vital Source LTI Reference - http://github.com/vitalsource/LTI2-Reference
IEEE Software, vol. 21, no. 3, pp. 101-103, May/Jun 2004
* Moodle and LTI - http://docs.moodle.org/32/en/LTI_and_Moodle
PMID: 9917440; UI: 99117608.  
* IMS gem for LTI - http://github.com/instructure/ims-lti
* LTI Sample Code - http://www.imsglobal.org/learning-tools-interoperability-sample-code




[[CSC/ECE 517 Summer 2008/wiki2 Assignment|Back to the assignment page]]
[[CSC/ECE 517 Spring 2017|Back to the assignment page]]

Latest revision as of 15:55, 31 May 2018

Introduction

One reason why Expertiza has not been widely adopted is because of its inability to integrate with other Learning Management Systems (e.g., Moodle, Canvas and Blackboard). Also, when Expertiza is used along with other LMSs, the instructor is forced to carry out the same tasks on Expertiza as well as on the other LMSs. For example, when instructor assigns a grade to a student in Expertiza for an assignment, the same procedure has to be repeated on Moodle for assigning the grade in Moodle. Thus, there is lot of duplicate work which has to be carried out by the TAs and instructors because of the lack of synchronization between these two LMSs. This integration problem in Expertiza can be addressed making use of a new technology called as Learning Tools Interoperability(LTI)

LTI and Moodle

Learning Tools Interoperability (LTI) is a widely used standard for allowing educational applications to communicate with each other over the web. Moodle supports LTI. (Learning Tool Interoperability) Hence Moodle can communicate with any external tool that is LTI compliant. The idea is to make Expertiza LTI compliant by making Expertiza the LTI provider and Moodle as an LTI consumer. The goal of this project is to integrate Expertiza with Moodle, and add an LTI interface which will enable two way communication between Expertiza and Moodle.

Communication between LTI and Moodle.
Communication between LTI and Moodle


Features

LTI will allow us to perform these following tasks:

  1. Students and Instructors will automatically be "signed in" when they open Expertiza (assignment) from Moodle. Students need need not "sign in" into two LMSs (Moodle and Expertiza).Thus, LTI will enable single-sign-on.
  2. A student's account will be automatically created if he visits an Expertiza Assignment from Moodle. Hence, students need not create a separate Expertiza account themselves before starting any Expertiza assignment.
  3. Student need not be added as a participant by the instructor in Expertiza before he can start any Expertiza Assignment. Since student will visit the Expertiza assignment from a legitimate authorized source like Moodle, he/she will be automatically added as a participant for that assignment in Expertiza.
  4. When instructor assigns grades to a student for a particular assignment in Expertiza, the grade will automatically show up in the Moodle grade book. Instructor need not export grades from Expertiza to a csv file and then import the same in Moodle. It will be a one-click grade pass-back process.
  5. Provide a basic generic interface for synchronization with any other LMS like Blackboard or Canvas.

Usage

Moodle Administrator:

Moodle will have to first establish a contract with Expertiza and authorize Expertiza as a content provider to enable two-way communication. For this purpose, the Moodle site administrator will have to add Expertiza as an external tool by performing these steps:

  1. Sign into Moodle using Moodle administrator credentials.
  2. Go to Site Administration > Plugins > External Tools > Manage External Tool. You will see a page where you will have an option to Add a Tool using a URL.
  3. Enter the Expertiza URL for registration and click on "Add Tool". This Expertiza Registration URL (typically, http://[Expertiza Url]/lti2_tp/registrations/ where [Expertiza Url] = localhost:3000 or www.expertiza.com) will be provided by the Expertiza administrators. It is a standard URL which can be used by all the LMSs for authorizing Expertiza as an LTI provider.
  4. You will be taken to Expertiza Registration page on the Expertiza website where you will be provided a button to "Add Provider".
  5. When you click on "Add Provider", you may see a small popup on Moodle with permissions asking whether you want to activate "Expertiza".
  6. After clicking on "Yes" in the popup, when you see a green message on top saying "Successfully created new tool!", it denotes that the tool Expertiza has been added successfully.
  7. You will see that "Expertiza Assignment" is added as a Tool in Moodle. Click on "Activate" to activate "Expertiza Assignment" tool so that instructors can create their own assignments.
  8. When you see the status of "Expertiza Assignment" Tool as active, it means that "Expertiza" has been added and enabled successfully.

Instructor/TAs:

Before instructors and TAs can work with Expertiza in Moodle, the above step of Moodle administrator enabling Expertiza (as an external tool provider) has to be carried out as a pre-requisite. Later, the instructors and TAs can configure Expertiza assignments in their course website. The steps for the same are as follows:

  1. Sign into Expertiza using instructor/TA credentials.
  2. Go to Manage > Assignments using the top header.
  3. Edit the assignment you want to configure.
  4. Copy the assignment number of the assignment from the url on the address bar of the browser. For eg. if Url is http://[Expertiza Url]/assignments/781/edit where [Expertiza Url] = localhost:3000 or * www.expertiza.com, the assignment number is 781.
  5. Sign into Moodle using your instructor/TA credentials.
  6. Turn Editing Mode on and Click on Add New Activity.
  7. In the URL section, enter http://[Expertiza Url]/lti_assignment_users/ where [Expertiza Url] = localhost:3000 or www.expertiza.com.
  8. Under custom parameters, enter assignment_id = [assignment id] where [assignment id] is the earlier copied assignment id from Expertiza. For eg. Enter the following besides custom parameters, "assignment_id = 781". This step is very important.
  9. Fill in all the other details like the name of assignment etc. as required.
  10. Click on "Save and Return to Course".

After performing the above steps, the students and other users registered for this course will be able to see a new LTI configured Expertiza Assignment.

Instructors and TAs can also automatically pass back grade from Expertiza to Moodle. Note that this is only applicable for those LTI configured assignments which have been completed by the student after visiting the assignment via Moodle. The steps needed to carry out by the instructor for the grade pass-back feature are as follows:

  1. Sign into Expertiza using instructor/TA credentials.
  2. Go to Manage > Assignments using the top header.
  3. Click on "View Scores" from the actions column. i.e. click on the "View Scores" icon on the right hand side.
  4. Click on "Alternate View" besides any team for whom you want to assign the grades.
  5. You will see a page where you can assign grade and write comments for the team which you selected.
  6. Enter any grade up to 100, comment (optional) and click on "Save".

After clicking on Save, the grade should automatically be transferred to Moodle using a single click. The grades will be visible for only those students who had visited this LTI configured assignment from Moodle at least once.

Students:

Students will be able to seamlessly use other LMSs like Moodle with Expertiza. Student just needs an account in a single primary LMS like Moodle (LTI Consumer) and he/she will be automatically able to access Expertiza resources without even creating an explicit Expertiza account or signing into Expertiza. Student has to sign in to Moodle using his Moodle credentials. Then, he/she needs to click on any Expertiza assignment. This will automatically take the user to Expertiza and he/she can complete his assignment in Expertiza. Students can return to the assignment multiple times and need not complete the assignment in a single iteration. After the student completes the assignment, instructor can assign grades to the student whenever the instructor wishes to using the steps mentioned above. When the instructor assign grades in Expertiza, the grades will automatically be synchronized with the Moodle grade book.

Design and Implementation

Our task is to add an LTI interface to Expertiza. Expertiza will then act as an LTI content provider whereas Moodle will be the content consumer.

The design will include the creation of these following tables:

  1. lti_registration_wip - This table will store information about the several tenants (LMS like Moodle) which will attempt to add Expertiza as a tool provider along with the messages (profiles) they will exchange.
  2. lti_tenants - This table will store information about the tenants which will approve Expertiza as a provider and who will be properly authorized for communication with Expertiza.
  3. lti_assignment_user - This table will store a mapping of the assignment participant and lis_result_sourcedid. The lis_result_sourcedid is a hash value which will be used to send grade back to Moodle per student per assignment.

Also, we will make use of the VitalSource lti2 engine which will provide the basic functionalities needed for LTI communication. This engine will be mounted in the Expertiza's routes.rb and hence the routes defined in this engine are also applicable for Expertiza.

There are other tables like lti2_tp_tools, lti2_tp_registries, lti2_tp_registration which either store static seed data required for initial configuration or is required by the lti2 engine.

There are primarily three different work-flows in our implementation of an LTI interface for Expertiza:

1. Expertiza Registration on Moodle

Following is the pictorial representation of what happens during the initial registration phase.

Internal Registration Message Exchange between Expertiza and Moodle.
Internal messages exchanged during the registration procedure

When the Moodle administrator adds the registration (deployment) url in Moodle and launches it, a POST request is sent from Moodle to Expertiza. The POST request contains a URL called as "tc_profile_url" which can be GET requested by Expertiza to view all the capabilities of Moodle. Expertiza also advertises its own capabilities which are stored as initial configuration data (tool_profile) in lti2_tp_tools table. The Moodle administrator is taken to Expertiza where he interacts with the system and adds Expertiza as a provider. On the basis of this submitted information, Expertiza creates a "tool_proxy" which contains the capabilities and services provided by both, consumer as well as provider. The tool proxy is approved by the Moodle administrator and the Expertiza tool is activated for use by instructor and students.

2. Student Clicking LTI Configured Expertiza Assignment in Moodle

After the Moodle administrator activates Expertiza as a tool, instructor/TAs can configure an Expertiza assignment easily as shown above. An Expertiza Assignment will then be visible to students who are registered for that course. This is the flow diagram for the scenario when students clicks on an LTI configured Expertiza assignment in Moodle:

Student activating LTI link in Moodle.
Students activating LTI link in Moodle.

When student clicks on an LTI configured Expertiza Assignment, a POST request on the URL is sent along with assignment_id as a parameter. The POST request also contains Moodle authentication details of the user like the username, email, course, and organization. Using the Moodle authentication details, the user is authenticated on Expertiza. If student does not have an Expertiza account, an account will be created for him. If the user is not signed in or if a different user is signed in, the requesting user will be signed in using the Moodle authentication details (email). Also, the POST request will contain a hash value for the "lis_result_sourcedid" which will change for every user and for every assignment. It is needed further for sending grades back to Moodle and hence is stored in the "lis_assignment_user" table with the mapping of participant_id and assignment_id.

3. Grade pass back from Expertiza to Moodle

Instructor can assign grades for participants for an assignment as shown in the above steps. The grade submission triggers a PUT request from Expertiza to Moodle. This PUT request contains the "lis_result_sourcedid" which was initially stored in the "lti_assignment_users" table when user visited that particular assignment on Expertiza via Moodle. The PUT request also contains a grade score in the range of 0 to 1.0 which will automatically show up in Moodle once the request is successful.

Troubleshooting

Following are the common mistakes encountered during LTI communication and causes for the same:

Consumer Key is invalid or does not exist!

This generally occurs when the "consumer key" parameter does not exist in the request when student clicks on an Expertiza Assignment in Moodle. The root cause is that the Expertiza Tool is not properly configured and activated by the Moodle administrator.

Grade pass-back does not work!

This grade pass-back from Expertiza to Moodle is triggered when the instructor assigns a score to a team in the "Alternate View". Probable reasons for the failure could be:

  1. Tenant_Key and Tenant_Secret passed along with the PUT request is incorrect or no longer working. Solution is to re-register Expertiza on Moodle.
  2. lis_result_sourcedid passed along with the PUT request is incorrect and belongs to some other participant-assignment mapping. Check the assignment-participant combination once more.

LTI Error on clicking an Expertiza Assignment

Probable causes for the above error are:

  1. Assignment Id configured in Moodle for that assignment is missing or invalid. See above.
  2. URL configured for Expertiza Assignment is incorrect. Check the URL configured for the assignment in Moodle.

Future Scope

  1. We can probably synchronize the assignment deadlines from Expertiza and other LMSs. Since it is not provided out of the box in LTI, we may have to devise some other mechanism for a generic LMS solution or we could implement a Moodle specific solution.
  2. Using LTI, we can implement the integration with other LMSs like Blackboard, Canvas etc.

External Links/References


Back to the assignment page