App Developer - Integrate App Notes

How to integrate 3rd party apps with LMS:

  • App should have an endpoint that can be accessed via the "Start Lesson" button on the LMS. That endpoint will receive a "student" query param that corresponds to the UID of the activity session. Apps will use that UID to communicate back to the LMS. That endpoint can also receive an "anonymous" flag indicating an anonymous session.

  • Include the 'empirical-angular' npm module. It defines a set of services that help with LMS integration.

  • App should mark the activity session as "started" when the user begins
    Other options include:

    • LMS marks started_at and app marks completed_at
    • app stores started_at and completed_at and only sends both fields when the activity is complete
      (note that this is not currently being done on Quill-Writer)
  • App should save concept tag results as it goes, for example:

ConceptTagResult.save(sessionId, {
concept_class: 'Typing Speed',
concept_tag: 'Typing Speed',
wpm: TypingSpeed.wordsPerMinute
}).then(function() {
TypingSpeed.reset();
console.log('saved typing speed concept tag');
});

  • App should mark the activity session as finished by calling ActivitySession.finish and including a JSON payload. See the below example:

ConceptTagResult.findAsJsonByActivitySessionId(activitySessionId).then(function formatRequestData(resultsJson) {
var putData = {
percentage: 1,
concept_tag_results: resultsJson
};
return ActivitySession.finish(activitySessionId, putData);
});
}

Additional Notes:

  • Keep in mind that anonymous sessions should not communicate back to the LMS, so the best thing to do is to guard all the above code with an "is anonymous session" status check.

  • There's no way to create new concept tags and concept classes at the moment. If you need something that's not already in the Quill DB, talk to somebody.