Poniżej znajdują się zadania egzaminacyjne. Każdy blok jest oceniany osobno. Bazą do zadań jest dostarczona prosta aplikacja Django, która wyświetla stronę index.html zawierającą kilka list z linkami.
Oddanie zadania polega na wysłaniu jednego pliku ZIP na moodle. Plik ten oprócz rozwiązania, powinien zawierać również plik README.md z instrukcją uruchomienia aplikacji oraz opisem wykonanych zadań.
Dostarczona aplikacja Django jest w katalogu egzapp.
Zadanie:
index.html dostępną w uruchomionej aplikacji (serwowaną przez tę samą aplikację).<a>) na tej stronie w formie komunikatu (np. “Liczba linków na stronie: 10”).Zadanie:
Zmodyfikuj istniejącą stronę index.html oraz jej system stylizacji:
main.scss. Zdefiniuj w nim:
$primary-color, $secondary-color) i jednej rodziny czcionek (np. $font-family-sans-serif).index.html.npm scripts w pliku package.json do zarządzania procesem budowania stylów:
main.scss do wynikowego pliku style.css.Zadanie:
Rozszerz dostarczoną aplikację Django, implementując system uwierzytelniania użytkowników, wykorzystując wbudowany w Django system django.contrib.auth:
AuthenticationForm).index.html) tak, aby była ona dostępna tylko dla zalogowanych użytkowników. Niezalogowani użytkownicy próbujący uzyskać do niej dostęp powinni być automatycznie przekierowywani na stronę logowania (użyj dekoratora @login_required lub LoginRequiredMixin).Zadanie:
Do strony index.html dodaj interaktywność za pomocą TypeScript:
script.ts).<a>) na stronie, w konsoli przeglądarki powinna wyświetlić się informacja o długości (liczbie znaków) tekstu zawartego w tym linku.script.ts do script.js (np. za pomocą tsc CLI, dodając odpowiedni skrypt do package.json). Wygenerowany plik script.js powinien być dołączony do strony HTML.Zadanie:
Zmodyfikuj aplikację Django, aby implementowała dynamiczne powiadomienia za pomocą Server-Sent Events (SSE):
/sse-random-info/), który będzie odpowiedzialny za wysyłanie zdarzeń SSE.index.html:
/sse-random-info/.<div> umieszczonym w prawym górnym rogu strony index.html. Każdy nowy komunikat powinien zastępować poprzedni w tym elemencie.