Skip to content

ihowson/xb_scorm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is it?

Experimental XBlock for hosting a SCORM content object. Currently it has built in trivial quiz for testing purposes, but eventually it will allow the user to upload an arbitrary SCORM zipfile.

Resources

  • See here for an overview of the SCORM API.
  • See the issues page for (an incomplete list of) work that needs to be done.

Contributing

  1. Fork.
  2. Comment on the issue related to the thing you want to fix, so others know you're working on it. If you want to do something that doesn't have an issue associated with it, create an issue.
  3. Work on each feature/issue in a separate branch
  4. Submit pull request(s)

Usage

  1. Install the XBlock. The module name for advanced_modules is xb_scorm.
  2. Upload your SCORMs (see below)
  3. Insert them into a course using Studio

Uploading SCORMs

Right now, there is no nice GUI to do this. The XBlock looks under /edx/app/edxapp/edx-platform/scorm for potential SCORMs to display. They must be unzipped. The folder structure looks like:

/edx/app/edxapp/edx-platform/scorm/
  |
  |--> some_scorm/
  |     |
  |     |--> ... some files ...
  |     |--> imsmanifest.xml
  |     |--> ... more files ...
  |
  |--> another_scorm/
        |
        |--> ... files ...
        |--> imsmanifest.xml

It looks for an imsmanifest.xml file inside the directory. It only looks one directory deep, so the above structure must be followed EXACTLY.

Configuration

On Devstack, modify /edx/app/edxapp/edx-platform/lms/urls.py:

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

    # SCORM content (NEW)
    urlpatterns += static('/scorm/', document_root='/edx/app/edxapp/edx-platform/scorm/')

    # in debug mode, allow any template to be rendered (most useful for UX reference templates)
    urlpatterns += url(r'^template/(?P<template>.+)$', 'debug.views.show_reference_template'),

Also modify /edx/app/edxapp/edx-platform/mms/urls.py:

if settings.DEBUG:
    try:
        from .urls_dev import urlpatterns as dev_urlpatterns
        urlpatterns += dev_urlpatterns
    except ImportError:
        pass

    # SCORM content (NEW)
    from django.conf.urls.static import static
    urlpatterns += static('/scorm/', document_root='/edx/app/edxapp/edx-platform/scorm/')

In production, add to /edx/app/nginx/sites-enabled/lms:

location ~ ^/scorm {
      root /edx/app/edxapp/edx-platform/;
}

(All of this static location business will go away when someone gets time to fix it.)

If this filesystem location doesn't work for you, you can change it in xb_scorm.py near the top.

Notes

As the content is simply 'dumped on a web server', any of it can be viewed by anyone who knows the URL. There are no permissions or security yet.

About

XBlock for edX that displays SCORM content

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 72.9%
  • Python 26.8%
  • CSS 0.3%