sellquiz
Version:
An open source domain-specific language for online assessment
68 lines (56 loc) • 2.47 kB
HTML
<!-- Minimum Working Example (MWE) to embed SELL questions into your website -->
<html lang="de">
<head>
<title>SELL-DEV Test Website</title>
<meta charset="utf-8">
<link rel = "stylesheet" href = "node_modules/bootstrap/dist/css/bootstrap.min.css" />
<script>MathJax = { loader: {load: ['input/asciimath', 'output/svg', 'ui/menu'] }, };</script>
<script type="text/javascript" id="MathJax-script" async src="node_modules/mathjax/es5/startup.js"></script>
<script src="node_modules/mathjs/lib/browser/math.js" type="text/javascript"></script>
<script src="build/js/sellquiz.min.js?date=$NOW$"></script>
</head>
<body>
<br/>
<div id="container" class="container">
<div id="question">
<h3 id="question-title"></h3>
<hr/>
<div id="question-body"></div>
<hr/>
Feedback / Error-Log:
<div id="question-feedback"></div>
Question score: <span id="question-score">0</div>
<hr/>
<button type="button" onclick="evalQuestion();">evaluate</button>
</div>
</div>
</body>
<script>
let code = `Addition
x, y in { 2, 3, ..., 10 }
Calculate $x + y = #(x + y)$
`;
// ===== LOW LEVEL API =====
let q_title = document.getElementById("question-title");
let q_body = document.getElementById("question-body");
let q_feedback = document.getElementById("question-feedback");
let q_score = document.getElementById("question-score");
sellquiz.setLanguage("en");
let qID = sellquiz.createQuestion(code);
if(qID < 0)
alert.log(sellquiz.getErrorLog());
q_title.innerHTML = sellquiz.getQuestionTitle(qID);
q_body.innerHTML = sellquiz.getQuestionBody(qID);
sellquiz.setQuestionHtmlElement(qID, q_body);
function evalQuestion() {
sellquiz.readStudentAnswersFromHtmlElements(qID);
if(sellquiz.evaluateQuestion(qID) == false)
console.log("evaluation of question failed");
sellquiz.writeFeedbackToHtmlElements(qID);
q_feedback.innerHTML = sellquiz.getFeedbackText(qID);
sellquiz.disableInputFields(qID);
q_score.innerHTML = sellquiz.getScore(qID);
}
</script>
</html>