LB03 - Projektauftrag
Einleitung
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 wir dieses Wissen mit einem Backend-Server:
Sie implementieren einen Node.js/Express-Server, der über eine REST-API auf Ihre MySQL-Datenbank zugreift.
Das Frontend wird nicht programmiert – stattdessen simulieren wir es mit Postman.
Auftrag
Sie wählen im 2er-Team einen der beschriebenen Use Cases aus (pro Klasse: jedes Thema nur einmal).
Zu diesem Use Case entwickeln Sie:
ein sauberes Datenmodell (ERM/ERD),
eine passende MySQL-Datenbank mit Startdaten und einem AppUser,
einen
Express-Server, der die wichtigsten Funktionen als
CRUD-REST-API bereitstellt,
ein Video-Tutorial (ca. 15 Minuten), in dem Sie Ihre Lösung erklären und demonstrieren. Beide bzw. alle Team-Mitglieder müssen einen Teil des Videos einsprechen.
Zielpublikum des Tutorials sind Ihre «Mit-Auszubildenden» aus dem 2. Lehrjahr, die die Themen
besser verstehen sollen.
Inhalt des Videotutorials
Das Video soll strukturiert und nachvollziehbar sein und mindestens folgende Teile enthalten:
Einleitung
Kurzvorstellung des Use Cases (Problem / Idee)
Was Ihre App grob können soll
Analyse & Datenmodell
Erklärung des ERM (Entitäten, Beziehungen, Kardinalitäten)
Erklärung des ERD in Crow’s-Foot-Notation (Tabellen, PK/FK, Datentypen)
Datenbank
Anlegen der Datenbank & Tabellen per SQL-Skript/Befehlen (DDL)
Import der Startdaten per SQL-Skript/Befehlen (DML)
Anlegen und Berechtigen eines AppUsers (DCL)
Backend / Server
Aufbau des Node.js/Express-Projekts (wichtigste Dateien kurz erklären)
Erklärung der wichtigsten Routen (z.B. GET /api/…, POST /api/…)
Tests mit Postman
Vorführen der wichtigsten REST-Endpunkte mit Postman (Create, Read, Update, Delete) inkl. zeigen der Änderungen in der Datenbank (in Webstorm mit Datenbank-Plugin)
Anzeigen eines Beispiels mit JOIN (Daten aus 2 Tabellen)
Anzeigen eines Beispiels mit Aggregatfunktion (z.B. COUNT, AVG, MAX)
Sinnvolle Verwendung von HTTP-Statuscodes (z.B. 200, 201, 400, 404, 500 …)
Reflexion
Jede Person im Team nennt mindestens 2 Learnings (positiv / herausfordernd)
Was würden Sie beim nächsten Mal anders machen?
Schluss
Kurze Zusammenfassung Ihrer Lösung
Ausblick / mögliche Erweiterungen
Wichtige Hinweise
Frontend:
Die Programmierung eines eigenen Frontends ist kein Bestandteil des Auftrags.
Alle Funktionen werden mit Postman getestet und demonstriert.
Fokus liegt auf:
sauberem Datenmodell (ERM/ERD, richtige Datentypen, PK/FK),
korrekten SQL-Skripten (DDL, DML, DCL),
funktionierendem Express-Server mit CRUD-Endpunkten,
sinnvollen Fehlermeldungen und HTTP-Statuscodes,
vollständigen Datenbank-Dump,
verständlicher Erklärung im Video.
Es reicht, wenn Ihr Server Daten erstellen, lesen, ändern und löschen kann (CRUD) und mindestens einen JOIN und eine Aggregat-Abfrage bereitstellt.
Der Backend-Server darf nicht über den Root-User in der Datenbank Änderungen machen, sondern „nur“ via AppUser.
Abgabe – Zu liefernde Lernprodukte
Das gesamte Projekt ist als ein ZIP-File in Moodle abzugeben.
Im ZIP-File müssen enthalten sein:
Video-Tutorial (ca. 15 Minuten, gängiges Format: MP4, H.264 Codec, max. FullHD Auflösung (1920x1080px), min. Auflösung: 1280x720px, max. Video-Grösse: 500
MB, Bitrate: ca. 3000-5000kbps)
ERM und ERD als PDF-Datei
SQL-Skript (DDL): Anlegen der Tabellenstruktur (.sql-File)
SQL-Skript (DML): Import / Insert der Startdaten (.sql-File)
SQL-Skript (DCL): Anlegen und Berechtigen eines AppUsers zur DB (inkl. Kommentar zu den vergebenen Rechten) (.sql-File)
Datenbank-Dump: Erstellen Sie mit mysqldump/Webstorm-Export ein SQL-File, woraus die Datenbank inkl. Daten und Tabellen-Struktur wiederhergestellt werden kann. (.sql-File)
Node.js-Projektordner:
package.json
Server-Datei(en) (z.B. app.js / index.js)
ggf. .env-Beispiel (ohne echte Passwörter)
README.txt mit kurzen Start-Hinweisen (z.B. 'npm install', 'npm start')
Stellen Sie sicher, dass Ihr Projekt auf einem anderen Rechner mit den
bereitgestellten Skripten reproduzierbar eingerichtet werden kann.