Prüfung // Coding Challenge
- Dauer
- 270 min
- Typ
- Frontend Development
- Maximale Teilnehmerzahl
- 40 Teilnehmer
- Verantwortlich
- Christian Noss
Die Bewertung erfolgt entlang der folgenden Niveaustufen:
Bitte beachten Sie folgende Punkte:
Wir möchten sicherstellen, dass Sie die Prüfung bestmöglich absolvieren können, daher möchten wir einige wichtige Regeln und Richtlinien hervorheben:
Eigenständige Leistung Die Coding-Prüfung erfordert, dass Sie die Features eigenständig umsetzen. Externe Hilfe von Personen in Echtzeit ist nicht gestattet. Wir legen großen Wert darauf, Ihre individuellen Fähigkeiten und Ihr Wissen zu bewerten.
Externe Quellen und KI-gestützte Tools Sie dürfen externe Quellen wie Online-Dokumentationen, externe Libraries, Foren und Bücher sowie KI-gestützte Tools nutzen, um Informationen und Lösungsansätze zu finden. Wir ermutigen Sie, diese Ressourcen effektiv zu nutzen, um Ihre Lösungen zu verbessern.
Kennzeichnung von fremdem Code Falls Sie Teile eines Codes von externen Quellen übernehmen, seien Sie transparent und kennzeichnen Sie diese Stellen eindeutig. Dies dient der Transparenz und ermöglicht es uns, Ihre Leistung fair zu bewerten. In der Regel erkennen wir fremden Code sehr schnell.
Kommunikation mit anderen Teilnehmern Die Kommunikation mit anderen Teilnehmern während der Prüfung ist nicht gestattet. Dies schließt jegliche Form der Zusammenarbeit bei der Lösung der Features aus.
Wir vertrauen darauf, dass Sie diese Regeln respektieren und die Prüfung in Übereinstimmung mit den genannten Richtlinien absolvieren. Wir wünschen Ihnen viel Erfolg und hoffen, dass Sie Ihr Wissen und Ihre Fähigkeiten optimal präsentieren können.
Bei Fragen oder Unklarheiten stehen wir Ihnen gerne zur Verfügung.
_data
VerzeichnisPrüfen Sie mit dem W3C Validator ob die index.html valide ist. Falls nicht, passen Sie bitte die Datei entsprechend an.
Dauer: 10 Minuten
Storypoints: 1
Techniken: HTML
Integrieren Sie Stylelint in das Projekt. Richten Sie Stylelint so ein, dass es die CSS Dateien im assets/styles
Verzeichnis überprüft.
Dauer: 15 Minuten
Storypoints: 2
Techniken: Konfiguration
In der Datei /persons/biography-lucas-cranach.html
ist das CSS nicht korrekt eingebunden. Passen Sie die Datei so an, dass die Seite wieder ordnungsgemäß dargestellt wird und die Styles geladen werden.
Dauer: 5 Minten
Storypoints: 1
Techniken: HTML
Fügen Sie in der main-header
Komponente eine Schalfläche mit Icon für den Darkmode hinzu. Die Schaltfläche soll zwischen der Lupe und dem Hambuger positioniert werden und das Material Icon dark_mode
nutzen.
Dauer: 10 Minuten
Storypoints: 1
Techniken: HTML
Die Schaltfläche aus F4 soll als Umschalter zum Wechsel zwischen Darkmode und Lightmode dienen. Beim Betätigen soll der Darkmode aktiviert werden und beim erneuten Betätigen soll wieder in den Lightmode gewechselt werden.
Das Icon der Schaltfläche soll dabei zwischen dem Material Icon dark_mode
und light_mode
wechseln.
Auf der geasamten Seite soll im Darkmode heller Text auf dunklem Hintergrund angezeigt werden. Im Lightmode soll dunkler Text auf hellem Hintergrund angezeigt werden. Der Footer soll dabei außer Acht gelassen werden.
Hinweis:
Zur Anpassung der Farben für die Texte und Hintergründe müssen ein Teil der Custom Properties in der variables.css
überschrieben werden. Nutzen Sie dazu die vordefinierte Klasse dark-mode
in selbiger Datei.
Dauer: 20 Minuten
Storypoints: 3
Techniken: CSS, JS
Beim Wechsel zwischen Darkmode und Lightmode soll der aktuelle Mode im Local Storage des Browsers gespeichert werden. Beim Laden der Seite soll die Einstellung aus dem Local Storage gelesen und der entsprechende Mode aktiviert werden.
Dokumentation zum Local Storage: MDN Web Docs - Window.localStorage
Dauer: 15 Minuten
Storypoints: 3
Techniken: JS
Ergänzen Sie die Startseite um die Info-Sektion unterhalb der Slideshow in der index.html
.
Entscheiden Sie sich dabei für Variante A oder B, oder setzen Sie beide Varianten um.
Achten Sie bei Variante B auf die Transition, wenn mit der Maus über die einzelnen Info-Karten gefahren wird.
Das Layout dazu finden Sie im Figma Projekt unter 05-info-section
und die Texte und Bilder im _data
Verzeichnis.
Die mobilen Ansicht soll bei dieser Aufgabe sinnvoll nach eigenem Ermessen umgesetzt werden.
Dauer: 40 Minuten
Storypoints: 6
Techniken: HTML, CSS
Dauer: 60 Minuten
Storypoints: 8
Techniken: HTML, CSS
Ergänzen Sie die Startseite um die Video-Text Sektion unterhalb der Info-Sektion in der index.html
.
Das Layout dazu finden Sie im Figma Projekt unter 06-video-col-text-col
und die Texte im _data
Verzeichnis.
Die mobilen Ansicht soll bei dieser Aufgabe sinnvoll nach eigenem Ermessen umgesetzt werden.
Die URL des Videos, welches eingebunden werden soll, ist: https://lucascranach.org/media/cda-intro-1200.mp4
Dokumentation zum HTML5 Video Element: MDN Web Docs - HTML <video>
element
Dauer: 30 Minuten
Storypoints: 4
Techniken: HTML, CSS
Fügen Sie in der main-header
Komponente die fehlenden Links in der Navigationsleiste hinzu. Die URLs der Links sollen auf #
zeigen.
Farbe der Links: var(--color-text-default)
Hover-Farbe der Links: var(--color-primary-600)
Die Farbe soll über eine Transition wechseln.
Dauer: 10 Minuten
Storypoints: 3
Techniken: HTML, CSS
Erzeugen Sie eine neue Seite aktuelles.html
im Hauptverzeichnis. Die Seite soll den gleichen Header und Footer wie die index.html
Seite enthalten.
Fügen Sie zudem die Hauptüberschrift “Aktuelles” hinzu.
Verlinken Sie im Hauptmenu den Punkt “Aktuelles” mit der aktuelles.html
Seite.
Dauer: 15 Minuten
Storypoints: 3
Techniken: HTML, CSS
In der aktuelles.html
soll die Hauptsektion mit den Aktuelles-Einträgen erstellt werden. Hier gibt es zwei mögliche Varianten, Eine mit statischem HTML und Eine mit JavaScript. Entscheiden Sie sich für eine Variante.
Lassen Sie das Formular bei der Bearbeitung dieser Aufgabe außen vor.
Das Layout dazu, inklusive mobiler Ansicht, finden Sie im Figma Projekt.
Bitte validieren Sie die HTML Seite mit dem W3C Validator.
Ergänzen Sie die Aktuelles-Einträge für die Jahre 2024 und 2025 um den Hauptbereich mit statischem HTML Code. Die Texte und Bilder finden Sie im _data
Verzeichnis.
Dauer: 50 Minuten
Storypoints: 8
Techniken: HTML, CSS
Erzeugen Sie die Aktuelles-Einträge dynamisch via JavaScript. Die Daten für die Einträge finden Sie in der news.json
im _data
Verzeichnis.
Dauer: 60 Minuten
Storypoints: 10
Techniken: HTML, CSS, JS
Fügen Sie in der aktuelles.html
Seite im unteren Bereich die Sektion “Neuer Aktuelles-Eintrag” ein.
Achten Sie darauf, dass das Formular nur abgeschickt werden kann, wenn die Pflichtfelder ausgefüllt sind.
Das Layout dazu, inklusiver mobiler Ansicht, finden Sie im Figma Projekt.
Das Styling für das Formular ist weitgehend in der form.css
Datei bereits vordefiniert, muss allerdings noch an richtiger Stelle importiert werden.
Dauer: 45 Minuten
Storypoints: 6
Technikn: HTML, CSS
Beim Abschicken des Formulars soll ein neuer Aktuelles-Eintrag auf Basis der Formulardaten erzeugt werden.
Zur Vereinfachung soll der neue Eintrag immer ganz oben in der Liste der Einträge eingefügt werden.
Dauer: 45 Minuten
Storypoints: 6
Techniken: JS
Der neue Eintrag soll beim Abschicken des Formulars der Jahresgruppe zugeordnet werden, die dem Datum im Formular entspricht.
D.h. wenn der Nutzer bspw. als Datum den 10.10.2024 eingegeben hat, soll der Aktuelles-Eintrag in die Gruppe des Jahres 2024 eingefügt werden. Wenn die Jahresgruppe noch nicht existiert, soll sie neu erzeugt werden.
Dauer: 20 Minuten
Storypoints: 5
Techniken: JS
Damit die Seite übersichtlicher wird, sollen die Jahres-Sektionen einklappbar sein.
Standardmäßig sollen alle Sektion, bis auf die des aktuellen Jahr, eingeklappt sein.
Tipp: Die Verwendung des Details-Elements kann hier hilfreich sein und bringt einen großen Teil der Funktionalität mit.
Dauer: 45 Minuten
Storypoints: 6
Techniken: HTML, CSS, JS
In der Datei /_data/json/news.json
fehlt im Attribut-Wertpaar
"image": "cranach-in-basel",
die Dateiendung .jpg
.