Pomáháme plnit Vaše strategické cíle
v oblasti informačních systémů
Poskytujeme široké spektrum vzdělávacích
programů, eLearningových a odborných kurzů
Vyhovíme Vašim potřebám
v oblasti informačních systémů
Disponujeme zkušeným týmem analytiků,
konzultantů a programátorů

Zadání

Vytvořte webovou aplikaci pro správu knížek v knihovně. Aplikace bude komunikovat se serverem přes rozhraní REST API(4), které bude ukládat a poskytovat obsah. 

Aplikace musí umět základní operace pro správu:  

  • Vytvoření, editace a smazání knihy
  • Vytvoření, editace a smazání žánru
  • Vytvoření, editace a smazání autora
  • Vypsání stránkovaného seznamu knih (max 25 záznamů na stránku) s možností prokliku na detail knihy
    • Všech v knihovně
    • Podle zvoleného autora
    • Podle zvoleného žánru
  • Vypsání stránkovaného seznamu autorů s možností pro-kliku na detail autora

 

Uživatel má možnost minimálně definovat u knihy její název, ISBN, rok vydání, kategorie žánrů, do kterých spadá, jejího autora (autory) a počet stran. Další vhodné položky jsou vítané. 

Žánr je definován pouze unikátním názvem. 

U autora má uživatel možnost minimálně definovat jméno, příjmení, datum narození a úmrtí. 

 

Požadavky pro klientskou část aplikace 

Aplikace by měla být napsaná v React(3) s použitím vhodné stylovací komponenty(1). Sestavování bude provádět webpack. 

Data budou ukládána do vhodně rozdělených Reducer, nikoliv do State jednotlivých komponent, pokud to nebude nezbytně nutné nebo vhodné. Jednotlivé komponenty by měly být co nejjednodušší, bez složitých a nevhodných logických prvků. 

URL při procházení aplikací by měly být „hezké“, tzn., že např. 

  • pro stránku s detailem konkrétní knihy by měl mít v urlhttps://www.knihovna.org/kniha/54
  • pro seznam autorů https://www.knihovna.org/autori

apod. 

 

Požadavky pro serverovou část aplikace 

Aplikace by měla být napsaná s pomocí frameworku Spring boot(2). Poskytování dat bude formou Rest kontrolérů. Data budou ukládaná v relační databázi (je možné použít např. PostgreSQL, MSSQL nebo i souborovou verzi H2) pomocí Hibernate. 

Architektura serveru by měla být vhodně rozdělena do několika vrstev: 

  • Controller: poskytují data pro klienta a operace možné pro tvorbu a editaci jednotlivých entit (kniha, autor, žánr, …) – tvoří REST API
  • Service: poskytují hlavní aplikační logiku pro jednotlivé operace
  • Repository: jedná se o nízkoúrovňový přístup k databázovým objektům, jejich úpravu a ukládání

Restové API by mělo splňovat obecná pravidla pro psaní, tzv. „best practices“. 

 

Řešení 

Finální práce by měla obsahovat okomentované zdrojové kódy, jak na klientovi, tak i na serveru. Musí obsahovat soubor README.md, ve kterém bude popsáno, jak aplikaci přeložit a spustit. 

 

Užitečné odkazy