Matthias Scharwies: Vokabeltrainer - Backend?

Beitrag lesen

Servus!

Hallo Matthias,

bevor Du blindlings anfängst, denk daran, dass VHIG[^1] ein Patentrezept für schlechte Software ist. Bzw. zu umfangreichen Umbauten im Verlauf des Projekts führen kann. Nicht ohne Grund beginnen Projekte mit längeren Konzeptphasen, bevor der erste Code entsteht.

Sprich: Halt Dich an unsere Tutorials und PLANE zuerst 😀

😀

Die Planung ist seit einigen Jahren abgeschlossen und ich bin mitten in der Umsetzung steckengeblieben. (Das ist halt nichts für ein Wochenende!) Es sollte eine Erweiterung/Anpassung des Mathe-Quiz aus dem Spiele-Kurs werden.

Lernziele:

  • nicht nur EN-DE-Abfragen, sondern wie im richtigen Test
  • Synonyme und Oppsoites sowie evtl. später ein Matching von definitions
  • zur Auflockerung Hangman, der aus Gründen jetzt in einer nichtletalen Variante zum Snowman mutiert ist.

Deshalb sollten da auch keine Schüler Vokabeln eingeben.

Die JSON Struktur steht, zu jedem Wort gibt es auch einen Index Lernjahr/Unit. Bei einem Wechsel des Schulbuchs, was alle 3-5 Jahre passiert, müssten diese Indizes angepasst werden.

Probleme bei der Umsetzung

  1. ich programmiere noch viel zu prozedural und kopiere mir irgendwelche Snippets aus dem Netz
  2. Als ich anfing, hieß das ganze mobile Web-App mit HTM5; heute PWA, - es scheint aber nichts mit VanillaJS zu geben, alle setzen auf React, Fusion oder Hydrogen. (Da setz' ich mich mal mit @Felix Riesterer zusammen, der ein PWA-Tutorial in der Pipeline hat.)
  3. Das Backend - da hatte ich überhaupt keinen Plan und jetzt 4 Wochen Zeit.

Wie groß die JSON im Endzustand wird, habe ich keinen Schimmer. Das entscheidet dann, ob man es im LocalStorage speichern oder mittels eines Cache manifest zum Herunterladen freigibt. (Das scheint aber auch schon wieder obsolet zu sein: https://en.wikipedia.org/wiki/Cache_manifest_in_HTML5 - bääh) - also Service Worker

Eine Datenbank als Vokabelspeicher würde ich auch empfehlen, kein Excel und kein JSON. Aber das UI und die gewünschten Funktionen bedingen auch, was die DB können muss. Und da Du ja

einen vielseitigen Vokabeltrainer

erstellen willst - der dann übrigens über den Umfang für ein Tutorial weit hinausgeht - brauchst Du vorab einen klaren Plan

Ja. Apropos. Der Kurs Webprojekte planen (Forum: self-wiki-webprojekte-planen-und-entwickeln) wartet auch noch!

  • gibt es einen zentralen Vokabelfundus, der sich regelmäßig erweitert? Oder nur einen festen Satz, den man einmal downloadet und lokal speichert?

Evtl. einen Check, ob es ein monatliches Update gab.

  • gibt es eine Eingabemöglichkeit für eigene Vokabeln?

Nein

  • brauchst Du eine eine Gruppierbarkeit der Vokabeln für jeden Anwender, denn nicht alle Schüler haben das gleiche Schulbuch

Soll nur für unsere Schule, nicht für jeden Verwendungszweck dienen. (*Wäre natürlich optimal, alle Vokabeln nach Schulbuch zu kategorisieren: GA5.3, RL5.2, GL5.1, etc *)

  • für ein Vokabeltraining passend zu einem bestimmten Schulbuchkapitel braucht man ggf. eine Begrenzung der Übersetzungen. Man lernt mutmaßlich in Klasse 5, das "date" ein Datum ist. Und irgendwann wird man gefragt, wie der Schiffbrüchige ein Jahr überlebt hat, nur mit einem Kalender, und erfährt: "He ate the dates from the calendar". Dass man dann erstmal das Wörterbuch braucht, macht den Kalauer um so schmerzhafter.

Das ist das Problem der Übersetzungen. Bei uns in der 6. Klasse gab es die Vokabel

			name: "cyberbully",
			description: "The police found the cyberbully",
			synonyms: [],
			translation: "cyberbully"

WTF? Lerneffekt: 0, da die Schüler nicht wussten, was das deutsche Wort bedeutet.

  • eine Option, die eigenen Daten (Vokabelauswahl, Lernstand) im local storage des Browsers oder doch zentral zu speichern. Vorteil von ersterem: keine Daten beim Anbieter. Nachteil: Keine Daten beim Anbieter, ich bin an das eine Gerät gebunden, auf dem die Daten stehen. Vielleicht braucht man eine Form von Upload der lokalen Daten, die mit einem Passwort verschlüsselt sind. Das kommt möglicherweise erst in Schritt drölf, aber genau das musst Du für Dich festlegen, damit Du nicht im ersten Schritt in Featuritis versinkst: Was ist das MVP, und nur das solltest Du bauen. Die Schritte 2 + 3 sollten zumindest umrissen sein

Mein Eindruck aus dem Distanzlernen (der Begriff Home-Schooling ist durch die religiösen Schulverweigerer in den USA belegt): Der durchschnittliche 5.-7.-Klässler hat keinen PC mehr, sondern entweder ein altes Smartphone oder ein Tablet, Jungs ab der 7. Klasse haben einen Gaming-PC mit Wasserkühlung (aber keine Zeit für's Lernen).

Deshalb: Lernen/spielen auf einem Gerät - kein Speichern von Nutzer-Daten auf dem Server. wenn Du das Speichern würdest, hättest du einerseits Verweigerer da und andererseits Leute, die eine gute Note für erfolgreiches Vokabellernen in der App einfordern.

Du musst dir auch etwas überlegen, wie Du kontextbedürftige abfragst: date (Datum/Dattel), letter (Brief/Buchstabe), palm (Handfläche/Palme) - echte Homographe, sogar mit gleicher Wortart

In En-DE ergibt sich das aus der entsprechenden Unit, evtl. könne man translation erweitern:

translation: ["Datum", "Dattel"],

Man muss auch sehen, dass ein Vokabeltrainer ein Mittel zum Zweck ist und es Alternatven gibt: Mind Maps, Bücher lesen, etc.

Herzliche Grüße

Matthias Scharwies

--
Einfach mal was von der ToDo-Liste auf die Was-Solls-Liste setzen.“