**Grundsätzlich sind in diesem Modul Einzelarbeiten zu machen. Das heisst, dass jede Person (seine/ihre) eigene Abgabe macht und auch selber/einzeln abgibt. Gemeinsames Recherchieren und der Austausch von Techniken und Erkenntnisse sind, ausser bei der LB2 natürlich, explizit erwünscht.**
oder gar eine kleine wissenschaftliche Arbeit, zu erstellen. Sie erarbeiten selbstständig Themen, die folgend vorgegeben sind. Die Themen werden in einem Dokument behandelt, in dem sie zeigen, dass die die Inhalte vertieft verstanden haben.
<br> d.h. die Strategie der Branches in/mit Git, wie können Fixes und Weiterentwicklungen durchgeführt werden, ohne dass Sie den aktuellen Live-Code unterbrechen/stören
- Wie testet man während der Entwicklung und wie bei der Entwicklung im laufenden (produktiven) Betrieb
- Welche Testebenen gibt es (Dev-T, UserAcceptance-T, ProdInstall-T) und wie kann man automatiserte Test machen (lassen)
- Erklären Sie welche Tests für die Datenbankanbindung relevant sind (Load-Tests, Performace-Tests). Sie sollen dabei eine kurze Beschreibung der beiden Tests liefern und dann auf die Relevanz eingehen. Für beide Tests führen sie zusätzlich aus, was für Massnahmen möglich sind, wenn die Tests nicht erfolgreich verlaufen.
Es empfiehlt sich, die Themen im Erklärdokument so zu beschreiben, dass zugleich auch eine gute Vorbereitung für die schriftliche Prüfung **LB2** gemacht wird. Es empfiehlt sich ebenso, die thematisierten Techniken auch selber auszuprobieren und zu dokumentieren, damit sie dabei auch gleichzeitig diese Teile in der praktischen Übung **LB3** verwendet und angewendet werden können.
Für die praktische Übung ist eine Verwaltungs-WebApp in PHP oder ähnlichem mit 2 verschiedenen Datenbanken zu erstellen. Es kann dafür ein eigenes Thema (Sneaker- oder TShirt-Shop, Essenslieferdienst, Sporteventplanung, Ticket-Shop usw.) gewählt/gemacht werden.
Es wird verlangt, dass eine datenbasierte Software, mit mind. 12 Elementen/Artikeln in der DB mit Bestellmöglichkeit bis Rechnungstellung (ohne Bezahlmechanismus) gebaut wird. Zentral dabei ist, dass mindestens 2 unterschiedliche Daten-Haltungstechniken (Datenbank & Filedatenhaltung) angewendet werden.
- Dynamisch generierte Website (z.B. in PHP) mit 2 Datenbankanbindungen (z.B. für Artikel) und 1 Filedatenhaltung (z.B. für DB-Einstellungen oder für User) programmiert.
- Statischer DB-Switch (hart codiert, Applikation muss neu gestartet werden um auf die 2. DB zu kommen)
- Mehr als eine Datenbank gleichzeitig implementiert. Dabei müssen die beiden Datenbanken so umgeschaltet werden können, ohne dass **ein Restart der Applikation** durchgeführt wird. Sie müssen also einen "Toggle-Button" oder ähnliches auf der Oberfläche einbauen.
- Use case 1: Sie haben eine Produktion-Umgebung und eine User-Acceptance-Test-Umgebung parallel im Betrieb und Sie dürfen im Test keine produktiven Daten sehen und müssen das dem Gesetzgeber und dem/der Kunden beweisen indem Sie zwei Datenbanken "fahren", die sogar herstellerunabhängig sind.
- Use case 2: Sie migrieren Ihre Applikation auf eine neue Umgebung, in der nur noch das Datenbank-"Konkurrenzprodukt" verwendet werden darf. Z.B. wenn "Ihre" Applikation an eine andere Unternehmung verkauft wurde oder das Management bestimmt hat, dass nur noch die Datenbanken des "Einen" Herstellers verwendet werden darf.
- Bonus 1: Rechnungsstellung per Mail oder PDF für den Kunden zum Ausdrucken und zum Bezahlen via Einzahlungsschein oder persönlichem TWINT (-> QR-Code)
- Bonus 1: Externe Schnittstelle implementiert (Zahlungssystem einbinden, z.B. TWINT)
| **Aufgabe 1**<br/>Adminbereich samt Login und Userbereich (mit und ohne Login) realisieren | Aufgaben unvollständig. Daten wurden unvollständig oder gar nicht übernommen. Keine Benutzeridentifikation realisiert. Resultate sind für eine Anwendung unbrauchbar | 1. Verschlüsseltes Login mit Sessionüberprüfung <br/>2. Benutzerverwaltung mit verschiedenen Rechten <br/>3. Online-Administration der Websiteinhalte <br/>4. Formularüberprüfung | Datenstruktur und Datentypen wurden angelegt. Umfangreiches Benutzerkonzept erstellt und zumindest teilweise realisiert (z. B. Benutzerverwaltung über DB-Tabellen). |
| **Aufgabe 2**<br/>Datenbankserver mit transaktionssicheren Abfragen. (Oracle-Express, MSSQL-Express, MYSQL, Postgresql) | Applikation ist nicht lauffähig, Daten werden nicht vollständig angezeigt, Navigation ist nicht anwendergerecht implementiert. | Anbindung Applikation und Datenbank ist funktionsfähig. Daten der DB können administriert werden. Transaktionssichere Abfragen wurden realisiert, Navigation ist möglich. | SQL der Datenbank angepasst. Sinnvolle, grafisch ansprechende Darstellung der Daten. Daten können sortiert werden. Navigation ist übersichtlich und funktionsfähig. |
| **Aufgabe 3**<br/>MVC, 2-Tier, 3-Tier, 4-Tier | MVC nicht oder nur teilweise angewendet | MVC realisiert und funktionsfähig -> "läuft" | MVC realisiert und vorbildlich implementiert (bis ins Detail)|
| **Aufgabe 4**<br/>Eigene Funktionen - Eigene Klassen | Keine eigenen Funktionen entwickelt | Mehrere eigene Funktionen entwickelt und sinnvoll eingesetzt | Umfangreiches Funktionskonzept umgesetzt |
| **Aufgabe 5**<br/>Anwendung testen | Tests nicht oder nur wenig durchgeführt, kein Testkonzept, keine Testanleitung vorhanden | Tests wurden durchgeführt und dokumentiert. Testanleitung. Gefundene Fehler sind beschrieben. | Testkonzept vorhanden und durchgeführt. Testergebnisse sind dokumentiert und nachvollziehbar |