====== Checkpoint 2 ====== Odevzdává se (v Git repozitáři): * Výsledná fungující aplikace splňující tyto podmínky (projekt kompilovatelný Mavenem): * Vyhovuje SRS vytvořené v rámci [[cp1|checkpointu 1]], * Používá persistentní vrstvu, navrženou a schválenou v rámci [[cp1|checkpointu 1]], obohacenou o alespoň tři z následujících technik/funkcí: * Ordering (uspořádání kolekce podle atributu - ''@OrderBy''), * Pojmenované dotazy (''@NamedQuery''), * Kaskádní persist/update/merge/remove, * Složené primární klíče, * Mapování výsledků JPQL/native dotazu (''@SqlResultSetMapping''), * Criteria API, * Metamodel API. * Kompletní CRUD části datového modelu. Tento CRUD musí být netriviální, tedy přes více entit spojených vazbami, * Využít transakční zpracování, * REST rozhraní využívající business logiku aplikace, * Použít security podporu (autentizace, autorizace, omezení přístupu k metodám beany, funkcionalita aplikace podle role uživatele), * Ověřitelnost funkcionality aplikace, a to pomocí alespoň jedné z následujících možností: * Integrace REST rozhraní s jinou aplikací, a to jednou z těchto možností: * Integrace s REST rozhraním ukázkového projektu (tedy konzumací REST rozhraní e-shop aplikace), * Integrace s REST rozhraním aplikace z jiné skupiny, * Integrace s rozhraním jiné aplikace dostupné na webu (nemusí být REST). * Sadou HTTP dotazů a testovacích dat, kterou lze použít pro otestování REST rozhraní aplikace (např. v Postmanu), * Prezentační vrstvy. * Bonusové body lze získat za použití dalších souvisejících technologií - např. WebSockets, použití Criteria API vč. statického metamodelu, použití rich domain modelu, použití JSON-LD ve webových službách, více scope pro beany BL, použití externích autentizačních služeb (Google, Facebook, SSO apod.). * zpráva o projektu (cca 1 A4), * Popis aplikace a její struktury, * Návod, jak aplikaci nainstalovat (stručný, ale kompletní, včetně případného vytvoření testovacích dat a konfigurace aplikačního serveru), * Vypíchněte především zkušenosti získané během této SP - "Vyzkoušel jsem si tu a tu technologii a má tyto výhody/nevýhody oproti jiné technologii." , nebo "Měl jsem ty a ty neočekávané problémy a řešil jsem je tak a tak.", apod.