V této fázi bychom chtěli implementovat katalog kurzů. Každý kurz má svůj název a krátký popisek, aby bylo jasné, o čem je. Uživatelé si budou moct projít nabídku kurzů a rozkliknout jednotlivé kurzy pro více informací. Kurzy jsou veřejně dostupné, bez nutnosti přihlášení uživatele.
Aplikace by měla být v souladu s naším firemním brandmanuálem, který najdete pod tímto odkazem.
/courses, na které budou zobrazené
všechny dostupné kurzy.
/courses/:uuid s dalšími informacemi, které nejsou viditelné na seznamu
kurzů, a které přibudou v pozdějších fázích. uuid je unikátní
identifikátor daného kurzu.
/dashboard, kde lektor spravuje kurzy, jak je
popsáno výše.
/login. Tam bude mít možnost se přihlásit.
Lektor bude jediný uživatel, který bude kurzy spravovat. Registrace se zatím neřeší, proto mějte prosím tento lektorský účet pevně daný s následujícími přihlašovacími údaji:
Jméno:
lecturerHeslo:
TdA26!
Po přihlášení lektor získá přístup k ovládacím prvkům, kde může:
Info: v pozdější části budeme chtít řešit i registrace, mějte to na paměti při návrhu aplikace.
Samotná webová stránka by ale bez nějakých dat byla celkem prázdná. Proto je třeba implementovat i backend – tedy část aplikace, která běží čistě na serveru a poskytuje data pro frontend (frontend je část aplikace, se kterou může uživatel přímo interagovat).
Vaším úkolem bude implementovat REST API, které umožní správu kurzů, jejich materiálů a aktivit (např. kvízů).
Celou specifikaci API jsme pro vás připravili ve formátu OpenAPI – najdete v ní detailní popis všech dostupných endpointů (“přístupových bodů”), jaká data očekávají a co vrací. Specifikace je ve formě yaml souboru, který stačí stáhnout a nahrát do některého z online vizualizátorů, jako je například Swagger.
Tato specifikace je minimální API, kterou vaše aplikace musí obsahovat, aby prošla automatickými testy. Pokud chcete parametry nějakým způsobem rozšířit, je to čistě na vás.
Data aplikace je třeba nějak ukládat, proto byste měli do své aplikace implementovat databázi[?], která bude uchovávat záznamy o kurzech, podkladech a aktivitách. Pokud jste začátečníci, doporučujeme využít některou z jednodušších databází jako například SQLite nebo MySQL.
Je důležité mít na paměti, že databáze v našem systému nebudou perzistentní. To znamená, že při restartu aplikace nebo nahrání nové verze se veškerá data ztratí. Silně proto doporučujeme do databáze při startu aplikace automaticky nahrát sadu základních dat (tzv. seeding), abyste nemuseli pokaždé vše přidávat manuálně. Toto pochopitelně není problém, pokud používáte externě hostovanou databázi.