Commit b884db28 authored by Fullarton's avatar Fullarton

Init commit

parents
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
# dependencies
/node_modules
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
backend.iml
.editorconfig
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings
# e2e
/e2e/*.js
/e2e/*.map
# System Files
.DS_Store
Thumbs.db
/cache
arsnova-click-v2-db-v*.json
/images/favicons/*.png
/images/themes/*.png
test-generated/*
.nyc_output/
-----BEGIN CERTIFICATE-----
MIIDDjCCAfYCCQCBB+9AAkE49TANBgkqhkiG9w0BAQsFADBJMQswCQYDVQQGEwJE
RTEQMA4GA1UECBMHR2VybWFueTEQMA4GA1UEBxMHR2llc3NlbjEWMBQGA1UEChMN
YXJzbm92YS5jbGljazAeFw0xNzA5MTIxNDQxMDdaFw0xODA5MTIxNDQxMDdaMEkx
CzAJBgNVBAYTAkRFMRAwDgYDVQQIEwdHZXJtYW55MRAwDgYDVQQHEwdHaWVzc2Vu
MRYwFAYDVQQKEw1hcnNub3ZhLmNsaWNrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA4ijSU5bAhVf0EM1OVMh9OEKQixukh4J/5i5VXZfAa9OjVH8gCrse
n8kWL5FSZMX8o769WeeqIcLgjuJL5ARsvKU+ZLezbA+lheBg7jCgZYW1oa65y+1p
JzoNLnMt+cy/GkcVwFKTNa+6UwhyE8e9q+1d+RfUq/TKagp0EbIWmvROwPPMRZDS
xI6IsgMYqo1ztUyWK7j+kvRskgiNuGWwJBVn8Seay/7qbrpMRFiLyPX0XB0F3QWa
zjjfbAfT5APUdmXdniuSJ8CcjEiJHqpbjhmEuDkj/vCJXb/K/QQLlNI8+ZbvYP3O
ZXDoJizg7cxaq3eq32e6JZsimbx4LWBGaQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
AQAY5ltyk4bQCcC7ntvui8NKP2xPFlhMOafptMNHidzXT6Bm8J2wn6e76eqaciTb
Mj8/mKvSaS/kUYM22k0NAiA/iCaApCxHan6bu6LStBQ72nV11C3cjOr5yPP0a+Jc
Xi87wdjqZSRBwUQOmcfMBXHYF+sl0SknjFzrcDVIwMWTk422tGFC3vPgb0x6pwkB
BCzEynJnFUGYo3OjTbqqqK+ZmnNTc8rYdEcHuYJ91MY92UlArdGEYCYp+U2kvIDa
Co47Xjvm1BVk74fvJ2PTg8NBXUN/Z9mQPa5eVQDYGPTUFXHxbLR5qdIq6tGaMM5g
AKJCOyZFZYFIGJiJM750N9uJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE REQUEST-----
MIICjjCCAXYCAQAwSTELMAkGA1UEBhMCREUxEDAOBgNVBAgTB0dlcm1hbnkxEDAO
BgNVBAcTB0dpZXNzZW4xFjAUBgNVBAoTDWFyc25vdmEuY2xpY2swggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDiKNJTlsCFV/QQzU5UyH04QpCLG6SHgn/m
LlVdl8Br06NUfyAKux6fyRYvkVJkxfyjvr1Z56ohwuCO4kvkBGy8pT5kt7NsD6WF
4GDuMKBlhbWhrrnL7WknOg0ucy35zL8aRxXAUpM1r7pTCHITx72r7V35F9Sr9Mpq
CnQRshaa9E7A88xFkNLEjoiyAxiqjXO1TJYruP6S9GySCI24ZbAkFWfxJ5rL/upu
ukxEWIvI9fRcHQXdBZrOON9sB9PkA9R2Zd2eK5InwJyMSIkeqluOGYS4OSP+8Ild
v8r9BAuU0jz5lu9g/c5lcOgmLODtzFqrd6rfZ7olmyKZvHgtYEZpAgMBAAGgADAN
BgkqhkiG9w0BAQUFAAOCAQEAy2kAQy9yp/wOd1iK1/n2+Lq6WfQIN9yA6IQoAdYg
QvEqKgg9gLR053ACcwkemTQzxDA7utwRgIhKZnKqZmHdTVm7oBNbxe8TEB4SZTCo
10Q5OgAlwE/BnI8SD20BvKogtEigWlXKcIm8YNcLOqtaFxhjJnuG8cPusfc6hwG1
FFrdJJrUbHwBvm+2QYkxjJCRrUlHRve4We6d2alT2qsBAg5jMJVGm/VEJDjzpCls
TyLu90cX1okG3BpPQwzq5uMgCY8WlUt0FqacJYAqmQeP2xmN/XiZ2B1dy2/V5TVK
NQBbd7y4K94iwZ13ZoMt4bGuK19JF4ONXmgVKnPw7A7mLg==
-----END CERTIFICATE REQUEST-----
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA4ijSU5bAhVf0EM1OVMh9OEKQixukh4J/5i5VXZfAa9OjVH8g
Crsen8kWL5FSZMX8o769WeeqIcLgjuJL5ARsvKU+ZLezbA+lheBg7jCgZYW1oa65
y+1pJzoNLnMt+cy/GkcVwFKTNa+6UwhyE8e9q+1d+RfUq/TKagp0EbIWmvROwPPM
RZDSxI6IsgMYqo1ztUyWK7j+kvRskgiNuGWwJBVn8Seay/7qbrpMRFiLyPX0XB0F
3QWazjjfbAfT5APUdmXdniuSJ8CcjEiJHqpbjhmEuDkj/vCJXb/K/QQLlNI8+Zbv
YP3OZXDoJizg7cxaq3eq32e6JZsimbx4LWBGaQIDAQABAoIBAEr6/cB42pta7bAk
YTP6xIlCiGmWYJYMzhqigerlxQX6xMve2eC06RJQuOpMY+TFP12Kf3yvMdi/o3O7
0y1lyidBIc6CmRnaliYsnfZaaNM/4VgZdcAGljZLKNOdnECVgUZVCwEYX3YNLNka
k7e7IUc/C0jqfbgFEJbXoGO9h4EXnrqp0UCvrTzZfs8/0uoqynmwKFTez0gX6dfu
sfkMsXoWy46rSw4ZVhrWspfyD+ZUqIqy6M5yYjgGJ4Zy5y/4apobWXUvXhsSnLop
dLEUk9dJrwjkAnq+Wt8OtRfGxjr5pUtaE41IsEKOq1ASr4n1yx5WyHsu4jO8ThyO
dpgKK4ECgYEA/iTf5o/fd3SKTXfW6xMnqR+R7pcbsRlwS2Gat1VpApAyTVc7kVml
0NN7o7HzPhruxaeORvVjpZ+acixi1/7VgGm2HAGPJBKCOtWTAXjGDB3u63iez+a4
ujiQLCv1Hf+zw8Ij7x+OUJzA+lVb8jxpz9a+ZieHQDvmEdKhyQImt7MCgYEA48+h
JCwRVYJ1Y9fI/rj62Zz0sVLtj19qqFq+Z3M2/i5es5vqOciikgRIrg4BTKNq6zmz
duCGnZb0xVLwOnKR7UfPMiW+gxLI2LP/QHRkcNqEQY9Oyh49lj61+xyDE0Ou3vRY
n0YBDUxIFWsK/7LUiFTjyro9odjCPVnOrTUEu3MCgYEA4S4jBNLtmZY1BLbuQpNS
TNOgJdrVunFjwibVQyP2S0Mgjs6ABSV9ei4oGr6NW7XZYmA3/D9o71MfMZKKcf9l
hMYliWMIRVnw8dhSzLcKI6pSC2lwrZ0siDOd6sV4BgCOcyENXc6D9oEtq6D+Ov+0
cWdAhJr5h7yK+be7ibLSQ2kCgYEAzxxvBfHCeJk4nGML6vjFpp4ZoDUioRxAXXrS
bD7FGmWR13zCf3I2ysV2RjeZWtGfXOeCj2slN5SMR/FVUe3jWXPVnWPPRl8Hlmxe
fXzT6/3eC7R8DylbGIM+82NCj3sTOsOu5m7AehSF3GMLBtjQfHmg9yhG7COixCAn
1DTFbp0CgYEAqMYsxcWan3af7pga70wnwzjG2OiEmhmnv98RgcPoQ7/x4zzmD349
IX5AohEGB0c9iB3mDXbmNaL6Qa5ffdjw7rd8MMXPQHqRXZh8msBRSRyNh0li+66b
JhtU1Rb0KvXnhbsNG+wf6Y8G45nzrCtUfcqPD1dkE+LkRfR+yoET/E8=
-----END RSA PRIVATE KEY-----
const gulp = require('gulp');
const clean = require('gulp-clean');
const del = require('del');
const ts = require('gulp-typescript');
const JSON_FILES = ['src/*.json', 'src/**/*.json'];
const JS_FILES = ['src/*.js', 'src/**/*.js'];
gulp.task('scripts', () => {
const tsProject = ts.createProject('tsconfig.json');
const tsResult = tsProject.src()
.pipe(tsProject());
return tsResult.js.pipe(gulp.dest('dist'));
});
gulp.task('scripts-test', () => {
const tsProject = ts.createProject('tsconfig.test.json');
const tsResult = tsProject.src()
.pipe(tsProject());
return tsResult.js.pipe(gulp.dest('dist'));
});
gulp.task('js-scripts', function() {
return gulp.src(JS_FILES)
.pipe(gulp.dest('dist'));
});
gulp.task('assets', function() {
return gulp.src(JSON_FILES)
.pipe(gulp.dest('dist'));
});
gulp.task('clean', function clean() {
// You can use multiple globbing patterns as you would with `gulp.src`,
// for example if you are using del 2.0 or above, return its promise
return del([ 'clean-test-generated' ]);
});
gulp.task('clean-test-generated', function () {
return gulp.src('test-generated', {read: true})
.pipe(clean());
});
gulp.task('default', gulp.series(gulp.parallel('scripts', 'js-scripts', 'assets', 'clean')));
gulp.task('test', gulp.series(gulp.parallel('scripts-test', 'js-scripts', 'assets', 'clean')));
{
"export": {
"page_header": "&LQuiz-Statistik und Ranglisten generiert in einer Live-Session mit arsnova.click&R__createdAt__",
"page_footer": "&L&A&Carsnova.click ist Open Source Software, siehe arsnova.io&R &P/&N",
"summary": "Zusammenfassung",
"exported_at_date": "Exportiert am",
"exported_at": "um",
"exported_at_time": "Uhr",
"session_content": "Archivierte Quizfragen (Um das Quiz zu importieren, kopiere den vollständigen Zellinhalt in eine leere .json-Datei. Importiere dann die Datei mit dem entsprechenden Icon in der Fußzeile der App.)",
"cas_account_id": "CAS Account-ID",
"cas_account_email": "CAS E-Mail",
"quiz_name": "Quizname",
"question": "Quizfrage",
"question_type": "Typ der Quizfrage",
"number_of_answers": "Anzahl der Antworten",
"percent_correct": "Korrekte Antworten (in %)",
"answer": "Antwort",
"attendee": "Teilnehmer/in",
"attendee_complete_correct": "Teilnehmer/innen mit vollständig richtig beantworteten Fragen",
"attendee_complete_correct_none_available": "Keine Einträge vorhanden",
"correct_questions_none_available": "Keine",
"attendee_all_entries": "Alle Teilnehmer/innen",
"time": "Antwortzeit (in ms)",
"confidence_level": "Antwortsicherheit",
"correct_value": "Richtiger Wert",
"min_range": "Mindestwert",
"max_range": "Maximalwert",
"correct_questions": "Richtig beantwortete Fragen",
"overall_response_time": "Kumulierte Antwortzeit (in ms)",
"average_response_time": "Durchschnittliche Antwortzeit (in ms)",
"number_attendees": "Anzahl der Teilnehmer/innen",
"average_number_attendees_participated": "Durchschnittliche Teilnahmen am Quiz (in %)",
"average_correct_answered_questions": "Durchschnittlich richtig beantwortete Fragen",
"average_confidence": "Durchschnittliche Antwortsicherheit (in %)"
}
}
{
"export": {
"page_header": "&LQuiz and ranking data generated from a live quiz session with arsnova.click&R__createdAt__",
"page_footer": "&L&A&Carsnova.click is open source software, see arsnova.io and https://github.com/thm-projects/arsnova.click&RPage &P of &N",
"summary": "Summary",
"exported_at_date": "Exported at",
"exported_at": "at",
"exported_at_time": "o'clock",
"session_content": "Export of the Quiz (JSON)",
"cas_account_id": "CAS Account ID",
"cas_account_email": "CAS E-Mail",
"quiz_name": "Quizname",
"question": "Question",
"question_type": "Type of the question",
"number_of_answers": "Number of Responses",
"percent_correct": "Correct Responses (in %)",
"answer": "Answer",
"attendee": "Attendee",
"attendee_complete_correct": "Attendees with completely correct answered questions",
"attendee_complete_correct_none_available": "None available",
"correct_questions_none_available": "None",
"attendee_all_entries": "All attendees",
"time": "Response Time (in s)",
"confidence_level": "Confidence Grade",
"correct_value": "Correct Value",
"min_range": "Minimum Range",
"max_range": "Maximum Range",
"correct_questions": "Correctly answered questions",
"overall_response_time": "Cumulative Response Time (in s)",
"average_response_time": "Average Response Time (in s)",
"number_attendees": "Amount of Attendees",
"average_number_attendees_participated": "Average Responses for the Quiz (in %)",
"average_correct_answered_questions": "Questions answered on average correctly",
"average_confidence": "Average confidence grade (in %)",
"type": {
"SurveyQuestion": "SurveyQuestion",
"TrueFalseSingleChoiceQuestion": "TrueFalseSingleChoiceQuestion",
"YesNoSingleChoiceQuestion": "YesNoSingleChoiceQuestion",
"ABCDSingleChoiceQuestion": "ABCDSingleChoiceQuestion",
"SingleChoiceQuestion": "SingleChoiceQuestion",
"RangedQuestion": "RangedQuestion",
"FreeTextQuestion": "FreeTextQuestion",
"MultipleChoiceQuestion": "MultipleChoiceQuestion"
}
},
"view": {
"answeroptions": {
"free_text_question": {
"config_case_sensitive": "Case-Sensitive",
"config_trim_whitespaces": "Trim Whitespaces",
"config_use_keywords": "Use Keywords",
"config_use_punctuation": "Use Punctuation"
}
}
},
"global": {
"no": "No",
"yes": "Yes"
}
}
{
"export": {
"page_header": "&LEl concurso y el escalafón serían creado en una sesión en directa con arsnova.click &R__createdAt__",
"page_footer": "&L&A&Carsnova.click es un Open Source Software, también ves arsnova.io y https://github.com/thm-projects/arsnova.click&RSeite &P von &N",
"summary": "Sinopsis",
"exported_at_date": "Exportado en",
"exported_at": "a",
"exported_at_time": " ",
"session_content": "Exportar el concurso (formato JSON)",
"cas_account_id": "CAS Account-ID",
"cas_account_email": "CAS E-Mail",
"quiz_name": "Nombre del concurso",
"question": "Pregunta del concurso",
"question_type": "Tipo de la pregunta",
"number_of_answers": "Número de respuestas",
"percent_correct": "Respuestas correctas (en %)",
"answer": "Respuesta",
"attendee": "Participantes",
"attendee_complete_correct": "Participantes con respuestas completamente correctas",
"attendee_complete_correct_none_available": "No hay entradas",
"correct_questions_none_available": "Nunca",
"attendee_all_entries": "Todos los participantes",
"time": "Tiempo por la respuesta (en ms)",
"confidence_level": "Certitud de responder",
"correct_value": "Valor correcto",
"min_range": "Valor máximo",
"max_range": "Valor mínimo",
"correct_questions": "Preguntas correctas",
"overall_response_time": "Tiempo por la respuesta cumulado (en ms)",
"average_response_time": "Tiempo por la respuesta de promedio (en ms)",
"number_attendees": "Número de participantes",
"average_number_attendees_participated": "Entradas Promedio en prueba (en %)",
"average_correct_answered_questions": "Promedio de respuestas para el cuestionario",
"average_confidence": "Certitud de responder promedio (en %)"
}
}
{
"export": {
"page_header": "&LQuiz et le classement ont été générées lors d'une session de quiz en direct avec arsnova.click&R__createdAt__",
"page_footer": "&L&A&Carsnova.click est un logiciel open source, voir arsnova.io et https://github.com/thm-projects/arsnova.clickPage &P de &N",
"summary": "Résumé",
"exported_at_date": "Exporté le",
"session_content": "Export du Quiz (JSON)",
"cas_account_id": "Numéro de compte CAS",
"cas_account_email": "E-mail CAS",
"quiz_name": "Nom du quiz",
"question": "Question",
"question_type": "Type de question",
"number_of_answers": "Nombre de réponses",
"percent_correct": "Réponses correctes",
"answer": "Répondre",
"attendee": "Participant",
"attendee_complete_correct": "Participants ayant répondu correctement à toutes les questions",
"attendee_complete_correct_none_available": "Aucun",
"correct_questions_none_available": "Aucun",
"attendee_all_entries": "Tous les participants",
"time": "Temps de réponse (en ms)",
"confidence_level": "Dégré de certitude",
"correct_value": "Valeur correcte",
"min_range": "Valeur min.",
"max_range": "Valeur max.",
"correct_questions": "Questions correctement répondues",
"overall_response_time": "Temps de réponse cumulé (en ms)",
"average_response_time": "Temps de réponse moyen (en ms)",
"number_attendees": "Nombre de participants",
"average_number_attendees_participated": "Réponses moyennes pour le quiz (en %)",
"average_correct_answered_questions": "Les questions ont-elles été répondues en moyenne correctement?",
"average_confidence": "Niveau de certitude moyen"
}
}
{
"export": {
"page_header": "&LQuiz and ranking data generated from a live quiz session with arsnova.click&R__createdAt__",
"page_footer": "&L&A&Carsnova.click is open source software, see arsnova.io and https://github.com/thm-projects/arsnova.click&RPage &P of &N",
"summary": "Summary",
"exported_at_date": "Exported at",
"exported_at": "at",
"exported_at_time": "o'clock",
"session_content": "Export of the Quiz (JSON)",
"cas_account_id": "CAS Account ID",
"cas_account_email": "CAS E-Mail",
"quiz_name": "Quizname",
"question": "Question",
"question_type": "Type of the question",
"number_of_answers": "Number of Responses",
"percent_correct": "Correct Responses (in %)",
"answer": "Answer",
"attendee": "Attendee",
"attendee_complete_correct": "Attendees with completely correct answered questions",
"attendee_complete_correct_none_available": "None available",
"correct_questions_none_available": "None",
"attendee_all_entries": "All attendees",
"time": "Response Time (in ms)",
"confidence_level": "Confidence Grade",
"correct_value": "Correct Value",
"min_range": "Minimum Range",
"max_range": "Maximum Range",
"correct_questions": "Correctly answered questions",
"overall_response_time": "Cumulative Response Time (in ms)",
"average_response_time": "Average Response Time (in ms)",
"number_attendees": "Amount of Attendees",
"average_number_attendees_participated": "Average Responses for the Quiz (in %)",
"average_correct_answered_questions": "Questions answered on average correctly",
"average_confidence": "Average confidence grade (in %)"
}
}
<svg version="1.1" id="arsnova-logo-image" xmlns="http://www.w3.org/2000/svg" height="50px" width="50px" x="0px" y="0px" viewBox="0 0 1024 1024" xml:space="preserve">
<g id="text">
<text transform="matrix(1 0 0 1 69 500)" class="arsnova-logo-ars">ars</text>
<text transform="matrix(1 0 0 1 420 500)" class="arsnova-logo-nova">nova</text>
<text transform="matrix(1 0 0 1 512 820)" class="arsnova-logo-click">.click</text>
</g>
</svg>
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="24.476ex" height="6.176ex" style="vertical-align: -2.234ex; margin-bottom: -0.271ex;" viewBox="0 -1580.7 10538.3 2659.1" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" aria-labelledby="MathJax-SVG-1-Title">
<title id="MathJax-SVG-1-Title">\begin{align} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \end{align}</title>
<defs aria-hidden="true">
<path stroke-width="1" id="E1-MJMAIN-2207" d="M46 676Q46 679 51 683H781Q786 679 786 676Q786 674 617 326T444 -26Q439 -33 416 -33T388 -26Q385 -22 216 326T46 676ZM697 596Q697 597 445 597T193 596Q195 591 319 336T445 80L697 596Z"></path>
<path stroke-width="1" id="E1-MJMAIN-D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path>
<path stroke-width="1" id="E1-MJMAINB-42" d="M720 510Q720 476 704 448T665 404T619 377T580 362L564 359L583 356Q602 353 632 342T690 312Q712 292 725 276Q752 235 752 189V183Q752 160 741 125Q698 18 547 2Q543 1 288 0H39V62H147V624H39V686H264H409Q502 686 542 681T624 655Q720 607 720 510ZM563 513Q563 553 548 578T518 611T486 622Q479 624 385 624H293V382H375Q458 383 467 385Q563 405 563 513ZM590 192Q590 307 505 329Q504 330 503 330L398 331H293V62H391H400H444Q496 62 528 75T580 131Q590 155 590 192Z"></path>
<path stroke-width="1" id="E1-MJMAIN-20D7" d="M-123 694Q-123 702 -118 708T-103 714Q-93 714 -88 706T-80 687T-67 660T-40 633Q-29 626 -29 615Q-29 606 -36 600T-53 590T-83 571T-121 531Q-135 516 -143 516T-157 522T-163 536T-152 559T-129 584T-116 595H-287L-458 596Q-459 597 -461 599T-466 602T-469 607T-471 615Q-471 622 -458 635H-99Q-123 673 -123 694Z"></path>
<path stroke-width="1" id="E1-MJMAIN-2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path>
<path stroke-width="1" id="E1-MJMAIN-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path>
<path stroke-width="1" id="E1-MJMATHI-63" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path>
<path stroke-width="1" id="E1-MJMAIN-2202" d="M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z"></path>
<path stroke-width="1" id="E1-MJMAINB-45" d="M723 286Q721 284 700 145T677 3V0H39V62H147V618H39V680H660V676Q662 670 675 552T691 428V424H629V428Q629 429 627 448T618 494T601 541Q574 593 527 605T382 618H374H304V384H336Q338 384 347 384T361 384T376 386T392 390T407 397T421 407T432 423Q442 444 443 482V501H505V205H443V224Q442 258 435 278T411 307T380 318T336 322H304V62H375H394Q429 62 449 62T497 66T541 76T577 95T609 126T632 170T651 232Q661 287 661 289H723V286Z"></path>
<path stroke-width="1" id="E1-MJMATHI-74" d="M26 385Q19 392 19 395Q19 399 22 411T27 425Q29 430 36 430T87 431H140L159 511Q162 522 166 540T173 566T179 586T187 603T197 615T211 624T229 626Q247 625 254 615T261 596Q261 589 252 549T232 470L222 433Q222 431 272 431H323Q330 424 330 420Q330 398 317 385H210L174 240Q135 80 135 68Q135 26 162 26Q197 26 230 60T283 144Q285 150 288 151T303 153H307Q322 153 322 145Q322 142 319 133Q314 117 301 95T267 48T216 6T155 -11Q125 -11 98 4T59 56Q57 64 57 83V101L92 241Q127 382 128 383Q128 385 77 385H26Z"></path>
<path stroke-width="1" id="E1-MJMAIN-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path>
<path stroke-width="1" id="E1-MJMAIN-34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path>
<path stroke-width="1" id="E1-MJMATHI-3C0" d="M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"></path>
<path stroke-width="1" id="E1-MJMAINB-6A" d="M104 610Q104 649 130 672T191 695Q225 693 249 670T273 610Q273 572 249 549T189 525Q152 525 128 548T104 610ZM78 442L173 446L268 450H274V196Q274 -5 274 -37T269 -83Q256 -132 201 -166T71 -200Q10 -200 -30 -173T-71 -102Q-71 -70 -51 -51T-1 -31Q27 -31 48 -49T69 -100Q69 -121 53 -147H56Q66 -149 77 -149H80Q90 -149 100 -146T127 -125T149 -73Q151 -55 151 149V362Q150 364 148 366T145 370T142 373T138 375T133 377T124 378T113 379T97 380H75V442H78Z"></path>
</defs>
<g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)" aria-hidden="true">
<g transform="translate(167,0)">
<g transform="translate(-11,0)">
<g transform="translate(0,-204)">
<use xlink:href="#E1-MJMAIN-2207" x="0" y="0"></use>
<use xlink:href="#E1-MJMAIN-D7" x="1055" y="0"></use>
<g transform="translate(2056,0)">
<use xlink:href="#E1-MJMAINB-42" x="0" y="0"></use>
<use xlink:href="#E1-MJMAIN-20D7" x="644" y="279"></use>
</g>
<use xlink:href="#E1-MJMAIN-2212" x="3097" y="0"></use>
<g transform="translate(4042,0)">
<g transform="translate(342,0)">
<rect stroke="none" width="620" height="60" x="0" y="220"></rect>
<use xlink:href="#E1-MJMAIN-31" x="60" y="676"></use>
<use xlink:href="#E1-MJMATHI-63" x="93" y="-686"></use>
</g>
</g>
<g transform="translate(5291,0)">
<g transform="translate(120,0)">
<rect stroke="none" width="1444" height="60" x="0" y="220"></rect>
<g transform="translate(60,676)">
<use xlink:href="#E1-MJMAIN-2202" x="0" y="0"></use>
<g transform="translate(567,0)">
<use xlink:href="#E1-MJMAINB-45" x="0" y="0"></use>
<use xlink:href="#E1-MJMAIN-20D7" x="613" y="273"></use>
</g>
</g>
<g transform="translate(257,-736)">
<use xlink:href="#E1-MJMAIN-2202" x="0" y="0"></use>
<use xlink:href="#E1-MJMATHI-74" x="567" y="0"></use>
</g>
</g>
</g>
</g>
</g>
<g transform="translate(6965,0)">
<g transform="translate(0,-204)">
<use xlink:href="#E1-MJMAIN-3D" x="277" y="0"></use>
<g transform="translate(1056,0)">
<g transform="translate(397,0)">
<rect stroke="none" width="1194" height="60" x="0" y="220"></rect>
<g transform="translate(60,676)">
<use xlink:href="#E1-MJMAIN-34" x="0" y="0"></use>
<use xlink:href="#E1-MJMATHI-3C0" x="500" y="0"></use>
</g>
<use xlink:href="#E1-MJMATHI-63" x="380" y="-686"></use>
</g>
</g>
<g transform="translate(2768,0)">
<use xlink:href="#E1-MJMAINB-6A" x="59" y="0"></use>
<use xlink:href="#E1-MJMAIN-20D7" x="470" y="288"></use>
</g>
</g>
</g>
</g>
</g>
</svg>
This diff is collapsed.
{
"name": "backend",
"version": "1.0.0",
"license": "MIT",
"repository": "git@git.thm.de:arsnova/arsnova.click-v2.git",
"description": "Version 2 of arsnova.click (Backend)",
"config": {
"portInternal": "3000",
"portExternal": "3000",
"routePrefix": "",
"rewriteAssetCacheUrl": "",
"themePreviewHost": "http://localhost:4200"
},
"scripts": {
"prod": "gulp",
"prestart": "npm run prod",
"start": "node dist/index.js",
"pretest": "gulp test",
"test": "nyc -c mocha --opts src/tests/mocha.opts"
},
"dependencies": {
"body-parser": "^1.18.2",
"cas": "0.0.3",
"connect-busboy": "0.0.2",
"cookie-parser": "~1.4.3",
"cors": "^2.8.4",
"crypto-js": "^3.1.9-1",
"debug": "^3.1.0",
"excel4node": "^1.3.0",
"express": "^4.16.2",
"express-ws": "^3.0.0",
"file-type": "^7.2.0",
"i18n": "^0.8.3",
"lowdb": "^1.0.0",
"mathjax-node": "^1.2.1",
"messageformat": "^1.0.2",
"mime": "^2.0.3",
"mime-types": "^2.1.17",
"morgan": "^1.9.0",
"node-sass-middleware": "0.11.0",
"phantomjs-prebuilt": "^2.1.16",
"request": "^2.83.0",
"serve-favicon": "~2.4.5",
"slimerjs": "^0.10.3"
},
"devDependencies": {
"@types/body-parser": "1.16.8",
"@types/chai": "^4.0.4",
"@types/chai-http": "3.0.3",
"@types/cors": "^2.8.3",
"@types/debug": "0.0.30",
"@types/express": "^4.0.39",
"@types/mocha": "^2.2.44",
"@types/morgan": "^1.7.35",
"@types/node": "^8.0.52",
"@types/websocket": "0.0.34",
"@types/ws": "^3.2.0",
"chai": "^4.1.2",
"chai-http": "^3.0.0",
"del": "^3.0.0",
"gulp": "github:gulpjs/gulp#4.0",
"gulp-clean": "^0.3.2",
"gulp-typescript": "^3.2.3",
"mocha": "^4.0.1",
"mocha-typescript": "^1.1.12",
"nyc": "^11.3.0",
"source-map-support": "^0.5.0",
"ts-node": "^3.3.0",
"tslint": "^5.8.0",
"typescript": "^2.6.1"
}
}
{
"hashtag": "ABCD Quiz 1",
"isFirstStart": false,
"questionList": [
{ "hashtag": "ABCD Quiz 1",
"isFirstStart": false,
"questionText": "",
"timer": 60,
"startTime": 0,
"questionIndex": 0,
"displayAnswerText": false,
"answerOptionList": [],
"type": "ABCDSingleChoiceQuestion"
}
],
"configuration": {
"hashtag": "ABCD Quiz 1",
"music": {
"hashtag": "ABCD Quiz 1",
"isUsingGlobalVolume": false,
"lobbyEnabled": true,
"lobbyTitle": "Song2",
"lobbyVolume": 50,
"countdownRunningEnabled": true,
"countdownRunningTitle": "Song0",
"countdownRunningVolume": 50,
"countdownEndEnabled": true,
"countdownEndTitle": "Song1",
"countdownEndVolume": 100
},
"nicks": {
"hashtag": "ABCD Quiz 1",
"selectedValues": [],
"blockIllegal": true,
"restrictToCASLogin": false
},
"theme": "theme-Material",
"readingConfirmationEnabled": false,
"showResponseProgress": true,
"confidenceSliderEnabled": false
},
"type": "DefaultQuestionGroup"
}
{
"hashtag": "Demo Quiz 265",
"isFirstStart": false,
"questionList": [
{
"hashtag": "Demo Quiz 265",
"isFirstStart": false,
"questionText": "###Wie fühlst du dich?\n![Sechzehn Gesichter, die die menschlichen Emotionen ausdrücken.](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f4/Sixteen_faces_expressing_the_human_passions._Wellcome_L0068375.jpg/620px-Sixteen_faces_expressing_the_human_passions._Wellcome_L0068375.jpg)\n\nQuelle: [Wikipedia \"Emotion\"](https://de.wikipedia.org/wiki/Emotion)",
"timer": 120,
"startTime": 0,
"questionIndex": 0,
"displayAnswerText": true,
"answerOptionList": [
{
"hashtag": "Demo Quiz 265",
"questionIndex": 0,