Entwurf der Beispielanwendung 11.04.2024
Anforderungen
- Die Anwendung muss alle modernen HTML5 Elementrubriken abdecken.
- HTML
- CSS
- JS
- Multimedia-Objekte
- Die Anwendung muss moderene Development-Praktiken beinhalten.
- Routing
- Wiederverwendbare Komponenten/Module
- Die Anwendung soll “herausfordernde” Optimierungsprobleme beinhalten.
- Externe Ressourcen (Fonts, Bilder, JS usw.)
- Große, un-optimierte Multimedia-Dateien
- Nested Objects
Vorschläge
✅ = umsetzbar ⚠️ = mit Aufwand umsetzbar ❌ = nicht oder nur sehr umständlich umsetzbar
| Anforderung | Vorschlag 01: Kontaktlisten-App | Vorschlag 02: Instagram-Klon |
|---|---|---|
| 1 HTML5-Elemente | ✅ | ✅ |
| 1.1 HTML | ✅ | ✅ |
| 1.2 CSS | ✅ | ✅ |
| 1.3 JS | ✅ | ✅ |
| 1.4 Multimedia | ✅ | ✅ |
| 2 Dev-Praktiken | ✅ | ✅ |
| 2.1 Routing | ✅ | ✅ |
| 2.2 Komponenten | ✅ | ✅ |
| 3 Optimierunsprobleme | ✅ | ✅ |
| 3.1 Externe Ressourcen | ✅ | ✅ |
| 3.2 Image Compression | ✅ | ✅ |
| 3.3 Nested Objects | ✅ | ✅ |
01: Kontaktlisten-App
Beschreibung
Mit der Kontaktlisten-App soll der Anwender seine Kontakte speichern und verwalten können. Dazu soll es dem Anwender möglich sein, alle Kontaktdaten wie beispielsweise Telefonnummern, E-Mail-Adressen, Heimatadressen etc. zu speichern und mit Labels zu versehen.
Der Anwender soll Kontakte erstellen, bearbeiten und löschen können. Gespeicherte Kontakte sollen in Listen dargestellt, durchsucht und sortiert werden können.
Optional:
- Verwandtschaftsbeziehungen zwischen den Kontakten
classDiagram
direction LR
Contact --> Email
Contact --> Address
Email --> Label
Address --> Label
Address --> IsoCode
class Contact{
+String name
+Date birthday
+String phonenumber
+Email email
+String note
+Address adress
}
class Email{
+String mailadress
+Label label
}
class Address{
+String street
+String number
+String city
+String region
+String zipCode
+IsoCode Country
+Label label
+getFullString()
}
class Label{
+String name
+String color
}
class IsoCode{
+String shortcode
+String longname
}
Seiten/Pages:
- Telefonbuch-Seite: Menü, “Neuer Kontakt”-Button, Kontaktliste und Filter- und Sortierungsmenü
- Kontakt-Detailansicht
- “Neuer Kontakt”-Seite: Ausfüllformular zum Neuanlegen/Bearbeiten eines Kontakts
- Info-Seite: Informationen zur Funktion, Technik und zum Ersteller der Seite


Vorteile
- Simpel zu verstehen, was die Anwendung machen soll
- Seitenübergreifende Informationen (State)
- Anbindung an externe Ressourcen über UI-Frameworks oder Icons möglich
- Nutzung von Profilbildern (in unterschiedlichen Größen) und Hintergrundbildern
Abstriche
- Umsetzung der Datenstruktur ggf. umständlich
- Sinnhaftigkeit und Realismus der Anwendung sind fraglich.
- Keine Bewegtbilder
02: Instagram-Klon
Beschreibung
Im Instagram-Klon kann der Anwender Eindrücke und Gedanken in Bildform teilen und an den visuellen Eindrücken seiner Bekannten teilhaben. Nebst der Feed-Funktion wie sie vom Original bekannt sind, können in Profilansichten persönliche Informationen geteilt werden.
classDiagram
direction LR
User "1" <--> "n" Post
Post "1" <--> "n" Like
User "1" <--> "n" Like
class User{
+String username
+String handle
+String profileImageSource
+String Caption
+DateTime createdAt
}
class Post{
+User user
+String caption
+Sring mediaType
+String mediaSource
}
class Like{
+Post post
+User user
}
Seiten/Pages:
- Feed-Seite mit den neuesten Posts und Profileliste
- “Beitrag erstellen”-Seite mit Formular und Preview
- “Profil erstellen”-Seite mit Formular und Preview
- Info-Seite: Informationen zur Funktion, Technik und zum Ersteller der Seite


Vorteile
- Simpel zu verstehen, was die Anwendung machen soll
- Bilder und Bewegtbilder können genutzt werden.
- Performance von Bildern im falschen Seitenverhältnis können gemessen werden.
Abstriche
- Keine Seitenübergreifende Informationen (State)