Einfuehrung in QFQ
Für Praktikanten und Lehrlinge
- Table of contents
- Vorkenntnisse SQL
- Vorkenntnisse Web-Entwicklung
- QFQ
Vorkenntnisse SQL¶
Kurze Einfuehrung in phpmyadmin als GUI auf die mysql DB, Sublime Text mit SQL Syntax highlighting. Danach sollen an einer Test DB selbststaendig Aufgaben geloest werden, welche die folgenden Keywords abdecken:
- SELECT … FROM … WHERE … GROUP BY … ORDER BY
- CONCAT
- IF
- JOIN (oder: mehrere Tabellen FROM)
- LEFT JOIN
- GROUP_CONCAT
- INSERT
- UPDATE
- DELETE
Im Anschluss noch spezifisch zu unserer Arbeit im Zusammenhang mit SQL:
- Foreign Keys und dass wir diese fast nie einsetzen
- Ggroup & Group Member als ‘Tag-System’
- kleine Uebung – Anlegen einer neuen Ggroup und SELECT Statement
Hinweis auf Applications > Programming > DataGrip (Zuvor mit UZH Mailadresse einen JetBrains EDU Account erstellen).
Vorkenntnisse Web-Entwicklung¶
CMS / Typo3¶
Eine Einfuehrung in Typo3 sollte abdecken:
- Was ist ein CMS?
- Pages, PageContent
- FeUser, BeUser
- Berechtigungen
HTML Grundlagen¶
Anschliessend an die T3-Einfuehrung soll eine Aufgabe die HTML-Kenntnisse auffrischen. Der Fokus soll ganz klar auf Page Content und nicht auf Seitenlayout (kein float, grid, usw.) liegen.
So soll ein typischer Page Content statisch mit HTML erstellt werden. Zu denken waere eine Tabelle mit Spaltenueberschriften, sowie ‘new’ und ‘edit’ Buttons, da dieses ‘Layout’ bei uns oft vorkommt.
CSS / Bootstrap¶
Falls keine CSS-Grundlagen vorhanden sind, dann macht eine kurze CSS-Einfuehrung Sinn, ansonsten kann dies weggelassen werden.
Der zuvor erstellte Page Content soll jetzt durch Bootstrap aufgehuebscht werden. Ziel waere, dass die Seite danach den typischen QFQ-Look hat – es ist aber immer noch alles statisch. Bootstrap Klassen sollen mindestens verwendet werden fuer:
- Tabelle
- Buttons
Im Anschluss kann die Bootstrap Doku noch im Selbststudium durchforstet werden. Ansprechende Komponenten oder Styles sollen ausprobiert werden!
Insbesondere ein Bootstrap-Formular soll erstellt werden, welches die Datenerfassung und Manipulation fuer die bestehende Tabelle ermoeglichen soll. (Nur ‘im Prinzip’, Formular submit muss nichts machen).
JavaScript / jQuery¶
Javascript und jQuery können kurz angeschnitten werden im Zusammenhang mit dem zuvor erstellten Formular. In einem einfachen Beispiel soll ein Formularelement abhängig vom value einer Checkbox ein- oder ausgeblendet werden. Dies sollte auch zum späteren Verständnis von Dynamic Update beitragen.
QFQ¶
QFQ wird alles zuvor Gelernte zusammenbringen. Kurze Einfuehrung: Was ist QFQ, was kann QFQ?
Einfuehrung Report¶
Einfuehrung in die Report-Syntax, Tabelle aus vorheriger Uebung mit QFQ nachbauen.
- Sql, head, tail, shead, stail, rend, renr, fbeg, fend
- AS _pagen, pagee, paged, link
Einfuehrung Forms¶
Einfuehrung in das Form-Formular zum Erstellen von Forms. Das Formular aus der vorherigen Uebung soll jetzt mit QFQ nachgebaut werden. Das Resultat sollte sein, dass neue Eintraege in der Tabelle erscheinen, wenn diese ueber das Form erfasst wurden.
Kleinprojekt¶
Der/die Lernende soll moeglichst selbststaendig ein QFQ Projekt bewaeltigen. Gegeben sind nur die Anforderungen. Denkbar waere auch Durchfuehrung nach IPERKA.
Anforderungen¶
Es kann ein generischen Beispiel, z.B. Studenten mit Vorlesungen, gewählt werden. Damit sollte eine Aufgabenstellung formuliert werden, die nach folgenden Features verlangt:
- Erfassen / bearbeiten / loeschen von Datensaetzen
- Subrecord oder Template Group
- File Upload (pdf)
- Emailversand
- Download (pdf)
Konzept¶
- Erstellen eines Mockups, z.b. mit draw.io, balsamiq, von Hand…
- Erstellen eines Datenbankschemas
Implementierung¶
Der/die Lerndende soll das selbst erstellte Konzept nach Rücksprache mit der Betreuungsperson so eigenständig wie möglich implementieren. Fuer spezifische Probleme (z.B. File Upload, Subrecord, Email versenden…) werden Links auf die spezifischen Stellen in der QFQ Dokumentation gegeben.
Testen¶
Testfaelle werden aus den Anforderungen abgeleitet. Ein Testprotokoll soll erstellt werden und anschliessend sollen die Tests durchgeführt werden.
QFQ - alle Features¶
Nach der ersten Einarbeitung in QFQ geht es darum sich einen fundierten Ueberblick zu verschaffen welche Möglichkeiten QFQ alles bietet. Alle Hauptkapitel und ob sie zu lesen / verstanden / übersprungen werden können:
- Überfliegen: https://docs.qfq.io/en/master/Installation.html
- Verstehen (ohne Multi DB): https://docs.qfq.io/en/master/Concept.html
- Verstehen: https://docs.qfq.io/en/master/Debug.html
- Verstehen: https://docs.qfq.io/en/master/Variable.html
- Verstehen: https://docs.qfq.io/en/master/Security.html
- Verstehen: https://docs.qfq.io/en/master/Store.html
- Nicht lesen: https://docs.qfq.io/en/master/LDAP.html
- Verstehen: https://docs.qfq.io/en/master/Form.html
- Unterkapitel überspringen: Multi Form, Multiple Languages, Encryption, Copy Form, Locking Record, Import/merge form, Form As File
- Verstehen : https://docs.qfq.io/en/master/Report.html
- Unterkapitel überspringen: Using Twig, Websocket, Monitor, Report as File
- Unterkapitel später lesen: QFQ Functions, Cache
- Nicht lesen: https://docs.qfq.io/en/master/REST.html
- Überfliegen: https://docs.qfq.io/en/master/System.html
- Verstehen: https://docs.qfq.io/en/master/GeneralTips.html
- Überfliegen: https://docs.qfq.io/en/master/UseCase.html
- Verstehen & Anwenden: https://docs.qfq.io/en/master/CodingGuideline.html
Updated by Carsten Rose 8 months ago · 10 revisions