Arkusz E.14-01-17.06

Zadanie egzaminacyjne

Wykonaj aplikację internetową dla przychodni lekarskiej. Wykorzystaj pakiet XAMPP jako środowisko bazodanowo - aplikacyjne. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię.
Aby wykonać zadanie zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie dane.zip, zabezpieczone hasłem: L3karz
Plik należy rozpakować.
Wyniki swojej pracy zapisz w folderze utworzonym na pulpicie konta Egzamin. Jako nazwy folderu użyj swojego numeru PESEL. Rozpakowany plik umieść w tym folderze.

Operacje na bazie danych

Na obrazie 1 przedstawiono tabelę Pacjenci, która jest fragmentem bazy danych przychodni.
Obraz 1. Tabela Pacjenci

Uruchom usługi MySQL i Apache z XAMPP Control Panel i przejdź do narzędzia phpMyAdmin. Następnie wykonaj operacje na bazie danych:
  • Utwórz nową bazę danych o nazwie przychodnia
  • Do bazy przychodnia zaimportuj tabele z pliku przychodnia.sql z rozpakowanego archiwum
    Zawartość pliku przychodnia.sql
  • Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z Twoim numerem PESEL w formacie PNG i nazwij import-przychodnia.png. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import bazy. Nie skaluj, ani nie przycinaj obrazu
  • Utwórz następujące zapytania SQL do bazy przychodnia i sprawdź poprawność ich działania:
     - Zapytanie 1: wybierające jedynie pola id, imie, nazwisko z tabeli Pacjenci
     - Zapytanie 2: wybierające jedynie pola imie, nazwisko, choroby_przewlekle, uczulenia z tabeli pacjenci dla id równego 1
     - Zapytanie 3: wybierające jedynie pola imie, nazwisko z tabeli pacjenci dla tych rekordów, dla których wartość pola uczulenia jest równa ‘brak’
  • Utworzone zapytania zapisz w folderze z Twoim numerem PESEL, w pliku kwerendy.txt. Zapytania ponumeruj stosując format zapisu: „zapytanie 1: ... treść zapytania ...”
  • Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacie JPEG i nadaj im nazwy kw1, kw2, kw3. Zrzuty powinny być czytelne oraz wykonane bez skalowania i kadrowania, a także z widocznym paskiem zadań i godziną ich wykonania.

Witryna internetowa

Obraz 2. Witryna internetowa. Strona przychodnia.php, pacjent.php

Cechy witryny wspólne dla obu stron:
  • Dwie strony: przychodnia.php oraz pacjent.php
  • Zastosowany właściwy standard kodowania polskich znaków
  • Tytuł strony, widoczny na karcie przeglądarki: „Przychodnia”
  • Arkusz stylów w pliku o nazwie przychodnia.css, prawidłowo połączony z kodem strony
  • Podział strony na bloki: baner, panele lewy i prawy, stopka zrealizowany za pomocą znaczników sekcji
  • Zawartość banera: nagłówek pierwszego stopnia o treści: „PRAKTYKA LEKARZA RODZINNEGO”
  • Zawartość panelu lewego:
     - Nagłówek trzeciego stopnia o treści: „LISTA PACJENTÓW”
     - Wyniki działania skryptu nr 1
     - Odstęp na dwie linie
     - Formularz, który po zatwierdzeniu wyświetla stronę pacjent.php
     - Zawartość formularza: tekst „Podaj id:”, w kolejnej linii pole do wprowadzania danych typu numerycznego oraz przycisk z napisem „Pokaż dane” zatwierdzający formularz
     - Nagłówek trzeciego stopnia o treści: „LEKARZE”,
     - Lista zagnieżdżona zgodna z obrazem 3. Kolejne napisy: pn – śr, Anna Kwiatkowska, Jan Kowalewski, czw – pt, Krzysztof Nowak
    Obraz 3. Lista zagnieżdżona
  • Zawartość panelu prawego:
     - Nagłówek drugiego stopnia o treści: „INFORMACJE SZCZEGÓŁOWE O PACJENCIE”
  • Zawartość stopki:
     - Tekst akapitu (paragrafu) o treści: „utworzone przez: ”, dalej Twój numer PESEL
     - Odnośnik o treści: „Pobierz plik z kwerendami”, wskazujący na plik kwerendy.txt
Dodatkowe cechy strony przychodnia.php dla panelu prawego:
  • Pod napisem „INFORMACJE...” znajduje się akapit (paragraf) „Brak wybranego pacjenta” Dodatkowe cechy strony pacjent.php dla panelu prawego:
Pod napisem „INFORMACJE...” jest wyświetlony efekt działania skryptu nr 2

Styl CSS witryny internetowej

Plik przychodnia.css zawiera formatowanie dla:
  • Banera: kolor RGB tła (66, 22, 42), biały kolor czcionki, rozmiar czcionki 140%, wyrównanie tekstu do środka, wysokość 100 px
  • Panelu lewego: kolor RGB tła (142, 115, 110), szerokość 30%, wysokość 600 px, biały kolor czcionki
  • Panelu prawego: kolor RGB tła (230, 230, 230), szerokość 70%, wysokość 600 px, rozmiar czcionki 120%
  • Stopki: kolor RGB tła (142, 115,110), biały kolor czcionki, wyrównanie tekstu do prawej strony, wysokość 100 px
Niewymienione właściwości obiektów przybierają wartości domyślne.

Skrypt połączenia z bazą

W tabeli 1 podano wybór funkcji PHP do obsługi bazy danych. Wymagania dotyczące skryptu:
  • Napisany w języku PHP
  • Nie jest wymagane sprawdzenie czy operacja na bazie powiodła się
  • Skrypt łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych o nazwie przychodnia
  • Na końcu działania skryptu powinno zostać obsłużone zamknięcie połączenia z serwerem
    Działanie skryptu nr 1:
     - Skrypt wysyła do bazy zapytanie 1 (z pliku kwerendy.txt)
     - Każdy zwrócony rekord jest wyświetlany w osobnej linii
  • Działanie skryptu nr 2:
     - Skrypt wykorzystuje dane wysłane z formularza
     - Wykorzystując zapytanie 2 (z pliku kwerendy.txt), należy je tak przekształcić, aby w klauzuli warunku pole id było równe wartości przesłanej z formularza
     - Skrypt wysyła do bazy zmodyfikowane zapytanie 2
     - Dane zwrócone wypisywane są w kolejnych akapitach (paragrafach), tekst napisany w nawiasach < > oznacza zwrócone zapytaniem pole:
       - Imię i nazwisko: <imie> <nazwisko>
       - Choroby przewlekłe: <choroby_przewlekle>
       - Uczulenia: <uczulenia>
Tabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB

UWAGA: po zakończeniu pracy nagraj płytę z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import_przychodnia.png, kw1.jpg, kw2.jpg, kw3.jpg, kwerendy.txt, pacjent.php, przychodnia.css, przychodnia.php, ewentualnie inne przygotowane przez Ciebie pliki. Po nagraniu płyty sprawdź poprawność nagrania i opisz płytę swoim numerem PESEL.

Czas przeznaczony na wykonanie zadania wynosi 150 minut.

Ocenie będą podlegać 4 rezultaty:
  • operacje na bazie danych, 
  • witryna internetowa,
  • styl CSS witryny internetowej,
  • skrypt połączenia z bazą.