In den ersten zwei Dritteln des Moduls M290 haben Sie sich intensiv mit relationalen Datenbanken, SQL (DDL, DML, DCL), ERM/ERD, Tabellenbeziehungen, JOINs und Aggregatfunktionen beschäftigt.
In der dritten und letzten Leistungsbeurteilung (LB03) verknüpfen Sie dieses Wissen mit einem Backend-Server: Sie implementieren einen Node.js/Express-Server, der über eine REST-API auf Ihre MySQL-Datenbank zugreift. Ein Frontend wird nicht programmiert – stattdessen simulieren Sie es mit Postman.
Wichtig: Das Erklärvideo (Screencast) ist Teil der Leistung. Beide Lernenden müssen darin vorkommen und jeweils einen Teil von Setup/Code verständlich erklären.
Sie wählen im 2er-Team einen der beschriebenen Use Cases aus (pro Klasse: jedes Thema nur einmal). Zu diesem Use Case entwickeln Sie:
Zielpublikum des Tutorials sind Ihre Mit-Auszubildenden aus dem 2. Lehrjahr, die die Themen
Mindestanforderungen (MUSS)
npm run dev oder npm start oder node index.js)/api/serien)GET, POST, PUT, DELETEroot, sondern über einen AppUser (Least Privilege)Das Video soll strukturiert und nachvollziehbar sein und mindestens folgende Teile enthalten:
index.js, package.json)GET /api/…, POST /api/…)Wichtig für die Bewertung des Verständnisses
req.params.id?).Im ZIP-File müssen enthalten sein:
.sql-File).sql-File).sql-File)) .sql-File)package.jsonindex.js, connect.js)Reproduzierbarkeit: Ihr Projekt muss auf einem anderen Rechner mit Ihren Skripten nachvollziehbar eingerichtet werden können.
| Bereich | Max. Punkte | Voll erfüllt | Teilweise erfüllt | Nicht erfüllt |
|---|---|---|---|---|
| 1. Projekt-Setup & Reproduzierbarkeit | 8 | Start/Setup klar (alle Dateien sind vorhanden und ausführbar), Server startet zuverlässig, Abgabe sauber strukturiert | Läuft grundsätzlich, aber Setup unklar/fehleranfällig | Start nicht möglich / unvollständig |
| 2. Datenmodell (ERM/ERD) | 12 | Entitäten/Beziehungen korrekt, PK/FK nachvollziehbar, Kardinalitäten stimmen | Modell vorhanden, aber Lücken/FK/Kardinalitäten unklar | Kein brauchbares Modell |
| 3. MySQL-Implementierung (DDL + Datentypen + Constraints) | 10 | DDL ausführbar, Datentypen sinnvoll, PK/FK korrekt, Constraints passend | DDL vorhanden, aber Mängel bei Datentypen/Keys/Constraints | Nicht ausführbar / unpassend |
| 4. Startdaten (DML) | 6 | Mehrere realistische Datensätze, gut testbar | Wenige/teilweise unpassende Daten | Keine Startdaten |
| 5. AppUser & Rechte (DCL, Least Privilege) | 6 | AppUser funktioniert, Rechte minimal sinnvoll, keine root-Nutzung | AppUser vorhanden, aber Rechte unklar/zu breit | Kein AppUser / root verwendet |
| 6. API Design & Struktur | 8 | Konsistente Pfade (/api/…), sinnvolle Ressourcen, /:id korrekt | Routen vorhanden, aber inkonsistent/unsauber | Unklar/chaotisch |
| 7. CRUD über Backend → MySQL | 15 | GET/POST/PUT/DELETE funktionieren, DB ändert sich sichtbar, SQL sauber | CRUD teilweise fehlerhaft/unvollständig | CRUD nicht nachweisbar |
| 8. JOIN-Route | 6 | Mindestens eine Route mit JOIN, Ergebnis sinnvoll | JOIN vorhanden, aber Ergebnis unklar/falsch | Kein JOIN |
| 9. Aggregat-Route (GROUP BY) | 6 | Mindestens eine Aggregat-Route korrekt (COUNT/AVG/SUM etc.) | Aggregat vorhanden, aber unklar/falsch | Kein Aggregat |
| 10. Validierung, Fehlerbehandlung, HTTP-Statuscodes | 8 | 400/404/500 sinnvoll, Pflichtfelder geprüft, verständliche Fehlermeldungen | Teilweise vorhanden, teils falsche Codes | Keine Validierung/Fehlerhandling |
| 11. Video-Tutorial (Screencast) & Verständnisnachweis | 15 | Struktur klar, beide erklären aktiv, Demo mit Postman + DB sichtbar, reflektiert | Video vorhanden, aber unklar/zu kurz/Teamanteil ungleich | Kein Video / Verständnis nicht nachweisbar |
Eigenleistung / Verständnis Sie müssen Ihre Lösung erklären können (SQL, Datenmodell, API, Tests). Wenn zentrale Teile nicht fachlich korrekt begründet werden können, kann der entsprechende Bereich mit 0 Punkten bewertet werden.
Verspätete Abgaben Geben Sie die Projektarbeit verspätet ab, wird pro 24h-Verspätung eine ganze Note abgezogen.
Die Projektarbeit ist der dritte Teil der Modulnote und daher nicht optional. Bei Nicht-Abgabe (ohne Dispens/ärztliches Zeugnis) wird die Note 1 eingetragen.
Note = 1.0 + 5.0 × (Punkte / 100) (Beispiel: 80 Punkte → 1.0 + 5.0 × 0.80 = 5.0)