...
Port the current implementation from Sunbird CB to Sunbird ED. This will allow Sunbird to play and track SCORM files and their completion.
SCORM file upload -
Create content API (api/v1/create/content or update) along with content metadata should store following values against the content
Code Block 'scormValues': { 'entry': <First SCO to be launched>, 'version': <scorm2004/SCORM_1.2- to decide which API to be used> 'grademethod': <Grading method to give score to the user in case of multiple attempts> }
Tables to be populated after reading
imsmanifest.xml
file. (here)
Code Block |
---|
onScormPackageUpload(zipPath) {
if (!file_exists(zipPath . '/imsmanifest.xml')) {
throw_error('uploaded zip is not a scorm file')
} else {
readIMSManifestFile(zipPath . '/imsmanifest.xml')
}
}
function readIMSManifestFile($manifestfile) {
1. Load and read the imsmanifest.xml file
2. Things needed to be stored against the content
a. scorm version -> Read the manifest->metadata->shemaversion
b. The first sco to be set as 'entry' against the content
3. Poulate the #__scorm_scoes table and #__scorm_scoes_data after reading all the items and resources
} |
Table #__scorm_scoes
id | bigint(10) | AUTO_INCREMENT |
content_id | bigint(10) | |
title | varchar(255) | |
scormtype | varchar(5) | |
manifest | varchar(255) | |
organization | varchar(255) | |
parent | varchar(255) | |
identifier | varchar(255) | |
launch | longtext |
Table #__scorm_scoes_data
id | bigint(10) | AUTO_INCREMENT |
sco_id | bigint(10) | |
name | varchar(255) | |
value | longtext |
SCORM consumption through player
Tracking user
Here for the first step we will store all the data provided by scorm in the database and use it for tracking completion and passing status of a student (populate scorm tracking tables given in here)
Generating telemetry
...