0

I in the process of trying to integrate the TinCan .NET wrapper into my LMS where a user can already upload courses in our own custom format, SCORM and coming now TinCan.

I have managed to get the upload and playback of the TinCan working and I am now at the point where on my Course/Index page I have a list of enrolled courses, available courses, and completed courses. For our own format and for the SCORM courses I capture enrollment and progress in classes that are then stored to the database.

How can enrollment and progress be tracked for the tin courses for a specific user using the LRS? Is this possible?

Is there any facility in the REST API that would allow me to track if the user has completed the activity?

Jay
  • 3,012
  • 14
  • 48
  • 99
  • Jay, When it comes to SCORM, Tin Can, AICC, LTI, etc; None of these learning standards include specifications for anything beyond the communication step. These specifications all cover how a learning module should communicate to an LMS (or Host System) but they make no requirements on how any of that data will be persisted to a database or presented to the users of the LMS. Moreover, I'd expect any course catalog in an LMS to be shared amongst every learning standard as well as a single grade book for all learning standards. – TJ Seabrooks Jun 06 '14 at 13:50
  • The details of that implementation are up to your LMS and that data won't be stored directly in the LRS. The Tin Can LRS will be storing Statement & State data primarily. This data will likely need to be condensed down into a completion record for your gradebook. Your Course List will be stored entirely in your LMS's internal tables. – TJ Seabrooks Jun 06 '14 at 13:54
  • Hi Thomas, I understand fully what you are saying but my question was in regards to how I could use the rest API to return whether an activity has been completed for a particular user, upon launch this sort of check seems to be done as it is able to track to the last place that I was in the TinCan course – Jay Jun 06 '14 at 14:02
  • To do that well you need to query the Tin Can endpoint for all of the statements about an Actor + Activity pair and look at every statement. This is because the LRS doesn't store a "compiled" view of that result. You many have several statements that set complete, passed, score. Each statement can set 1 of those or multiple. You'll need to scan every statement and overwrite your internal results value as you find statements that overwrite a previous value. – TJ Seabrooks Jun 06 '14 at 14:06
  • I think that I can query on the activity object itself just not sure how to call the query or what values that I need to pass as parameters, I know the launch string needed endpoint, auth, actor so I guess query might be similar, any idea of the format of URL? – Jay Jun 06 '14 at 14:20
  • https://github.com/adlnet/xAPI-Spec/blob/master/xAPI.md#stmtapiget – TJ Seabrooks Jun 06 '14 at 14:27
  • Format will match the way you do the POST to send statements. Keep in mind, passing the activity ID is going to give you every single statement about that activity. You still need to scan through every statement. – TJ Seabrooks Jun 06 '14 at 14:28

0 Answers0