Vokabeltrainer: Woche 11
Nein ich habe den Bericht über den Vokabeltrainer diese Woche nicht vergessen. Am Sonntag hatte ich nur keine Zeit zum Schreiben und seit Montag verlangt die Schule und Arbeit soviel ab, dass keine Zeit und Lust mehr zum Bloggen bleibt. Da es bei Matze diese Woche auch ähnlich stressig ist, wird die Woche 12 im Projekt Vokabeltrainer um eine Woche verschoben 😉 Aber nun zu dem, was wir in der letzten Woche geschafft haben:
Gruppenbilder
Für eine Gruppe kann man, wie in einem Benutzer-Profil, ein Profilbild hochladen. Das Ganze muss sowohl als Quadrat als auch in verschiedenen Original-Verhältnissen gespeichert werden. Bei den Profilbildern von Userprofilen kommt ja eine Gesichtserkennungsbibiliothk zum Einsatz, was bei einem Gruppenbild nicht möglich ist. Aus diesem Grund habe ich eine eigene kleine Image-Resize-Classe geschrieben, um einen möglichst sinnvollen Bildausschnitt zu nehmen. Diese Klasse werde ich in den kommenden Wochen bei den Codeschnippseln auch noch veröffentlichen. Damit haben Matze und ich dann den Bildupload von Gruppen-Profilbildern sowohl beim Editieren von Gruppenprofilen als auch beim Erstellen von Gruppen realisiert.
Anlegen von Gruppen
Die PHP-Dateien zum Anlegen von Gruppen bestanden größtenteils bereits. Jetzt hat Matze das Ganze noch mit dem Bild-Upload in AJAX umgesetzt. Anfangs vergaßen wir einige Punkte, wie z.B. den Gründer zum Mitglied der Gruppe zu machen oder ihm Adminrechte zuzuweisen. Diese Probleme dürften aber nun beseitigt sein 😉
Gruppenprofil und Memberliste
Matze hat die Editieren-Funktion des Gruppenprofiles noch um einen Sprachwahldialog erweitert, wie es auch im User-Profil-Edit zu finden ist. Des Weiteren hat er veranlasst, den Ersteller der Gruppe in der Datenbank zu speichern. Dies war nötigx, da er eine Memberliste für Gruppen geschrieben hat, in der Administratoren Admins benennen und entmachten können und Mitglieder der Gruppe verwiesen werden können. Wenn sich nur aber jeder Admin die Reche entzieht, gibt es das Problem, dass irgendwann eine Gruppe ohne Admin dasteht. Daher können sich Admins selbst die Rechte nicht entziehen und der Gruppengründer kann durch andere Admins nicht entmachtet werden.
Gruppen in Suche
In der Suche soll neben Benutzern auch nach Schulen und Gruppen gesucht werden können. Das Letztere hat Matze in der vergangenen Woche unter Beachtung der Gruppenart eingepflegt. Sprich: Geheime Gruppen werden hier nicht angezeigt.
News About in Gruppen
Ich beschäftigte mich in der letzten Woche auch mit dem News About der Gruppen. Also das Schreiben von Posts durch Gruppenmitglieder und dem System, wie auch Kommentaren dieser Posts. Matze hat das dann in derselben Art wie im Profil in AJAX umgesetzt.
Status im Chat
Wir bemerkten erst letzte Woche, dass in der Statusleiste des Chats alle die diejenigen als online angezeigt werde, die sich einmal im Vokabeltrainer eingeloggt hatten. Das ist natürlich nicht Sinn und Zweck des Ganzen. Nun wird alle paar Sekunden geprüft ob ein Freund online kam oder zu lange inaktiv war und damit auf abwesend gesetzt wird oder offline gegangen ist.
Vokabellisten und Vokabeln
Nachdem ich mir bereits an Silvester über den Aufbau des Vokabelsystems Gedanken gemacht habe, war letzte Woche der Startschuss für die Umsetzung gefallen. Ich habe erst einmal die Erstellung von Vokabellisten und danach die Befüllung mit Vokabeln umgesetzt. Dabei kann man für Vokabeln in der Ausgangssprache das Wort und Synonyme angeben und in der Zielsprache die Übersetzung, Synonyme, Opposition und, falls es ein Verb ist, die irregulären Verbformen. Zu mehr bin bei den Vokabeln letzte Woche leider nicht mehr gekommen. Das Ganze muss Matze nun natürlich wieder in AJAX umsetzen 😉
Punkte und Buchungssystem
Letzte Woche wurde ja der Ansatz des Vokabelbereiches angepackt. Dazu gehören auch Punkte, die man beim Vokabel lernen kassieren kann und sich damit hoffentlich möglichst bald Gutscheine für Shops des Webs „kaufen“ kann. Wir überlegen den Bereich Shop in Redemption oder dergleichen umbenennen, denn Shop klingt so nach kaufen gegen Geld. Aber zurück zum eigentlichen Thema, den Punkten: Nun hat jeder Benutzer ein Konto, in dem die von ihm erspielten Punkt gesammelt werden. Um Bugusing vorzubeugen habe ich gleich ein Buchungssystem gebaut. Jedesmal wenn an den Konten der Benutzer eine Änderung vorgenommen wird gibt es eine Buchung mit Rückvollzug darüber, wie diese ausgelöst wurde. Dadurch kann das System später erkennen, dass der Benutzer XY unwahrscheinlich viele Punkte in z.B. einer Minute verdient hat. Dann werden wir – die Betreiber des Vokabeltrainers – benachrichtigt, die sich das Ganze nochmal mir menschlichem Verstand ansehen und im Zweifelsfall über eine Korrekturbuchung die Punkte wieder einziehen. Dann heißt’s Bugfounding 😉
Soviel inhaltlich zur letzten Woche. Wie bereits oben angekündigt legen wir diese Woche schulisch bedingt eine kleine Pause ein, in der Hoffnung, dass es nächste Woche wieder besser wird. Was nicht unerwähnt bleiben sollte ist auch, dass ich David das Script gezeigt habe, damit er mit der Umsetzung des Designs beginnen kann. Das wird jedoch wahrscheinlich auch noch etwas dauern, da er in seiner Ausbildung derzeit auch gut ausgelastet ist und, nachdem man den ganzen Tag für Kunden Webseiten und Co. gestaltet hat, nicht immer Lust hat, den Abend sich noch mit Designs herumzuschlagen.
So long