mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
263 lines
8.2 KiB
TypeScript
263 lines
8.2 KiB
TypeScript
import Template, { ErrorTemplate } from './templates';
|
|
import { GIFTQuestion } from './templates/types';
|
|
import './styles.css';
|
|
|
|
const multiple: GIFTQuestion[] = [
|
|
{
|
|
type: 'MC',
|
|
title: null,
|
|
stem: { format: 'markdown', text: "Who's buried in Grant's \r\n tomb?" },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: {
|
|
format: 'moodle',
|
|
text: 'Not sure? There are many answers for this question so do not fret. Not sure? There are many answers for this question so do not fret.'
|
|
},
|
|
choices: [
|
|
{
|
|
isCorrect: false,
|
|
weight: -50,
|
|
text: { format: 'moodle', text: 'Grant' },
|
|
feedback: null
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: 50,
|
|
text: { format: 'moodle', text: 'Jefferson' },
|
|
feedback: null
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: 50,
|
|
text: { format: 'moodle', text: 'no one' },
|
|
feedback: null
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'MC',
|
|
title: null,
|
|
stem: { format: 'moodle', text: "Grant is _____ in Grant's tomb." },
|
|
hasEmbeddedAnswers: true,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'buried' },
|
|
feedback: null
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'entombed' },
|
|
feedback: null
|
|
},
|
|
{
|
|
isCorrect: false,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'living' },
|
|
feedback: null
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'TF',
|
|
title: null,
|
|
stem: { format: 'moodle', text: "Grant is buried in Grant's tomb." },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
isTrue: false,
|
|
falseFeedback: null,
|
|
trueFeedback: null
|
|
},
|
|
{
|
|
type: 'Short',
|
|
title: null,
|
|
stem: { format: 'moodle', text: "Who's buried in Grant's tomb?" },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'no one " has got me' },
|
|
feedback: null
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'nobody' },
|
|
feedback: null
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'Numerical',
|
|
title: null,
|
|
stem: { format: 'moodle', text: 'When was Ulysses S. Grant born?' },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
choices: {
|
|
type: 'range',
|
|
number: 1822,
|
|
range: 5
|
|
}
|
|
},
|
|
{
|
|
type: 'Matching',
|
|
title: null,
|
|
stem: {
|
|
format: 'moodle',
|
|
text: 'Match the following countries with their corresponding capitals.'
|
|
},
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
matchPairs: [
|
|
{
|
|
subquestion: { format: 'moodle', text: 'Canada' },
|
|
subanswer: 'Ottawa'
|
|
},
|
|
{
|
|
subquestion: { format: 'moodle', text: 'Italy' },
|
|
subanswer: 'Rome'
|
|
},
|
|
{
|
|
subquestion: { format: 'moodle', text: 'Japan' },
|
|
subanswer: 'Tokyo'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'MC',
|
|
title: "Grant's Tomb",
|
|
stem: { format: 'moodle', text: "Grant is _____ in Grant's tomb." },
|
|
hasEmbeddedAnswers: true,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: false,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'buried' },
|
|
feedback: { format: 'moodle', text: 'No one is buried there.' }
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'entombed' },
|
|
feedback: { format: 'moodle', text: 'Right answer!' }
|
|
},
|
|
{
|
|
isCorrect: false,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'living' },
|
|
feedback: { format: 'moodle', text: 'We hope not!' }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'MC',
|
|
title: null,
|
|
stem: { format: 'moodle', text: 'Difficult multiple choice question.' },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: false,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'wrong answer' },
|
|
feedback: { format: 'moodle', text: 'comment on wrong answer' }
|
|
},
|
|
{
|
|
isCorrect: false,
|
|
weight: 50,
|
|
text: { format: 'moodle', text: 'half credit answer' },
|
|
feedback: { format: 'moodle', text: 'comment on answer' }
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'full credit answer' },
|
|
feedback: { format: 'moodle', text: 'well done!' }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'Short',
|
|
title: "Jesus' hometown (Short answer ex.)",
|
|
stem: { format: 'moodle', text: 'Jesus Christ was from _____ .' },
|
|
hasEmbeddedAnswers: true,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: { format: 'moodle', text: 'Nazareth' },
|
|
feedback: { format: 'moodle', text: "Yes! That's right!" }
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: 75,
|
|
text: { format: 'moodle', text: 'Nazereth' },
|
|
feedback: { format: 'moodle', text: 'Right, but misspelled.' }
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: 25,
|
|
text: { format: 'moodle', text: 'Bethlehem' },
|
|
feedback: {
|
|
format: 'moodle',
|
|
text: 'He was born here, but not raised here.'
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'Numerical',
|
|
title: 'Numerical example',
|
|
stem: { format: 'moodle', text: 'When was Ulysses S. Grant born?' },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null,
|
|
choices: [
|
|
{
|
|
isCorrect: true,
|
|
weight: null,
|
|
text: {
|
|
type: 'range',
|
|
number: 1822,
|
|
range: 0
|
|
},
|
|
feedback: { format: 'moodle', text: 'Correct! 100% credit' }
|
|
},
|
|
{
|
|
isCorrect: true,
|
|
weight: 50,
|
|
text: {
|
|
type: 'range',
|
|
number: 1822,
|
|
range: 2
|
|
},
|
|
feedback: {
|
|
format: 'moodle',
|
|
text: 'He was born in 1822. You get 50% credit for being close.'
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'Essay',
|
|
title: 'Essay Example',
|
|
stem: { format: 'moodle', text: 'This is an essay.' },
|
|
hasEmbeddedAnswers: false,
|
|
globalFeedback: null
|
|
}
|
|
];
|
|
|
|
const items = multiple.map((item) => Template(item, { theme: 'dark' })).join('');
|
|
const errorItemDark = ErrorTemplate('Hello');
|
|
|
|
const lightItems = multiple.map((item) => Template(item, { theme: 'light' })).join('');
|
|
|
|
const errorItem = ErrorTemplate('Hello');
|
|
|
|
const app = document.getElementById('app');
|
|
if (app) app.innerHTML = items + errorItemDark + lightItems + errorItem;
|