\documentclass[12pt,a4paper]{article}

\usepackage[polish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{geometry}
\geometry{
    left=2.5cm,
    right=2.5cm,
    top=2.5cm,
    bottom=3cm
}

\begin{document}

\begin{center}
    {\Large \textbf{ARKiSuz INF.03 – Wytyczne do zadania}}\\[1em]
\end{center}

%----------------------------------------------------------------------------------------
%	TEMAT
%----------------------------------------------------------------------------------------
\section{Temat zadania}
Stwórz prostą aplikację internetową \textbf{„Zarządzanie zamówieniami klientów”}, która pozwoli na dodawanie nowych zamówień oraz wyświetlanie listy klientów wraz z ich zamówieniami (z użyciem klauzuli \texttt{JOIN} w bazie danych).

%----------------------------------------------------------------------------------------
%	OPIS ZADANIA
%----------------------------------------------------------------------------------------
\section{Opis zadania}
\begin{enumerate}
    \item \textbf{Struktura bazy danych (MySQL):}
    \begin{itemize}
        \item Utwórz co najmniej dwie tabele: \texttt{klienci} i \texttt{zamowienia}.
        \item Zaprojektuj odpowiednie klucze główne i obce (\texttt{klienci.id} oraz \texttt{zamowienia.id\_klienta}).
        \item Dodaj przykładowe dane (kilku klientów, kilka zamówień).
    \end{itemize}

    \item \textbf{Layout strony (HTML + CSS):}
    \begin{itemize}
        \item Utwórz \texttt{header} (z tytułem/nazwą aplikacji), \texttt{main} (główna treść) oraz \texttt{footer}.
        \item Dodatkowo możesz wykorzystać proste menu nawigacyjne.
        \item Zastosuj podstawowe reguły CSS, by wyróżnić np. nagłówki, tabele.
    \end{itemize}

    \item \textbf{Obsługa żądań (JavaScript – Fetch API):}
    \begin{itemize}
        \item \textbf{Dodawanie zamówienia}:  
        Przygotuj formularz z polami:
        \begin{itemize}
            \item Wybór klienta (np. \texttt{<select>}),
            \item Data zamówienia (\texttt{<input type="date">}),
            \item Kwota (\texttt{<input type="number">} lub \texttt{<input type="text">}).
        \end{itemize}
        Po przesłaniu formularza dane powinny zostać wysłane metodą \textbf{POST} do skryptu \texttt{PHP}.
        \item \textbf{Wyświetlanie zamówień}:  
        Użyj \textbf{GET} (Fetch API), aby pobrać dane (np. w formacie JSON) z \texttt{PHP}, wykonującego zapytanie \texttt{JOIN} w bazie danych.  
        Wyświetl dane w tabeli HTML (np. kolumny: \textit{Imię, Nazwisko, Data zamówienia, Kwota}).
    \end{itemize}

    \item \textbf{Skrypty PHP (obsługa bazy danych):}
    \begin{enumerate}
        \item \texttt{get\_zamowienia.php}:  
        Zapytanie \texttt{SELECT} z \texttt{JOIN} (tabele \texttt{klienci} i \texttt{zamowienia}), zwróć dane w formacie JSON.
        \item \texttt{insert\_zamowienie.php}:  
        Wstaw dane (ID klienta, data, kwota) do tabeli \texttt{zamowienia} w bazie danych i zwróć komunikat o powodzeniu/niepowodzeniu.
    \end{enumerate}

    \item \textbf{Integracja i testy:}
    \begin{itemize}
        \item W pliku HTML umieść odwołanie do skryptu \texttt{.js} z funkcjami \texttt{fetch} (GET i POST).
        \item Po wczytaniu strony pobierz i wyświetl aktualne zamówienia (\texttt{get\_zamowienia.php}).
        \item Po dodaniu zamówienia (\texttt{insert\_zamowienie.php}) należy odświeżyć listę zamówień.
    \end{itemize}

    \item \textbf{Rozszerzenia (opcjonalne):}
    \begin{itemize}
        \item Walidacja danych w formularzu (po stronie klienta i/lub serwera).
        \item Komunikaty o błędach lub powodzeniu operacji.
        \item Możliwość edycji bądź usuwania zamówień (dodatkowe metody \texttt{PUT}, \texttt{DELETE}).
    \end{itemize}
\end{enumerate}

%----------------------------------------------------------------------------------------
%	KRYTERIA OCENY
%----------------------------------------------------------------------------------------
\section{Kryteria oceny}
\begin{itemize}
    \item \textbf{Poprawność funkcjonalna} – formularz, tabela i obsługa danych w bazie.
    \item \textbf{Wykorzystanie Fetch API} – metody \texttt{GET} i \texttt{POST}, odpowiednia obsługa JSON.
    \item \textbf{Poprawność skryptów PHP} – pobieranie danych z \texttt{\$\_GET}/\texttt{\$\_POST}, zapytania SQL, zwracane komunikaty.
    \item \textbf{Zastosowanie JOIN} – poprawne łączenie danych z tabel \texttt{klienci} i \texttt{zamowienia}.
    \item \textbf{Estetyka i czytelność kodu} – komentarze, przejrzysta struktura plików, nazwy zmiennych.
    \item \textbf{Layout} – prosty, czytelny układ (nagłówek, tabela, stopka), podział na sekcje.
\end{itemize}

\vspace{1cm}
\noindent \textbf{Powodzenia!}

\end{document}

