Extempore LTI allows an existing LMS gradable Assignment created by an instructor to be linked to an existing gradable Extempore Assessment. This established link will direct students directly to the Extempore Assessment when they click on that assignment in the LMS. After the students complete the Extempore Assessment and instructors grade the student submissions in Extempore, grades can then be synced to the LMS Gradebook.
There are 3 basic steps required to use Extempore LTI:
1. LTI Setup:
Install the Extempore LTI Application in the LMS. Extempore will supply a consumer key and secret to use for setting up the LTI app. We do not require custom parameters or placements, so you will find this setup very easy and similar to how other LTI Apps are configured.
The launch URL that you will need during setup:
2. LMS Assignment/Extempore Assessment Connection
Establishing this link is how students can be automatically taken to the Extempore Assessment when they click on your Assignment in the LMS System.
3. Grade Sync
This powerful Extempore LTI Feature syncs all graded student submissions in Extempore with your LMS Gradebook. This is a ‘push’ operation meaning Extempore LTI does not pull any data from the LMS Gradebook. Grades are pushed from Extempore to the LMS. The only grading data the Extempore receives from the LMS are parameters present in the LTI launch request needed for the grad sync feature (see the end of the article for the exact parameter names we use).
Students register for the Extempore Class using the Extempore Class invitation link provided to the student by the instructor in the same manner as they do when Extempore is used as a Standalone Application outside of the LMS.
Instructor creates an Assignment in the LMS. An Extempore login dialog displays prompting for Extempore account credentials.
A list of available Extempore Assessments within the instructors account is displayed along with a button beside allowing the instructor to choose which Extempore Assessment they would like to link to the LMS Assignment. Simply clicking 'Connect' will link the Extempore Assessment to the LMS Assignment.
When students click on the same LMS assignment, They will use their Extempore Account credentials to login to Extempore. This login is only required once and is how we establish a link between the LMS User and the student's extempore account. Note: The students must click on the LMS assignment and login so that Extempore LTI can capture required LTI parameters needed for our grade sync feature.
When the Assignment Links in the LMS are clicked by either a student or instructor, we check the standard role LTI Parameter (ex: Instructor, Learner) to determine whether the Extempore Instructor Portal or the Extempore Student Portal should be displayed within the frame of the LMS.
Extempore LTI Technical Notes:
LTI 1.1 Specification
Instructor application - C# .net 4.5 ASP.NET MVC4
Student Platform - Angular/NodeJS
Specific LMS API’s are not used, only LTI standard parameters.
No LMS Placements or menu items are added.
LTI Library for .NET published by Andy Miller is leveraged for authentication and grade passback. This library is widely adopted. and in use by many LTI apps today.
3 Extempore/LMS integration points(Authentication, LMS Assignment/Extempore Assessment Linking, and Posting Grades to LMS(Using LTI Outcomes Service) from within Extempore)
Authentication - The LTI request is validated first to determine whether the request is an LTI request(reading the lti_version and lti_message_type parameter values. When this validation passes, additional LTI parameters are validated that are required to be present(oauth_signature, oauth_consumer_key, oauth_timestamp). The oauth_consumer_key LTI Parameter value is then used to look up the secret stored within Extempore for that LTI Consumer. A signature is generated by utilizing the LTI Library using the secret that Extempore has on record for that specific consumer. The LTI incoming signature value in oauth_signature is then compared to the signature generated by the LTI library. If the signatures match, then the LTI request is granted access to the resource.
LTI user_id parameter value is associated with an Extempore account upon first authentication attempt by an instructor or student. An Extempore authentication dialog is displayed which prompts the student or instructor to enter their Extempore account credentials. Upon successful authentication into Extempore, the LTI user_id from the LMS is persisted in the database linking it to the Extempore account. Since this is persisted future clicks on the LMS assignment will no longer prompt for Extempore authentication and the student or instructor is automatically granted access and logged into Extempore.
LTI resource_link_id parameter is used to link the LMS assignment to an Extempore Assessment. This value is obtained from the LTI request by the Extempore Launch endpoint when the instructor clicks on the Assignment in the LMS and is persisted when the instructor connects the Extempore Assessment by clicking the Connect button from the list of Assessments.
LTI lis_outcome_service_URL and lis_result_sourceid parameter values are read and persisted when a STUDENT clicks on the Assignment in the LMS. This gives Extempore LTI the location of the student’s gradebook within the LMS and facilitates the grade sync feature. The LTI Outcomes Service is utilized giving the instructor the ability to post grades to the LMS gradebook from within the Extempore application after student submissions have been graded.