GithubHelp home page GithubHelp logo

herrklein / qti-player-etavener Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arleyschrock/qti-player

0.0 2.0 0.0 2.47 MB

QTI XML to HTML conversion with Polymer web components

JavaScript 42.30% XSLT 1.55% HTML 24.23% CSS 31.86% Shell 0.06%

qti-player-etavener's Introduction

QTI Content Player

Project Brief

  • Convert a large amount of printed content to digital e-learning solution.
  • Not to be server side - to be used in an unknown LMS Platform
  • Data to be in the QTI XML format - a standard for e-learning assessment data
  • Content to be Interactive and engaging but quick to produce

QTI Specification

A standard in e-learning. Utilising a standard that already exists, well documented and has been accepted in the industry. https://www.imsglobal.org/question/qtiv2p2/QTIv2p2-ASI-InformationModelv1p0/imsqtiv2p2_asi_v1p0_InfoModelv1p0.html

Research

Before we started actual production we need to find the correct technical solution. We explored the following technologies:

  • OO Javascript - a custom framework converting XML to HTML manually.
  • AngularJS - attaching directives to xml nodes (https://github.com/etavener/qti-player-angular/)
  • XSLT - manipulating XML
  • Polymer - Using the shadowDOM to render the XML as HTML web components.

Challenges

During the research phase we faced the following challenges:

  • AngularJS directives could only translude in one direction.
  • AngularJS with OO Javascript is not elegant.
  • XSLT is an old and complicated way of converting XML
  • QTI XML although very well documented is a beast and very strict.
  • QTI XML contains more than the presentation. It contains not visual data including variables, event handling and response processing.
  • Polymer web components are very new
  • A custom OO Javascript method was not transparent or easy for other developers

Solution

We decided that Polymer was an ideal solution because:

  • We could use it with XSLT (to create the polymer node names)
  • Its a standard - web components
  • We could utilise the shadowDOM and keep the original XML
  • We could develop OO Javascript components that inherit other components. This means we could have an component inheritance similar to that in the QTI specification.

Examples

Templates (T001 to T117) - Just change the link and refresh.

XML Data: http://www.ewantavener.co.uk/demo/qti-player/templates/T001.xml Rendered example: http://www.ewantavener.co.uk/demo/qti-player/app/index.html?id=T001

XML Data: http://www.ewantavener.co.uk/demo/qti-player/templates/T117.xml Rendered example: http://www.ewantavener.co.uk/demo/qti-player/app/index.html?id=T117

qti-player-etavener's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.