Moodle Expertiza Integration: Difference between revisions
No edit summary |
|||
Line 4: | Line 4: | ||
=='''LTI and Moodle'''== | =='''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. | [http://www.imsglobal.org/activity/learning-tools-interoperability 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. | 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. | ||
[[File:Lti1.gif|center|alt=Communication between LTI and Moodle.|Communication between LTI and Moodle]] | [[File:Lti1.gif|center|alt=Communication between LTI and Moodle.|Communication between LTI and Moodle]] |
Revision as of 04:24, 2 May 2017
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.](/images/f/f9/Lti1.gif)
Features
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.
- 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 taking up 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.
- 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 process.
- 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 administrator will have to add Expertiza as an external tool by performing these steps:
- 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.
- 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.
- You will 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".
- 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.
- You will see that "Expertiza Assignment" is added as a Tool in Moodle. Click on "Activate" to activate "Expertiza Assignment" so that instructors can create their own assignments.
- 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 administrator enabling Expertiza(as an external tool) 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:
- Sign into Expertiza using instructor/TA credentials.
- Go to Manage > Assignments using the top header.
- 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.
- Sign into Moodle using your instructor/TA credentials.
- 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.
- 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"
The above step is very important.
- Fill in all the other details like the name of assignment etc. as required.
- 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:
- Sign into Expertiza using instructor/TA credentials.
- Go to Manage > Assignments using the top header.
- Click on "View Scores" from the actions column. i.e. click on the "View Scores" icon on the right hand side.
- 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.
- 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 will be automatically be 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:
- 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_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.
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.
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.](/images/2/25/Lti2.png)
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.](/images/0/02/Lti3.png)
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 working!
- 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.