From 8c02bb4bc85fbfb03974f3bdcacfc7cf30c9185e Mon Sep 17 00:00:00 2001 From: Thomas Smits Date: Mon, 6 Nov 2023 16:22:36 +0100 Subject: [PATCH] Update of exercises --- Assignment_004/filmdb.png | Bin 0 -> 36889 bytes Assignment_004/readme.md | 68 ++++++++++++++++++++++++++++++++++++++ readme.md | 1 + 3 files changed, 69 insertions(+) create mode 100644 Assignment_004/filmdb.png create mode 100644 Assignment_004/readme.md diff --git a/Assignment_004/filmdb.png b/Assignment_004/filmdb.png new file mode 100644 index 0000000000000000000000000000000000000000..43cfa39cbbbc21023f68d2468cc99d79a2a362bb GIT binary patch literal 36889 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�k5)Ap}Zq~y0 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 literal 0 HcmV?d00001 diff --git a/Assignment_004/readme.md b/Assignment_004/readme.md new file mode 100644 index 0000000..915c635 --- /dev/null +++ b/Assignment_004/readme.md @@ -0,0 +1,68 @@ +# Interaktive Filmdatenbank + +📆 **Fällig: 19.11.2023** 📆 + +Erstellen Sie eine einfache Filmdatenbank, in die man Filme per Formular hinzufügen kann. + +## Lernziele + + * Einbinden von JavaScript in HTML-Seiten + * Grundlegende JavaScript Sprach- und Kontrollstrukturen + * Verwendung von Arrays + * JavaScript Object Notation (JSON) + * DOM-Modifikationen mit JavaScript + * Einsatz von jQuery + +## Teil 1: HTML-Seite für die Anzeige + +Entwerfen Sie eine einfache HTML-Seite für die Anzeige einer Filmdatenbank. Die Filme sollen als einfache HTML-Tabelle dargestellt werden. Zu jedem Film sollen in einer einzelnen Zeile folgende Daten angezeigt werden: + + * Titel + * Regisseur + * Produktionsjahr + * Laufzeit (in Minuten) + * Altersfreigabe + +In der ersten Zeile der Tabelle sollen Eingabefelder für die Eingabe der entsprechenden Daten eines Films vorgesehen sein. Es gibt in dieser Zeile _keinen_ Submit-Knopf. + +Stylen Sie die Tabelle und die Seite mit CSS so, dass die Tabelle entsprechende Trennlinien für eine bessere Lesbarkeit hat. + + + + +## Teil 2: JSON-Format + +Überlegen Sie sich ein JSON-Format für die Speicherung von Filmen für die oben genannte Tabelle. Erzeugen Sie ein Array Ihrer Lieblingsfilme mit dem entsprechenden Format. Wenn Sie Ihre Lieblingsfilme nicht preisgeben wollen, verwenden Sie folgende Filme als Beispiel: + +| Titel | Regisseur | Jahr | Spielzeit | FSK | +|----------------------|-------------------|------|-----------|-----| +| Pulp Fiction | Quentin Tarantino | 1994 | 154 | 16 | +| Inglourious Basterds | Quentin Tarantino | 2009 | 153 | 16 | +| Reservoir Dogs | Quentin Tarantino | 1992 | 99 | 18 | +| Blade Runner | Ridley Scott | 1982 | 117 | 16 | + +## Teil 3: Dynamische Webseite + +Erzeugen Sie aus dem in Teil 1 entwickelten Gerüst eine dynamische Webseite. Folgende Operationen sollten möglich sein: + + * Die Filme aus der in Teil 2 erstellten Filmdatenbank werden beim Laden der Seite automatisch in der Tabelle angezeigt. + * Neue Filme können über die Eingabezeile der Tabelle hinzugefügt werden. Hierbei reicht es, in einem beliebigen Eingabefeld ENTER zu drücken. Es wird überprüft, ob alle Felder korrekt gefüllt wurden bevor die Eingabe angenommen wird. Der Film wird dann am Ende der Tabelle hinzugefügt und die Eingabefelder werden geleert. Der Cursor wird dann wieder in das erste Eingabefeld gesetzt. + * Filme können aus der Liste gelöscht werden. Hierzu dient ein Knopf oder eine kleine Grafik in der letzten Spalte der Tabelle. + * Filme können nach Titel, Regisseur, Produktionsjahr, Laufzeit oder Altersfreigabe sortiert werden. Hierzu genügt ein Klick auf den Titel der Tabellenspalte, um eine entsprechende Sortierung anzustoßen. Wenn Sie wollen, können Sie auch eine auf- und absteigende Sortierung anbieten und über Symbole in der Titelzeile anzeigen. + +Der JavaScript-Code für die Seite soll in einer externen Datei gespeichert werden, die in die HTML-Seite eingebunden wird. + +Die Seite läuft komplett im Browser und hat kein Backend (außer, um sie auszuliefern). D.h. bei einem Reload sind die Eingaben weg und die ursprüngliche Liste wird angezeigt. + + +## Abgabe + +Verwenden Sie das Ihnen zugeordnete Git-Repository und legen Sie für jedes Assignment einen Ordner an: `Assignment_01`, `Assignment_02`, ... + +Innerhalb des Ordners für das Assignment legen Sie bitte folgende drei Ordner an: + + * `src`: Der Source-Code, der nicht im Webroot liegen soll / kann + * `doc`: Zusätzliche Dokumentation, die Sie zur Verfügung stellen wollen + * `site`: Die fertige Webanwendung. Dieser Ordner ist das _Webroot_ der Anwendung + +Legen Sie die Lösung so in Ihrem Repository ab, dass man das Repository einfach clonen kann, dann in den Ordner `site` geht und dort einen Webserver (z.B. `php -S localhost:8080`) starten kann. Die Seite sollte dann korrekt aufrufbar sein. \ No newline at end of file diff --git a/readme.md b/readme.md index ac1d788..c42271c 100644 --- a/readme.md +++ b/readme.md @@ -15,3 +15,4 @@ Hier finden Sie die wöchentlichen Assignments für die Vorlesung Webbasierte Sy | 1. | 09.10.2023 | [Fanseite ohne Styling](Assignment_001/readme.md) | **15.10.2023** | | 2. | 16.10.2023 | [Styling der Fanseite mit CSS](Assignment_002/readme.md) | **22.10.2023** | | 3. | 23.10.2023 | [Fanseite responsive machen](Assignment_003/readme.md) | **05.11.2023** | +| 4. | 06.11.2023 | [Interaktive Filmdatenbank](Assignment_004/readme.md) | **19.11.2023** |