Zum Inhalt

Termin 5: Abnahme & Fachgespräch

Zweites Fachgespräch

In diesem Termin wird überprüft, ob Sie sich intensiv mit Ihrem Projekt und den Inhalten der Vorlesung auseinandergesetzt haben. Dabei stehen insbesondere folgende Punkte im Fokus:

  • Verständnis Ihres Projekts und der zugrunde liegenden Idee
  • Verständnis des eigenen Programmcodes einschließlich Code-Struktur, Syntax und Funktionsweise
  • Fähigkeit, zentrale Entscheidungen im Projekt zu begründen
  • Verständnis der in der Vorlesung behandelten Konzepte und Methoden
  • Fähigkeit zu erklären, welche Inhalte aus der Vorlesung im Projekt angewendet wurden
  • Einordnung, wo und in welchen praktischen Kontexten diese Technologien oder Konzepte eingesetzt werden können

Sollte der Eindruck entstehen, dass diese Punkte bei beiden Fachgesprächen nicht ausreichend erfüllt sind, werden keine Bonuspunkte vergeben. Im schlimmsten Fall kann dies zudem dazu führen, dass kein Testat erteilt wird.

Vorbereitung der Abnahme

  1. Die Abnahme findet an einem Ihrer Entwicklungsrechner statt. Stellen Sie sicher, dass sich darauf der konfigurierte Webserver befinden und alles funktioniert.
  2. Öffnen Sie Ihre Anwendung in zwei separaten Browser-Tabs:
    • einen Tab im normalen Modus
    • einen Tab im privaten (Inkognito-)Modus
  3. Ordnen Sie beide Browser-Tabs nebeneinander an, sodass jeder Tab jeweils 50 % der Bildschirmbreite einnimmt.
  4. Öffnen Sie zusätzlich die Datenbankverwaltung (phpMyAdmin) und löschen Sie alle bestehenden Datensätze früherer Bestellungen, um mit einer sauberen Ausgangslage zu starten.
  5. Öffnen Sie den W3C HTML Validator, um den Quellcode während der Abnahme zu überprüfen: https://validator.w3.org/#validate_by_input
  6. Bereiten Sie die Lighthouse-Analyse so vor, dass Sie sie direkt zeigen können.
  7. Öffnen Sie Ihr Projekt in der Entwicklungsumgebung, um Ihren Code schnell erklären zu können.

So sollte die Anordnung aussehen um eine schnelle Abnahme zu ermöglichen: Schaubild: zwei Browser-Tabs nebeneinander, je 50 Prozent Breite

Checkliste für die Abnahme

Für eine erfolgreiche Abnahme müssen alle Punkte erfüllt sein und die Fachgespräche insgesamt positiv ausfallen.

Checkliste

1. Allgemein

  • Der komplette Bestellablauf funktioniert wie gewünscht und ohne Probleme.
  • Konsequente Verwendung der vorgegebenen MVC-Architektur für alle Seiten.
  • Routing funktioniert durchgängig (Über Endpunkte /order, /customer, /baker, /driver, /statusApi statt direkter *.php-Aufrufe).
  • Nicht vorhandene Endpunkte werden sauber mittels 404-Seite abgefangen.
  • Sie haben alle Seiten in sinnvolle Partials aufgeteilt.
  • Die Anwendung ist gesichert gegen Cross-Site-Scripting (XSS) und gegen SQL-Injection.
  • Es gibt eine Navigationsleiste mit Links zu den Hauptseiten.

2. Funktion

  • Die Pizzen werden dynamisch aus der Datenbank generiert.
  • Der Warenkorb erlaubt das Löschen einzelner oder aller Pizzen und berechnet die Summe korrekt.
  • Eine Bestellung kann nur abgeschickt werden, wenn mindestens eine Pizza im Warenkorb liegt und das Adressfeld nicht leer ist. Vorher ist der „Bestellen“-Button deaktiviert und hat eine andere Farbe.
  • Bei zwei parallelen Bestellungen (verschiedene Sessions) sieht jeder Kunde ausschließlich seine eigene Bestellung.
  • Der Status der Bestellung auf der Kundenseite aktualisiert sich automatisch (Fetch API), ohne manuelles Neuladen der Seite.
  • Statusänderungen auf der Bäcker- oder Fahrerseite werden richtig verarbeitet.
  • Wo notwendig, ist das Post/Redirect/Get (PRG)-Pattern umgesetzt.
  • Die Bäckerseite zeigt alle Pizzen an die bestellt oder im Ofen sind.
  • Die Fahrerseite zeigt alle Bestellungen an, die zur Auslieferung bereitstehen oder ausgeliefert werden.
  • Die gesamte Bestellung samt Pizzen wird nach der Auslieferung aus der Datenbank gelöscht.

3. Gestaltung

  • Ansprechendes Design.
  • Mindestens eine neue Schrift eingebunden und benutzt.
  • Auf allen Seiten wird ein responsives Design umgesetzt.
  • Die Anwendung ist auf mobilen Geräten gut nutzbar.

4. Fehlerfreiheit

  • Alle Seiten sind zu jedem Zeitpunkt und in jedem Zustand fehlerfrei.
  • Alle generierten Seiten werden vom W3C Validator als fehlerfrei bestätigt.
  • Die JavaScript-Konsole zeigt zu keinem Zeitpunkt und bei keinem Ereignis einen Fehler an.
  • Das Layout ist an allen Breakpoints responsive, konsistent und ohne Darstellungsfehler.
  • Erwartete Fehlerzustände werden abgefangen und mittels Exceptions oder geeigneter Error-Messages kommuniziert.

5. Performance & Qualität

  • Ihre Webanwendung wurde mit Lighthouse getestet und erreicht in jeder Metrik einen Score ≥ 80.