Why QuML Player?
A player built on open-source technology to natively play QuML Questions & Question Sets. This player will be optimised to play content faster and support building capabilities much faster in future.
As a User I should have a player to plug & Play the Questions from various data source. Embeddable player in content. For example, questions from various Question banks stored in QuML format.
Should work as open standard for rendering of question banks with customised User Experience. So, someone should be able to build a custom player using these guidelines and open-source QuML player library. This player's architecture could be leveraged to build other such players for other content types.
As a User I should have a native playing experience of playing content across all device platforms (Desktop,Mobile & Tablet). So content would respond to various consumption channel's form factor and resolutions. This player would also have richer UI / UX such as new navigation, responsiveness, orientation support (portrait / landscape). For example, playing MCQ in portrait mode.
It would support use-cases such as Quiz, Mock Test, Timed Test, Training Assessment, and more.
Player capable of relatively lighter deployment capability is desirable. This we will achieve by migrating / complying to NPM standards. This would make player size less (light-weight) and make deployment cycles faster & lighter (internal dev team).
Player should be brand-able based on minimalistic input. So we can have multiple themes of the player to visually differentiate for various use-cases / user-groups. This player would support configurations to enable / disable certain capabilities.
Problems with the current approach .. security, iframe, deprecated
It could have capabilities (in-future) such as:
- Question Ordering such as branching logic,
- Player would support dynamically fetch sets of exam based on a blueprint
- Animation
- Theme
- Time Keeping. Timer - enforced exit or stopwatch
- Behaviour Metadata
- Attempt Metadata
- Score Board
- Receiver of all Event Emitters of Hosted Templates
- Loader
- Telemetry wrapper for all emitted events
- Common Latex library which can process inline latex content
- Shuffle questions to give equivalent yet different test
- Instruction (start) page
- Summary (end) page
- Report card for detailed question level results
- ...
Beneficiaries / Stakeholders
- Developer community
- Building on open-source standards allows us to attract more contributors
- Ease of development due to latest tech stack and popular industry technologies
- Users
- Faster player
- Better User experience
- Lightweight device storage requirements for player installation
- Help reduce content size due to template bundling
- Product & Business team
- Cost / Time / Effort of development would reduce
- Faster feature dev
- Customisations supported - various use-cases supported by one player
Discussion Points
Forward/Backward Compatibility of Questions Ex: Introduction of new capability would end us up with introducing new player version for content.
Introduction of New Question Types - introducing a new question type (new evaluation logic) requires you to upgrade the player or supports only..
Evaluation logic 1 : Select / Multi-select would support various MCQ templates
Evaluation logic 2 : Pairs would support various templates such as MTF, Reordering, Sequencing, Memory game
Evaluation logic 3 : Text input would support FTB, ordered FTB, unordered FTB,
New evaluation logic requires player upgrade. Older players will not support these
Download dependencies if compatibility is broken and play as iframe; and in the upcoming release upgrade the player
What will QuML player be capable of?
List of capabilities and NFRs
How will these capabilities be built?
Tech design
When will it be built?
Versions and Release plan