AiArk-21.2.2025/doc/main.tex
2025-02-21 13:29:52 +01:00

102 lines
4.8 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\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}