NSWI142: Příprava na programátorský test

Cílem je vyvinout jednoduchou webovou aplikaci v PHP a JavaScriptu umožňující editaci a zobrazení článků. Vytvořenou aplikaci je nutné nasadit na adresu https://webik.ms.mff.cuni.cz/~{user-id}/cms/, kde {user-id} je Vaše uživatelské jméno.

Změny:

Funkcionální požadavky

Z hlediska funkcionality lze aplikaci rozdělit na několik částí: seznam článků, detail článku a editace článku. V rámci aplikace neřešte synchronizaci dat pro více uživatelů/klientů.

Seznam článků

Seznam článků je dostupný na URL ./articles a pokrývá zejména následující funkcionalitu:

Detail článku

Detail článku je dostupný na URL ./article/{id}, kde {id} je identifikátor článku. Detail článku pokrývá následující funkcionalitu:

Editace článku

Editace článku je dostupná na URL ./article-edit/{id}, kde {id} je identifikátor článku. Editace článku pokrývá následující funkcionalitu:

Nefunkční požadavky

Data

Data jsou uložena v relační databázi MySQL. Schema musí obsahovat tabulku articles, ve které jsou uloženy jednotlivé články. Tabulka musí obsahovat sloupce name a content, ve kterých je uložen název a obsah článku.

Pro účely demonstrace je vhodné do databáze připravit ukázková data, zejména pro stránkování.

Externí zdroje

Jakékoli "externí zdroje" na internetu, jmenovitě StackOverflow, Github Copilot nebo Chat GPT, lze použít pouze k řešení dílčích problémů, nikoli k přímému řešení zadání. Není tedy možné využít externí zdroje pro implementaci celých tříd, větších funkcí, nebo získání architektonického návrhu řešení. Hledání dokumentace funkcí a příkladů jejich použití je povoleno.

Ačkoliv by plné využití AI vedlo ke značnému zjednodušení celé úlohy, cílem není testovat AI. Účelem je otestovat Vaše porozumění vývoji webových aplikací, které je nezbytné pro možné budoucí řešení složitějších úloh. AI tedy využívejte pouze pro seznámení se s obsahem v dobře definovaném rozsahu, Jinak řešeno, programujete stále vy a nikoliv AI. Pro ověření této skutečnosti musíte být schopni plně vysvětlit libovolnou část zdrojového kódu, ale i velkové řešení aplikace, na požádání. Nedostatečné porozumění vlastnímu řešení je důvodem pro opakování zápočtového testu.

Jednotlivé části svého řešení musíte být schopni demonstrovat na vhodných příkladech mimo Váš zdrojový kód.

Upřesnění hodnocení

Vaše zápočtová práce musí implementovat všechny výše uvedené funkce, jak bylo popsáno, jinak nebude akceptována. Od specifikace je možné se odchýlit, pokud bude zachován zamýšlený rozsah testovaných znalostí a dovedností, jejichž zvládnutí má student v této práci demonstrovat. Při implementaci zejména dbejte na následující podmínky: