Ist Django für mein Projekt geeignet?

Django, Flask, Bottle, WSGI, CGI…
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Hallo Leute,
ich habe als Lehrer ein (ziemlich grpßes) Programm geschrieben mit dem meine Schüler (und nicht nur diese) nahezu alle Themen der Mathematik bis zum 10ten Schuljahr üben können (wen es interessiert: https://medien.bildung.hessen.de/rechen ... index.html ). Das ganze funktioniert aber nur mit installiertem OpenOffice auf einem PC oder Laptop (Windows, Mac oder Linux aber halt nicht unter Android oder IOS). Da in unsere Schulen zwischenzeitlich fast nur noch mit Tablets gearbeitet wird, liegt meine "Rechentrainer" im Sterben.
Ich hatte jetzt vor, das ganze Projekt als Webapplikation neu zu erstellen und habe angefangen mich in Django eizuarbeiten. Jetzt habe ich mich aber auch mal mit Hosting beschäftigt und habe die Befürchtung, dass das so nicht zu realisieren ist. Meine Aufgaben liegen nicht in einer Datenbank sondern werden komplett mit Zufallszahlen erzeugt. Nicht nur Aufgaben zu Grundrechenarten, sondern auch Aufgaben zu z.B. Termen, Funktionen, Geometrie und Trigonometrie, letztere mit entsprechend generierter Grafik. Dass die Schülerinnen und Schüler auf dem Server einen Account erstellen können und dort ihre Arbeit jeweils in einer Datenbank gespeichert werden kann, scheint mir vorstellbar. Die Ganzen Aufgaben müssten aber per Script erstellt werden (Das sind zur Zeit etwa 10 000 Code in StarBasic). Hat jemand eine Ahnung ob das erstens überhaupt machbar ist und zweitens, falls ja, bei welchem Provider (Zur Zeit bin ich bei Artfiles).
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Hallo Pit,
Klasse Idee! Ja, das klingt durchaus machbar, sofern dein Provider dir erlaubt, auf dem Server auch Python auszuführen, ohne das funktioniert weder Django, noch die Skripte zur Aufgabenerstellung. :mrgreen:

edit: Wie ich sehe, war dein (?) Rechentrainer ja schon mal Thema hier im Forum: viewtopic.php?t=53022
Bin nicht sicher, wieso du jetzt einen neuen Faden erstellst, aber sei's drum. Das dort Gesagte gilt ja weiter. Es gibt neben den Rechenaufgaben selbst auch noch einige offene Überlegungen, wie der Zugriff auf die Webseite oder auch die Übermittlung der Ergebnisse stattfinden sollte, usw.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

Ich halte das auch für realistisch. Wenn du im Web nicht 100% fit bist, dann nimm lieber eine managed Server Variante, damit du von der Server Verwaltung entlastet wirst. Mit Opalstack habe ich das sehr gute Erfahrungen gemacht. Und pass auch bei den Daten der Schüler:innen. Die müssen wirklich gut gesichert werden, lass da lieber auch jemanden drüber schauen.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Pitwheazle,

zunächst mal kann ich nur sagen, dass ich deinen Einsatz als Lehrer sehr gut finde.
Das was du da vor hast ist grundsätzlich kein Problem. Es gibt viele kostengünstige Anbieter für virtuelle private Server (VPS). Einfach mal danach suchen.
Auf diesen Servern gibt es kaum Einschränkungen und du kannst darauf eigentlich alles installieren, was du brauchst.
Da es virtuelle Server sind, teilt man sich die zugrundeliegende Hardware mit anderen Servern, bekommt davon aber eigentlich nichts mit. Das bietet die Option den Server so zu skalieren, dass er den jeweiligen Anforderungen gewachsen ist. Braucht man mehr RAM oder Speicher kann man ihn einfach erweitern, ohne gleich alles neu installieren zu müssen.

In der Entwicklungsphase während der Server noch nicht öffentlich ist, fährt man ihn mit geringen Ressourcen und spart so Kosten.
Man ist aber selbst verantwortlich für die Einrichtung und natürlich auch für die Sicherheit. Das ist mit Abstufungen aber bei jeder Hosting-Variante der Fall.

Und hier fängt es an problematisch zu werden. Du verwaltest personenbezogene Schülerdaten. Die Datenschutzgesetze haben sich in den letzten Jahren verschärft. Du must dafür sorgen, dass diese Daten nicht in die falschen Hände geraten. Dazu muss man sich sehr gut auskennen.
Solange du das nur mal so für dich als Hobby machst um deine Fähigkeiten zu verbessern und etwas zu lernen, ist es sicher eine gute Idee.
Und wenn du das Projekt erstmal auf den Weg gebracht hast, findest du vielleicht professionelle Unterstützung um dem ganzen einen sicheren Rahmen zu geben.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Hallo Leute,
vielen Dank schon mal für eure Anteilnahme!

@kebap: Jawohl stimmt. Das habe ich etwas aus dem Focus verloren (Ich hoffe, das ist nur Demenz und kein Alzheimer). In dem Post war ich aber noch auf der Suche nach Hilfe für eine entsprechende App. Ich wurde ja immer wieder darauf hingewiesen, dass das mit dem Datenschutz so schwierig wäre. Daraufhin habe ich mich nochmal mit Kotlin beschäftigt. Jetzt ist es aber so, dass die Schulen mit Tablets überschwemmt werden (Ich halte das für nicht für so unterstützenswert. Wir machen uns abhängig von Anbietern von Apps. Unsere Schule bezahlt jetzt tausende von Euro jährlich für den Zugang zu "Bettermarks"). Da die Kids in der Schule Tablets nutzen, privat aber eher ein Handy, macht es m.E. keinen Sinn, eine App zu entwickeln, die an ein Gerät gebunden ist.
Also doch eine Serverlösung. Ich habe jetzt eine ungefähre Vorstellung, wozu HTML, CSS, Django und Python gebraucht werden und auch eine Idee, wie meine Datenbank aussehen könnte - mehr aber nicht. Jetzt musste ich noch feststellen, dass das mit Django auch nicht so einfach ist wie ich mir das vorgestellt habe. Mein Provider (.artfiles) teilt mir mit, dass ich das bei ihnen nicht so einfach hochladen kann. Ihr habt das sicher schon gewusst: Ich muss wohl den Teil von einem Server mieten und das ganze Projekt da hochladen. Jetzt wollen sie wissen, wieviele CPUs, RAMs und Festplatten ... ich brauche - keine Ahnung! Und da mein Rechentrainer kostenlos ist, möchte ich auch nicht so viel Geld ausgeben. Ihr scheint ja der Meinung zu sein, dass mein Projekt so zu realisieren ist - wie muss ich denn da jetzt weitermachen?

Was ich mir auch noch nicht vorstellen kann ist, wie für 200 gleichzeitig angemeldete Schülerinnen und Schüler mein zukünftiges Pythonscript (das wird m.E. ziemlich groß) gleichzeitig Aufgaben generiert. Das liegt vielleicht daran, dass ich das mit der objektorientierten Programmierung noch nicht ganz verstanden habe.

Bis jetzt war mein Vorgehen immer prozedural. Meine ersten Erfahrungen habe ich in den 70ern auf einer der ersten Großrechneranlagen (eine Siemens 4004 an der TH Darmstadt) gemacht. Dort musste ich meinen Cobolcode noch im Keller auf Lochkarten stanzen. Dann habe ich dBase 3+ auf einem 8Bit Rechner (Schneider CPC 664) programmiert. Und heute bin ich noch nicht wirklich über Starbasic in OpenOffice rausgekommen ... Aber: der Mensch braucht eine Aufgabe.

Ach, und dann noch der Datenschutz: Hier im Forum habe ich doch auch meinen Namen eingegeben und die AGBs abgeklickt. Und in Amazon und bei "Bettermarks" muss ich das ja auch. Und die Daten müssen dann mit einem Passwort geschützt werden ... wer kann mir sagen, was ich da jetzt genau beachten muss?

Pit

Übrigens, das habt ihr euch sicher auch schon gedacht, ich bin nicht mehr aktiv im Schuldienst. Ich bin 68 und stelle fest, dass das mit dem Sprachenlernen schon nicht mehr so einfach ist.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Pitwheazle hat geschrieben: Mittwoch 19. Januar 2022, 16:52 Ach, und dann noch der Datenschutz: Hier im Forum habe ich doch auch meinen Namen eingegeben und die AGBs abgeklickt. Und in Amazon und bei "Bettermarks" muss ich das ja auch. Und die Daten müssen dann mit einem Passwort geschützt werden ... wer kann mir sagen, was ich da jetzt genau beachten muss?
Ich wollte dich nur darauf hinweisen, dass dieses Thema ab einem bestimmten Punkt wichtig wird. Du kannst dir ja mal durchlesen, was in der DSGVO steht. Das bedeutet, dass du gewisse Pflichten hast wenn du die Daten anderer verarbeitest. Bei groben Fehlern, kannst du auch zur Verantwortung gezogen werden.
Ansonsten, kann ich nur sagen, dass es sich nach einem interessanten und wertvollen Projekt anhört.
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Pitwheazle hat geschrieben: Mittwoch 19. Januar 2022, 16:52 Mein Provider (.artfiles) teilt mir mit, dass ich das bei ihnen nicht so einfach hochladen kann. Ihr habt das sicher schon gewusst: Ich muss wohl den Teil von einem Server mieten und das ganze Projekt da hochladen. Jetzt wollen sie wissen, wieviele CPUs, RAMs und Festplatten ... ich brauche - keine Ahnung!
Wenn du nicht noch Grundlagen der Serververwaltung lernen möchtest, gibt es durchaus andere Provider, die dir eine Pythonumgebung bereitstellen. Da musst du dich nicht um Hardware oder Systemaktualisierung kümmern, sondern kaufst das mit ein. Viele davon haben ihr Portfolio eher auf PHP, Emails, oder HTML Webhosting beschränkt. Da muss man ggf. suchen. Bolitho hatte oben auch etwas dazu geschrieben.

Wenn du Daten von Anderen verarbeist, müssen die dem zunächst zustimmen, ja. Du hast dann aber auch einige Pflichten, wie du mit den Daten umgehen darfst. Vor allem, wenn du wie hier noch Dritte dazwischenschaltest, musst du dir das auch von denen garantieren lassen.

Ich habe einige Lehrer auf deinen Trainer hingewiesen und als Info zurück erhalten, dass sie ihre Schüler überhaupt nirgendwo anmelden lassen dürfen, wenn es nicht vorab genehmigt ist. Aber da ist vermutlich sowieso jedes Bundesland und jede Schule etwas anders aufgestellt.

Ich habe mir nun die Webseiten des Rechentrainers und von Bettermarks angeschaut. Sind wirklich schöne, aber auch keine kleinen Projekte. Bettermarks beschäftigt eine Reihe von Angestellten und wird von hunderten Schulen und Klassen in mehreren Ländern eingesetzt. Natürlich lassen die sich den Support und die Weiterentwicklung bezahlen. Wieviel du da als Einzelkämpfer dagegen aufbauen kannst und willst ist eine andere Frage, aber spannend ist es allemal.

Dein zukünftiges Pythonskript wird vermutlich groß, aber es werden eher viele kleine Skripte, die dann auf einzelne Eingaben der Schülerinnen reagieren. Wenn du bei Amazon einen Artikel in den Warenkorb legst oder die Anzahl oder Farbe wechselst, klappt das doch auch gut, egal ob neben dir noch 200 andere Leute den gleichen Schuh untersuchen. Wieso übrigens gerade nur 200? Wird der Rechentrainer nur an einer Schule benutzt?

Vielleicht wäre ein guter erster Schritt mal eine kleine Webanwendung zu schreiben, um ein Gefühl für die Objektorientierung zu bekommen und das Projekt so in mehrere kleine Unteraufgaben zu zerschneiden. Hosting organisieren hast du auf dem Zettel. Irgendwann willst du auch Login hinzufügen. Besondere Funktionen für Lehrkräfte, usw. Vermutlich ist Rechentrainer auch nicht "über Nacht" entstanden, aber jetzt kannst du ihn als Vorlage nutzen. Nur dass dir da einige Aufgaben von Libre Office abgenommen wurden, oder wenn die Datei gespeichert und per Mail verschickt wird, wäre das in der neuen Logik eher eine interne Datenbank auf dem Server.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

@kebap: Danke dafür!
Was ist bisher geschehen: ich habe, wie gesagt, bei .artfiles angefragt und dort habe sie mir schon mal die Domain "rechentrainer.app" in mein Konto gepackt. Eigentlich wollte ich zunächst mal klären, ob das mit Django funktioniert. Dann habe ich bei Opalstack reingeschaut und das sieht tatsächlich so aus, als würde ich da mit meinem Projekt einfacher klarkommen. Und wenn ich das richtig sehe, kann ich die Domain ja bei .artfiles lassen und das Projekt selbst bei Opalstack laufen lassen - oder?

Mein Rechentrainer liegt ja schon auf dem hessischen Bildungsserver und ist auf dem deutschen Bildungsserver und auf Mundo verlinkt. Ich habe jetzt bei der hessischen Lehrkräfteakademie Kontakt aufgenommen (die betreiben den hessischen Bildungsserver) ob ich mit meinem Projekt auf ihrem Server unterkomme, die verweisen auf das Kultusministerium - die habe ich auch angeschrieben. Alle hessischen Lehrer und Schüler sind (wie ich das einschätze) bei "Lanis" angemeldet. Dort werden den Schulen Stundenpläne, Vertretungspläne und viele weitere nützliche Optionen zur Verfügung gestellt. Unter anderem hat das Land Hessen hier ein weiteres Matheprogramm aufgekauft, "Matheretter". Dort haben die Schülerinnen und Schüler direkt nach ihrer Anmeldung in Lanis Zugriff. Mal sehen, ob ich da reinkomme.
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

Solange du die DNS-Einstellungen für deine Domain selbst ändern kannst ist es ganz egal wo du die Domain bestellst. Das müsstest du vielleicht noch kontrollieren. Es gibt wohl noch einige, bei denen das nicht so ohne weiteres möglich ist ...
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Ihr müsst mir nochmal helfen!

Ich habe zwischenzeitlich gelernt, wie man mithilfe von Django, HTML und CSS Templates und Datenbanken erstellt und diese abfragt. Ich weiß noch nicht, wie man ein Script startet. Und hier habe ich nachgededacht:

Bisher wird in meinem Rechentrainer, abhängig von Schuljahr und Lernfortschritt, die Aufgaben aus Zufallszahlen erstellt. Ein einfaches Beispiel: Die Zufallszahl1 (ZZ1) und Zufallszahl2 (ZZ2) wird erstellt und das Ergebnis=ZZ1*ZZ2 berechnet. Der Nutzer bekommt anschließend ein Dialogfeld mit dem Auftrag die Aufgabe ZZ1*ZZ2 zu berechnen. Mein Script wartet auf die Eingabe, vergleicht dann die Eingabe mit dem Ergebnis und speichert die Daten in einer Tabelle (Calc). Mir fehlt jetzt die Phantasie, mir vorzustellen, was passiert, wenn 30 Schülerinnen und Schüler eines Lernkurses (oder auch 200) gleichzeit Multiplikationsaufgaben üben.

Ich vermute, dass die Aufgaben bei anderen Matheapps in einer Datenbank liegen.
Kebap hat geschrieben: Donnerstag 20. Januar 2022, 11:53 Wenn du bei Amazon einen Artikel in den Warenkorb legst oder die Anzahl oder Farbe wechselst, klappt das doch auch gut, egal ob neben dir noch 200 andere Leute den gleichen Schuh untersuchen.
Auch bei Amazon erfolgt meines Erachtens nur eine Datenbankabfrage, auch wenn Farbe und Größe des Produktes wechselt.

Weiterhin, habe ich ja auch noch 35 verschiedene Aufgabentypen, das sind nicht nur, wie oben, Grundrechenaufgaben, sondern auch Terme, Gleichungen, Funktionen, geometrische Figuren ..., die laufen zurzeit alle durch den gleichen Scriptteil, der den Aufgabentext anzeigt (u.U. auch noch eine aus den Zufallszahlen generierte Grafik dazu) und wartet jeweils auf eine Eingabe des Nutzers. Gut, das könnte ich in 35 einzelne Module trennen - aber, lößt das mein Problem?

Könnt ihr mir sagen, ob das so überhaupt zu realisieren ist (siehe Überschrift) oder kann ich das Ganze doch vergessen?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn die das gleichzeitig machen, dann werden die Ergebnisse eben in die Datenbank geschrieben. Gleichzeitig ist aus Computersicht im uebrigen immer noch relativ. Fuer uns sind 200 Leute, die gleichzeitig eine Aufgabe abgeben wollen, der Horron. Fuer den Computer sind das bequeme 5ms pro Abgabe, wenn das in einer Sekunde geschieht. Da hat der viel Zeit was zu erledigen. Und faktisch sind selbst bei mehreren hundert aktiven Nutzer die Menge der Requests pro Sekunde nicht ueberwaeltigend.

Ich sehe auch keinen Grund, warum dein Skript zerteilt werden muss. Es muss nur mehrfach gleichzeitig laufen, und das sollte es auch jetzt schon koennen. Der einzig konkurrierende Zugriff ist der auf die Datenbank, und die sorgt dafuer, dass mehrere Anfragen gleichzeitig abgearbeitet werden koennen.
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hallo Pitwheazle,
das ist (wie oben schon geschrieben) alles mit Django umsetzbar. Allerdings wird das kein kurzes Projekt. Django ist es auch egal, wie viele Leute da gerade zugreifen. Der Server muss entsprechende Kapazitäten haben. Das ist für die Entwicklung aber erstmal egal. Ich würde wahrscheinlich einen Teil der Last auf den Client auslagern. Alles was dynamische Grafiken (Diagramme etc.) sind, kann man mit Javascript machen. Sollte das nicht ausreichen, könnte man auch die zufälligen Aufgaben mit Javascript erzeugen. So teilen sich dann Backend (Django) und Frontend (Browser) ein wenig die Arbeit.
Das sollte man aber alles nach und nach machen und erstmal schauen, ob es überhaupt klemmt.

Viele Grüße
Whitie

P. S. Noch was in eigener Sache: Evtl. hätte ich Interesse dir ein wenig zu helfen. Ich arbeite im Bereich Berufsausbildung und könnte mit Vorstellen dort ein paar Rubriken in deinem Rechentrainer beizusteuern. Mit Django arbeite ich seit einigen Jahren und habe einige meiner Projekte produktiv im Einsatz. Ich hätte z. B. auch einen VPS mit einer Domain. Dort könnte man für die Entwicklung eine Subdomain einrichten. Auf dem VPS läuft auch ein eigener Gitea (Versionsverwaltung) Server. Der Haken wäre, dass ich wenig Zeit habe.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

__deets__ hat geschrieben: Montag 24. Januar 2022, 16:10 Wenn die das gleichzeitig machen, dann werden die Ergebnisse eben in die Datenbank geschrieben.
... geht das automatisch? Muss ich mich darum kümmern? Bei jedem Zugriff entstehen hier ja neue Einträge ... wo genau werden die gespeichert? Für jeden Nutzer werden ja nicht nur drei Werte (ZZ1, ZZ2 und Ergebnis) erzeugt, bei meiner jetzigen Version werden, abhängig von diesen Zufallszahlen auch z.B. individuelle Hilfetexte generiert - und die wiederum abhängig von der Kurszugehörigkeit der Nutzer (ich will hier nicht immer "Schülerinnen und Schüler" schreiben). Und weiterhin greife ich u.U. nach der Eingabe der Nutzer/in (!) nochmals auf die Anfangsdaten zu und interpretiere eine Falscheingabe.
__deets__ hat geschrieben: Montag 24. Januar 2022, 16:10 Gleichzeitig ist aus Computersicht im uebrigen immer noch relativ. Fuer uns sind 200 Leute, die gleichzeitig eine Aufgabe abgeben wollen, der Horron. Fuer den Computer sind das bequeme 5ms pro Abgabe, wenn das in einer Sekunde geschieht. Da hat der viel Zeit was zu erledigen. Und faktisch sind selbst bei mehreren hundert aktiven Nutzer die Menge der Requests pro Sekunde nicht ueberwaeltigend.
Dass 30, 200 oder 1000 Nutzer gleichzeit nicht das Problem sind, ist mir ja schon klar. Nach meinem Denken geht es ja hier aber nicht um 5ms, sondern um die 20 Sekunden, die die Schülerinnen / der Schüler für die Antwort braucht. Wo liegt mein Denkfehler?
__deets__ hat geschrieben: Montag 24. Januar 2022, 16:10 Ich sehe auch keinen Grund, warum dein Skript zerteilt werden muss. Es muss nur mehrfach gleichzeitig laufen, und das sollte es auch jetzt schon koennen.
Geht das automatisch?

... Sorry - ihr seht: ich habe keine Ahnung! (Und danke für eure Rücksichtnahme darauf.)
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Whitie hat geschrieben: Montag 24. Januar 2022, 16:20 P. S. Noch was in eigener Sache: Evtl. hätte ich Interesse dir ein wenig zu helfen.
Das fände ich natürlich riesig! Allerdings ist das, wie du dir denken kannst, noch ein weiter Weg für mich. Java Script kann ich auch nicht. Ich hatte gehofft, ohne auszukommen und wollte mal in svg reinschauen.

Hast du dir denn meinen Rechentrainer mal angesehen: https://medien.bildung.hessen.de/rechen ... index.html ?
Zuletzt geändert von Pitwheazle am Montag 24. Januar 2022, 16:59, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nichts geht automatisch. Das muss schon alles programmiert werden. Und die Antwortzeit (also die Zeit, welche die Schueler zur Beantwortung brauchen), vergeht doch, indem sie vor dem Rechner sitzen & nachdenken. Erst nach Eingabe und vor allem abschicken des Ergebnis wird da etwas verschickt (und verarbeitet).

Auch die ganzen anderen Texte sind kein Thema, die werden einfach "on the fly" erzeugt. Denn die Hilfetexte sind ja nun beschraenkt individuell, oder? Da steht halt "Hallo Klaus, ...", und sowas macht eine Template-Engine, wie sie in Django vorkommt, problemlos.

Das Grundproblem hier scheint aber wie du schon sagst dein nicht-verstaendnis davon, wie so eine Webanwendung funktioniert. Nichts von dem was du bisher vorgetragen hast spricht gegen eine Umsetzung via Web. Daher wuerde ich sagen: die Frage ist beantwortet, was fehlt ist, dir die Grundlagen durch zB ein Django-Tutorial drauf zu schaffen, um dafuer ein Gefuehl zu bekommen.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

__deets__ hat geschrieben: Montag 24. Januar 2022, 16:58 was fehlt ist, dir die Grundlagen durch zB ein Django-Tutorial drauf zu schaffen, um dafuer ein Gefuehl zu bekommen.
OK, da bin ich ja dran, ich wollte nur sicherstellen, dass ich, wenn ich mir das alles reingeschafft habe, nicht feststelle, dass das so alles nicht geht.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Pitwheazle: Da läuft kein durchgehendes Programm für jeden Nutzer. Die Webanwendung muss immer nur etwas tun wenn irgendein Benutzer etwas von ihr wissen will und/oder ihr Daten übergibt. Das ist eine Anfrage/Antwort Beziehung. Der Programmierer schreibt Code für eine Antwort auf eine Anfrage. In der Anfrage steckt dann beispielsweise auch drin wer das ist, damit man zuordnen kann was man über den Nutzer weiss, also welche Aufgaben zu ihm gehören, welche er schon gelöst hat, wie gut er die gelöst hat, und so weiter.

Sämtlicher Zustand der nicht bei den Anfrage/Antwort-Paaren ständig hin und her übertragen wird, landet in der Regel in der Datenbank auf dem Server. Die Frage ob das automatisch passiert, würde ich mit Jain beantworten. Nicht vollautomatisch das man einfach ein Programm schreibt wie man das bei einer Desktop-Anwendung machen würde, und der Zustand wird automagisch in einer Datenbank statt im Arbeitsspeicher persistiert, aber durch einen „object relational mapper“ (ORM) muss man nur für eher spezielle Sachen dann tatsächlich SQL für die Datenbank manuell schreiben. Und Django bringt ein ORM gleich mit.

Bezüglich auslagern von Code auf den Client: Das kann man für die Darstellung machen, also wenn es um Zeichnungen geht, die auf einem Canvas im Browser mit JavaScript und einer passenden Bibliothek gezeichnet werden, statt auf dem Server generiert zu werden, aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben. Jedenfalls nicht wenn die bewertet werden und die Bewertung für irgendwas *zählt*. Man würde die Schüler ja auch nicht ihre Aufgaben selbst schreiben lassen. Irgendein Schüler kann dann JavaScript und hat komischerweise immer ganz leichte Aufgaben und 99% der Punkte bei solchen Aufgaben. 😎
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 ..., aber durch einen „object relational mapper“ (ORM) muss man nur für eher spezielle Sachen dann tatsächlich SQL für die Datenbank manuell schreiben. Und Django bringt ein ORM gleich mit.
... das verstehe ich dann vielleicht auch irgendwann.
__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben.
... leuchtet ein und hatte ich auch nicht so geplant.
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 ..., aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben. Jedenfalls nicht wenn die bewertet werden und die Bewertung für irgendwas *zählt*. Man würde die Schüler ja auch nicht ihre Aufgaben selbst schreiben lassen. Irgendein Schüler kann dann JavaScript und hat komischerweise immer ganz leichte Aufgaben und 99% der Punkte bei solchen Aufgaben. 😎
Das fiel mir nach dem Schreiben auch auf, dass gerade diese Aufgabe nicht auf den Client gehört :D Man sollte über seine Beispiele etwas länger nachdenken.
Phitweazle hat geschrieben: Das fände ich natürlich riesig! Allerdings ist das, wie du dir denken kannst, noch ein weiter Weg für mich. Java Script kann ich auch nicht. Ich hatte gehofft, ohne auszukommen und wollte mal in svg reinschauen.
Hast du dir denn meinen Rechentrainer mal angesehen: https://medien.bildung.hessen.de/rechen ... index.html ?
Würde sagen, kurz reingeschaut. Ist ne riesige Arbeit, das hab ich zumindest gesehen. Um Javascript führt meiner Meinung nach kein Weg vorbei. SVG ist für viele Sachen geeignet, kann man per Javascript erzeugen ;-)
Allerdings gibt es für Diagramme, etc. fertige Bibliotheken (egal ob Javascript oder Python), das muss man nicht von Hand erzeugen. Ich hab ein ähnlich großes Projekt mit Django umgesetzt, 2013 begonnen, 2016 produktiven Einsatz gestartet und bis heute kommen regelmäßig neue Funktionen dazu. Will damit sagen, ja es dauert und ist ein weiter Weg...

Viele Grüße
Whitie
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Whitie hat geschrieben: Montag 24. Januar 2022, 19:06 Ich hab ein ähnlich großes Projekt mit Django umgesetzt, 2013 begonnen, 2016 produktiven Einsatz gestartet und bis heute kommen regelmäßig neue Funktionen dazu. Will damit sagen, ja es dauert und ist ein weiter Weg...
Nicht nur, dass ich bisher wenig Ahnung von Django, HTML, CSS und Python habe - ich habe auch keine Ahnung, wie das Projekt, das ich da angehe, mal aussehen könnte. ... Du verstehst sicher, dass ich da schaurig gerne mal einen Blick auf dein Projekt werfen täte
Antworten