102 lines
4.8 KiB
TeX
102 lines
4.8 KiB
TeX
\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}
|
||
|