V1 Templates in Ekstep
This document contains details about the older v1 templates available in ekstep. It provides information about how to
- Create and upload templates.
- Create questions(MCQ, FTB and MTF) in ekstep portal.
- How to debug template issues.
Types of templates
- MCQ
- FTB
- MTF
How to create questions using templates
- Login to dev.ekstep.in or qa.ekstep.in
- Click on Resources → Question Bank'
- It will show you the list of available templates and the preview
- To create a new question, Click on Add Question
- And select a template and click start creating
- For FTB,
- Enter the question text, the question text may be the title for the question or may be the question itself.
- Enter the answer text, the answer text can be single or multiple
- It may have the additional Model field to be filled for some templates.
- For some templates, the questions and answers can be generated randomly.
- For MCQ,
- Enter the question text, the question text may be the title for the question or may be the question itself.
- Enter the answer text, the answer text can be single or multiple
- It may have the additional Model field to be filled for some templates.
- For some templates, the questions and answers can be generated randomly.
- For MTF,
- Enter the question text, the question text may be the title for the question or may be the question itself.
- Enter the answer text, the answer text can be single or multiple
- It may have the additional Model field to be filled for some templates.
- For some templates, the questions and answers can be generated randomly.
- For FTB,
- Click on "save" and "save & create another"
- The created question will be available in the question bank.
List of available v1 templates in QA and Production
- Measuring Angles
- Number Chart
- Place Value In Numbers
- MCQ - General
- Comparing Angles
- Horizontal Operations with Place Value Models
- Vertical Operations with Place Value Models
- Comparing Numbers
- Place Value Bundles
- Comparing Size
- Counting Objects
- Comparing Quantities
- Place Value Models - Learn
- Text Question, Text Options (Vertical)
- Text + Image Question, Text or Image Options
- Counting with Place Value Models - 1
- Counting with Place Value Models - 2
- Image Question, Image or Audio Option
- Mcq long text
- Sequencing
- TEXT AND IMAGE MATCHING (HORIZONTAL)
- Text and Image Matching (Vertical)
- Reordering Letters & Numbers
- Sorting Template
- Reordering Words
- Operations with images
- Fill in the Blanks (with Image) - Word Answers
- Vertical Operations
- Division
- Addition/Subtraction (with place value markers)
- Addition/Subtraction
- Multiplication (with parametrization)
- Fill in the Blank - Number Answers
- Multiplication
- Sudoku
- Multiple Blanks
- Division
- Vertical Operations
- Fill in the Blank (sentence) - Number Answers
- Custom Keyboard
How to debug templates in browser
- Clone the content-player(https://github.com/project-sunbird/sunbird-content-player) repo of sunbird.
- Inside content-player → player → public → fixture-stories, Add your template folder containing (index.ecml, assets etc)
- Inside content-player → player → app-data → fixture-content-list.json, Add the below object structure to the json object result → contnet
{
"identifier": "template-name",
"mimeType": "application/vnd.ekstep.ecml-archive",
"localData": {
"questionnaire": null,
"appIcon": "fixture-stories/template_folder_name/logo.png",
"subject": "literacy_v2",
"description": "epub - Beyond Good and Evil",
"name": "Custom Eval",
"downloadUrl": "",
"checksum": null,
"loadingMessage": "Without requirements or design, programming is the art of adding bugs to an empty text file. ...",
"concepts": [{
"identifier": "LO1",
"name": "Receptive Vocabulary",
"objectType": "Concept"
}],
"identifier": "org.ekstep.customeval",
"grayScaleAppIcon": null,
"pkgVersion": 1
},
"isAvailable": true,
"path": "fixture-stories/custom_eval"
},
- In the browser, click on the template logo you added for the template, the player will show the template, If the ECML is valid.
- Inside content-player → player, Open command prompt and type "node app.js" and press enter.
- In the browser type "localhost:3000".
How to create templates
- Create a folder with the template name. The template folder structure should contain
- assets
- images.png
- widgets
- css
- index.css
- js
- index.js
- css
- items
- assessment.json
- index.ecml
- assets
- Assets folder contains images required for the template
- Widgets folder contains additional js and css required for the template
- Items folder contains assessment.json file which is used by the template
- index.ecml contains the ECML for the template. The basic structure of the template is
- <theme id="theme" startStage="splash" ver="0.2">
<manifest>
<media id="id" src="image.png" type="image"/>
</manifest>
<stage id="baseStage" preload="true">
<image asset="image"/>
</stage>
<controller id="assessment" name="assessment" type="items"/>
<template id="tempalate_name"></template>
<stage h="100" id="splash" iterate="assessment" var="item" w="100" x="0" y="0" preload="true">
<param name="next" value="stage1"/><g h="88" w="76" x="12" y="0">
</theme>
<embed template="item" var-item="item"/>
</g>
</stage>
<stage h="100" id="stage1" w="100" x="0" y="0" preload="true">
<param name="next" value="stage2"/>
<param name="previous" value="splash"/>
<image assest="image">
</stage>
<stage h="100" id="stage2" w="100" x="0" y="0" preload="true">
<param name="previous" value="stage1"/>
<image assest="image">
</stage>
- <theme id="theme" startStage="splash" ver="0.2">
- Tags used in ECML
- theme - Which is the entry point of the ecml. It should specify the id as theme and the stage which is to be rendered first.
- manifest - it contains the media tags of medias(images, audio), js and css files used inside the template
- media - it is used to include the medias(images, audio), js and css files used inside the template
- stage - this tag specifies each screen inside the renderer. One can add multiple stages. The start stage should be "splash" and should be included in the theme tag. If you want to include the json add attribute iterate and var = item
- embed - Embed tag is used to embed the template inside the stage
- param - name attribute of param can be next, previous to specify the navigation to the next and previous stages.
- controller - this tag is used to include the json file inside the items folder. specify the json file name as id and name attribute.
- template - contains unique id for the template and the tag contains various tags which specify the UI for the template.
- assessment.json
- For MCQ
- {
"identifier": "template_name",
"title": "template_name",
"total_items": 1,
"shuffle": false,
"max_score": 1,
"subject": "LIT",
"item_sets": [{
"id": "set_1",
"count": 1
}],
"items": {
"set_1": [{
"identifier": "protractor.que1",
"qid": "protractor.que1",
"type": "MCQ",
"template_id": "template_name",
"template": "template_name",
"title": "Question text here",
"question_audio": "",
"question": "Question_title",
"model" : {
"angleRange":"0-180" // for example, and it can be anything depands on the model
},
"question_image": "angle_img",
"options": [{
"value": {
"type": "mixe
- {
- For MCQ