AiArk-21.2.2025/doc/main.tex

102 lines
4.8 KiB
TeX
Raw Permalink Normal View History

2025-02-21 12:29:52 +00:00
\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}