====== Checkpoint 2 ====== Odevzdává se (v Git repozitáři): * Výsledná **fungující aplikace** splňující tyto podmínky: * Projekt je sestavitelný Mavenem a build prochází včetně testů (tj. ''mvn clean package'' proběhne úspěšně), * 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), * Testovací dotazy musí být sdružené do scénářů, které umožňují vyzkoušet business logiku aplikace. Není třeba pokrýt veškerou funkcionalitu, ale scénáře by měly zahrnovat CRUD a netriviální logiku. * 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.), použití Dockeru. * Znovu si projděte [[https://docs.google.com/document/d/1mJVCTrZe8O5x1Z-YUplvhd72N9BZt1KBw93mrdyaG0w/edit?usp=sharing | tipy, na co si dát pozor]]. * **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. Způsob odevzdání viz stránka [[courses:b6b36ear:hodnoceni|Hodnocení předmětu]].