Skip to content

Analytics Schnittstelle

Andre Kless edited this page Sep 9, 2019 · 7 revisions

Eine ccm-basierte App liefert nicht selten in irgendeiner Form Ergebnisdaten. Beispielsweise wenn ein Quiz, ein Lückentext oder eine Live-Umfrage abgeschlossen wurde. Über instance.getValue() kann der aktuelle Stand der Ergebnisdaten abgefragt werden, sofern der Komponentenentwickler eine entsprechende instance.getValue() implementiert hat. Für diese Ergebnisdaten existiert eine Konvention, wie diese typischerweise aufgebaut sind. Eine Analytics-Komponente die Ergebnisdaten visualisiert und sich an diese Konvention hält, kann somit zur Visualisierung von Ergebnisdaten von unterschiedlicher Apps eingesetzt werden. Ein Beispiel für eine solche Analytics-Komponente ist die ccm.result.js (siehe Quellcode und Demo).

Beispiel für einen Ergebnisdatensatz mit den typischen Properties gemäß aktueller Konvention:

{
  "correct": 1,
  "total": 3,
  "updated_at": "2019-05-21T15:55:31+02:00",
  "created_at":"2019-04-25T13:19:41+02:00",
  "sections": [
    {
      "input": "Bello",
      "solution": ["Hello"],
      "correct": false
    },
    {
      "input": "Welcome",
      "solution": [ "Welcome" ],
      "correct": true
    }
  ]
}

Die Properties correct und total geben an wie viel Punkte man erreicht hat. Bei einem Quiz ist zum Beispiel total die Anzahl der Fragen und correct die Anzahl der korrekt beantworteten Fragen. Bei einem Lückentext ist total die Anzahl der Textlücken usw.. result ist der Ergebniswert. Bei einer Freitextaufgabe wäre das beispielsweise die eingereichte Lösung. Bei Quiz und Lückentext wäre es die Prozentzahl, wie viel korrekt beantwortet wurde (correct/total). updated_at gibt an, wann sich die Ergebnisdaten zuletzt geändert hatten. Im Falle einer Freitextaufgabe also wann die eingereichte Lösung zuletzt aktualisiert wurde. created_at gibt an, wann der Ergebnisdatensatz erstmals erstellt wurde. Falls die App aus mehreren Abschnitten besteht (bei Quiz die einzelnen Fragen, bei Lückentext die einzelnen Textlücken), können über sections noch genauere Details gespeichert werden. Also was genau die Eingabe war (input) und was die korrekte Lösung ist solution und ob die Eingabe korrekt ist (correct). Jede der Properties im Ergebnisdatensatz ist natürlich optional. Wenn sie aber vorhanden ist, kann sie wie gesagt von einer Analytics-Komponente, die sich auf die Einhaltung dieser Konvention verlässt, ausgewertet werden.

Ein konkretes Beispiel für eine Quiz-Komponente ist ccm.quiz.js (siehe Quellcode und Demo). Für Lückentext gibt es bereits die ccm.cloze.js (siehe Quellcode und Demo).