Egzamin praktyczny – INF.03

Tworzenie i administrowanie stronami internetowymi oraz bazami danych

Informacje ogólne

Zawód: Technik informatyk

Kwalifikacja: INF.03 – Tworzenie i administrowanie stronami internetowymi oraz bazami danych

Część: praktyczna

Czas trwania egzaminu: 150 minut

Liczba ocenianych rezultatów: 5

Instrukcja dla zdającego

  • Sprawdź kompletność arkusza.
  • Czytelnie wpisz numer PESEL na arkuszu i w nazwach folderów oraz plików.
  • Wszystkie prace wykonaj na koncie egzaminacyjnym, którego dane otrzymasz od przewodniczącego ZN.
  • Po zakończeniu pracy zapisz wszystkie pliki w przeznaczonym do tego folderze.
  • Nie wyłączaj komputera bez polecenia egzaminatora.

Opis sytuacji i cel zadania

Otrzymałeś zlecenie przygotowania prostej aplikacji internetowej dla wypożyczalni filmów „FilmBox”.

Aplikacja ma korzystać z bazy danych MySQL, być uruchomiona w środowisku XAMPP oraz umożliwiać przeglądanie listy filmów i filtrowanie ich według gatunku.

Twoim zadaniem jest:

  • skonfigurowanie bazy danych zgodnie z wymaganiami,
  • przygotowanie strony internetowej obsługującej dane z bazy,
  • zaprogramowanie prostych zapytań SQL i skryptów w języku PHP,
  • dostosowanie wyglądu strony za pomocą HTML i CSS,
  • przygotowanie plików z rezultatami zgodnie z wymaganiami.

Załączniki

  • Załącznik 1 – opis struktury bazy danych
    filmbox

    Skrypt SQL – utworzenie bazy i tabeli

    CREATE DATABASE IF NOT EXISTS filmbox
      CHARACTER SET utf8
      COLLATE utf8_general_ci;
    
    USE filmbox;
    
    DROP TABLE IF EXISTS filmy;
    
    CREATE TABLE filmy (
        id INT AUTO_INCREMENT PRIMARY KEY,
        tytul VARCHAR(100) NOT NULL,
        gatunek VARCHAR(40) NOT NULL,
        rok INT NOT NULL,
        ocena DECIMAL(3,1) NULL
    ) ENGINE=InnoDB
      DEFAULT CHARSET=utf8
      COLLATE utf8_general_ci;
                        

    Przykładowe dane (INSERT)

    INSERT INTO filmy (tytul, gatunek, rok, ocena) VALUES
    ('Matrix', 'Sci-Fi', 1999, 8.7),
    ('Incepcja', 'Sci-Fi', 2010, 8.8),
    ('Skazani na Shawshank', 'Dramat', 1994, 9.3),
    ('Forrest Gump', 'Dramat', 1994, 8.8),
    ('Gladiator', 'Akcja', 2000, 8.5),
    ('Avengers', 'Akcja', 2012, 8.0),
    ('Shrek', 'Animacja', 2001, 7.9),
    ('Król Lew', 'Animacja', 1994, 8.5),
    ('Obcy', 'Horror', 1979, 8.5),
    ('Lśnienie', 'Horror', 1980, 8.4),
    ('Zielona mila', 'Dramat', 1999, 8.6),
    ('Interstellar', 'Sci-Fi', 2014, 8.6),
    ('Spider-Man', 'Akcja', 2002, 7.4),
    ('Toy Story', 'Animacja', 1995, 8.3),
    ('Milczenie owiec', 'Thriller', 1991, 8.6);
                        
  • Załącznik 2 – plik z danymi filmy.csv
  • Treść pliku filmy.csv

    tytul;gatunek;rok;ocena
    Matrix;Sci-Fi;1999;8.7
    Incepcja;Sci-Fi;2010;8.8
    Skazani na Shawshank;Dramat;1994;9.3
    Forrest Gump;Dramat;1994;8.8
    Gladiator;Akcja;2000;8.5
    Avengers;Akcja;2012;8.0
    Shrek;Animacja;2001;7.9
    Król Lew;Animacja;1994;8.5
    Obcy;Horror;1979;8.5
    Lśnienie;Horror;1980;8.4
    Zielona mila;Dramat;1999;8.6
    Interstellar;Sci-Fi;2014;8.6
    Spider-Man;Akcja;2002;7.4
    Toy Story;Animacja;1995;8.3
    Milczenie owiec;Thriller;1991;8.6
  • Załącznik 3 – szablon graficzny strony (zrzut ekranu w pliku szablon.png)

    Poniżej przedstawiono przykładowy układ strony, który odpowiada wyglądowi z pliku szablon.png:

    Wypożyczalnia FilmBox
    Filtruj według gatunku:
    Tytuł Gatunek Rok Ocena
    Matrix Sci-Fi 1999 8.7
    Incepcja Sci-Fi 2010 8.8
    Forrest Gump Dramat 1994 8.8

    Średnia ocena wyświetlonych filmów: 8.8

    Uczeń powinien odtworzyć podobny układ: nagłówek z tytułem, panel z filtrem po lewej, tabela z filmami po prawej oraz stopkę z napisem „Autor: [PESEL]”.

  • Załącznik 4 – wymagania funkcjonalne (opis tekstowy)

Załącznik 1 – struktura bazy danych

Utwórz bazę danych o nazwie filmbox.

W bazie utwórz tabelę filmy o strukturze:

  • id – int, klucz główny, auto_increment
  • tytul – varchar(100), not null
  • gatunek – varchar(40), not null
  • rok – int, not null
  • ocena – decimal(3,1), null

Upewnij się, że:

  • tabela wykorzystuje silnik InnoDB,
  • kodowanie znaków to UTF8 (np. utf8_general_ci).

Załącznik 2 – plik z danymi

W katalogu C:\EGZAMIN\DANE znajduje się plik filmy.csv zawierający dane filmów w formacie:

tytul;gatunek;rok;ocena

Przykładowy wiersz (przykład, nie do przepisywania):

Matrix;Sci-Fi;1999;8.7

Dane z pliku filmy.csv zaimportuj do tabeli filmy w bazie filmbox za pomocą phpMyAdmin lub polecenia SQL LOAD DATA.

Załącznik 3 – szablon graficzny

Na zrzucie ekranu szablon.png przedstawiono przykładowy wygląd witryny:

  • nagłówek strony z napisem „Wypożyczalnia FilmBox”,
  • sekcja filtrów po lewej stronie (lista rozwijana gatunków),
  • tabela z listą filmów w centrum strony,
  • stopka z napisem „Autor: [PESEL]”.

Twoje rozwiązanie nie musi być identyczne z szablonem, ale musi zawierać wskazane elementy.

Załącznik 4 – wymagania funkcjonalne

Witryna powinna:

  • wyświetlać wszystkie filmy z bazy w postaci tabeli,
  • umożliwiać filtrowanie listy filmów według wybranego gatunku,
  • po wybraniu gatunku i zatwierdzeniu przyciskiem „Filtruj” pokazywać tylko filmy o wybranym gatunku,
  • prezentować średnią ocenę filmów aktualnie wyświetlonych w tabeli.

Zadania do wykonania

Zadanie 1 – przygotowanie środowiska

  1. Uruchom pakiet XAMPP i włącz moduły Apache oraz MySQL.
  2. W narzędziu phpMyAdmin utwórz bazę danych filmbox zgodnie z opisem w Załączniku 1.
  3. Zaimportuj dane z pliku filmy.csv do tabeli filmy.
  4. Wykonaj zrzut ekranu przedstawiający tabelę filmy z co najmniej pięcioma rekordami i zapisz jako tabela_filmy_[PESEL].png.

Zadanie 2 – witryna internetowa

  1. W katalogu C:\EGZAMIN\[PESEL]\htdocs\filmbox utwórz plik index.php.
  2. W pliku utwórz strukturę dokumentu HTML5 zawierającą:
    • nagłówek z tytułem strony,
    • sekcję główną z formularzem do wyboru gatunku,
    • miejsce na tabelę z filmami,
    • stopkę.
  3. Dołącz arkusz stylów style.css i zastosuj go do upiększenia strony.
  4. W stopce wyświetl tekst „Autor: [PESEL]”.

Zadanie 3 – obsługa bazy danych w PHP

  1. W pliku index.php utwórz połączenie z bazą danych filmbox.
  2. Pobierz listę wszystkich unikalnych gatunków z tabeli filmy i wyświetl je w polu <select> formularza.
  3. Po wysłaniu formularza:
    • jeśli nie wybrano gatunku – wyświetl wszystkie filmy,
    • jeśli wybrano gatunek – wyświetl tylko filmy o tym gatunku.
  4. Dane filmów wyświetl w tabeli HTML z nagłówkami: „Tytuł”, „Gatunek”, „Rok”, „Ocena”.

Zadanie 4 – obliczenie średniej oceny

  1. Dla aktualnie wyświetlonej listy filmów oblicz średnią ocenę ocena.
  2. Średnią wyświetl pod tabelą w formacie: „Średnia ocena wyświetlonych filmów: X.X”.

Zadanie 5 – przygotowanie rezultatów

  1. Upewnij się, że w katalogu C:\EGZAMIN\[PESEL]\htdocs\filmbox znajdują się: index.php, style.css oraz wszystkie potrzebne pliki.
  2. W katalogu C:\EGZAMIN\[PESEL]\ umieść:
    • tabela_filmy_[PESEL].png – zrzut ekranu tabeli z danymi,
    • plik tekstowy zapytania_[PESEL].txt z co najmniej trzema zapytaniami SQL.

Rezultaty podlegające ocenie

R1. Poprawnie utworzona baza danych filmbox i tabela filmy z zaimportowanymi danymi.

R2. Zrzut ekranu tabela_filmy_[PESEL].png przedstawiający zawartość tabeli.

R3. Działająca witryna w pliku index.php z poprawną strukturą HTML i zastosowanym arkuszem stylów style.css.

R4. Poprawnie działające filtrowanie filmów według gatunku i wyświetlanie wyników w tabeli.

R5. Poprawne obliczanie i prezentacja średniej oceny dla aktualnie wyświetlonych filmów oraz plik zapytania_[PESEL].txt z poprawnymi zapytaniami SQL.