Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m290_guko:leistungsbeurteilungen:03_lb:b_projektbeschrieb [2025/11/30 19:03] – gkoch | modul:m290_guko:leistungsbeurteilungen:03_lb:b_projektbeschrieb [2025/11/30 21:29] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| ===== Einleitung ===== | ===== Einleitung ===== | ||
| Zeile 6: | Zeile 6: | ||
| **SQL** (DDL, DML, DCL), **ERM/ | **SQL** (DDL, DML, DCL), **ERM/ | ||
| - | In der dritten und letzten Leistungsbeurteilung (LB3) verknüpfen wir dieses Wissen mit einem **Backend-Server**: | + | In der dritten und letzten Leistungsbeurteilung (LB03) verknüpfen wir dieses Wissen mit einem **Backend-Server**: |
| Sie implementieren einen **Node.js/ | Sie implementieren einen **Node.js/ | ||
| Das Frontend wird **nicht** programmiert – stattdessen simulieren wir es mit **Postman**. | Das Frontend wird **nicht** programmiert – stattdessen simulieren wir es mit **Postman**. | ||
| Zeile 19: | Zeile 19: | ||
| * eine passende **MySQL-Datenbank** mit Startdaten und einem AppUser, | * eine passende **MySQL-Datenbank** mit Startdaten und einem AppUser, | ||
| * einen **Express-Server**, | * einen **Express-Server**, | ||
| - | * ein **Video-Tutorial** (ca. 15 Minuten), in dem Sie Ihre Lösung erklären und demonstrieren. | + | * 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 | Zielpublikum des Tutorials sind Ihre «Mit-Auszubildenden» aus dem 2. Lehrjahr, die die Themen | ||
| Zeile 41: | Zeile 41: | ||
| - Erklärung des **ERD** in Crow’s-Foot-Notation (Tabellen, PK/FK, Datentypen) | - Erklärung des **ERD** in Crow’s-Foot-Notation (Tabellen, PK/FK, Datentypen) | ||
| - **Datenbank** | - **Datenbank** | ||
| - | - Anlegen der Datenbank & Tabellen per SQL-Skript (DDL – <color # | + | - Anlegen der Datenbank & Tabellen per SQL-Skript/ |
| - | - Import der Startdaten per SQL-Skript (DML – <color # | + | - Import der Startdaten per SQL-Skript/ |
| - Anlegen und Berechtigen eines **AppUsers** (DCL) | - Anlegen und Berechtigen eines **AppUsers** (DCL) | ||
| - **Backend / Server** | - **Backend / Server** | ||
| - Aufbau des Node.js/ | - Aufbau des Node.js/ | ||
| - Erklärung der wichtigsten Routen (z.B. GET /api/…, POST /api/…) | - Erklärung der wichtigsten Routen (z.B. GET /api/…, POST /api/…) | ||
| - | - **Nachweis aller CRUD-Operationen** über den Server (Terminal / Log-Ausgaben) | ||
| - **Tests mit Postman** | - **Tests mit Postman** | ||
| - | - Vorführen der wichtigsten **REST-Endpunkte** mit Postman (Create, Read, Update, Delete) | + | - 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 **JOIN** (Daten aus 2 Tabellen) | ||
| - Anzeigen eines Beispiels mit **Aggregatfunktion** (z.B. COUNT, AVG, MAX) | - Anzeigen eines Beispiels mit **Aggregatfunktion** (z.B. COUNT, AVG, MAX) | ||
| - | - Sinnvolle Verwendung von **HTTP-Statuscodes** (200, 201, 400, 404, 500 …) | + | - Sinnvolle Verwendung von **HTTP-Statuscodes** (z.B. 200, 201, 400, 404, 500 …) |
| - **Reflexion** | - **Reflexion** | ||
| - Jede Person im Team nennt **mindestens 2 Learnings** (positiv / herausfordernd) | - Jede Person im Team nennt **mindestens 2 Learnings** (positiv / herausfordernd) | ||
| Zeile 74: | Zeile 73: | ||
| * funktionierendem **Express-Server** mit CRUD-Endpunkten, | * funktionierendem **Express-Server** mit CRUD-Endpunkten, | ||
| * sinnvollen **Fehlermeldungen** und HTTP-Statuscodes, | * sinnvollen **Fehlermeldungen** und HTTP-Statuscodes, | ||
| + | * vollständigen **Datenbank-Dump**, | ||
| * verständlicher **Erklärung** im Video. | * verständlicher **Erklärung** im Video. | ||
| - | * Es reicht, wenn Ihr Server Daten **erstellen, | + | * Es reicht, wenn Ihr Server Daten **erstellen, |
| - | | + | * Der Backend-Server darf nicht über den Root-User in der Datenbank Änderungen machen, sondern "nur" via AppUser. |
| - | * Eine aufwändige Benutzerverwaltung mit Login ist **nicht Pflicht**. | + | |
| - | Falls Sie eine User-Tabelle einbauen, wird diese nur zur Zuordnung der Daten verwendet. | + | |
| Zeile 89: | Zeile 87: | ||
| Im ZIP-File müssen enthalten sein: | Im ZIP-File müssen enthalten sein: | ||
| - | - **Video-Tutorial** (ca. 15 Minuten, gängiges Format: MP4, MOV, …) | + | - **Video-Tutorial** (ca. 15 Minuten, gängiges Format: MP4, H.264 Codec, max. FullHD Auflösung (1920x1080px), |
| - | - **ERM** | + | - **ERM** |
| - | - **ERD** als PDF-Datei | + | - **SQL-Skript (DDL)**: Anlegen der Tabellenstruktur |
| - | - **SQL-Skript (DDL)**: Anlegen der Tabellenstruktur | + | - **SQL-Skript (DML)**: Import / Insert der Startdaten |
| - | - **SQL-Skript (DML)**: Import / Insert der Startdaten | + | - **SQL-Skript (DCL)**: Anlegen und Berechtigen eines AppUsers zur DB (inkl. Kommentar zu den vergebenen Rechten) (.sql-File) |
| - | - **SQL-Skript (DCL)**: Anlegen und Berechtigen eines AppUsers zur DB | + | - **Datenbank-Dump**: |
| - | | + | |
| - **Node.js-Projektordner**: | - **Node.js-Projektordner**: | ||
| - package.json | - package.json | ||
| - Server-Datei(en) (z.B. app.js / index.js) | - Server-Datei(en) (z.B. app.js / index.js) | ||
| - ggf. .env-Beispiel (ohne echte Passwörter) | - ggf. .env-Beispiel (ohne echte Passwörter) | ||
| - | - README.txt mit kurzen Start-Hinweisen (z.B. `npm install`, `npm start`) | + | - README.txt mit kurzen Start-Hinweisen (z.B. 'npm install', 'npm start') |
| Stellen Sie sicher, dass Ihr Projekt auf einem anderen Rechner mit den | Stellen Sie sicher, dass Ihr Projekt auf einem anderen Rechner mit den | ||
| bereitgestellten Skripten **reproduzierbar** eingerichtet werden kann. | bereitgestellten Skripten **reproduzierbar** eingerichtet werden kann. | ||