====== Semestrální práce ====== ===== Témata ===== Jsou doporučena témata, která budou v souladu s předmětem Databázové systémy ([[https://cw.fel.cvut.cz/wiki/courses/a4b33ds/cviceni-1|témata ZDE]]). Po dohodě s cvičícím je ale možné vybrat si i jiné - vlastní, pokud bude splňovat všechny náležitosti SP. Vzhledem k tomu, že se předpokládá práce ve dvojici a témata předmětu DBS jsou obvykle typu informační systém, doporučujeme práci koncipovat jako distribuovanou aplikaci klient-server. Klientská část se bude primárně starat o komunikaci se serverem (např. po síti), vizualizaci a vstup uživatelských dat. Serverová část bude zajišťovat data ve vhodné formě z externího úložiště (např. SQL databáze), bude kontrolovat konzistenci dat a poskytovat data klientské aplikaci. Je tedy potřeba definovat vhodný komunikační protokol mezi klientem a serverem. ====== Témata pro samostatnou práci ====== Je samozřejmě možné pracovat i samostatně. Semestrální práce tak bude menšího rozsahu, ale musí být splněny všechny podmínky pro vypracování SP. * [[courses:b0b36pjv:semestral:herni_engine]] * [[courses:b0b36pjv:semestral:simulace]] * [[courses:b0b36pjv:semestral:sachy]] ===== Podmínky pro vypracování SP ===== - Pracuje se ve dvojicích nebo jednotlivě. Členové týmu nemusí být ze stejného cvičení. - Práce je vyvíjena za pomoci verzovacího systému GIT. Veškeré změny jsou ukládány výhradně na [[http://gitlab.fel.cvut.cz]]. Zadání pište do wiki u Vašeho projektu. - Na Gitlabu bude ve wikipedii do předepsaného termínu zapsáno téma práce a jména obou účastníků projektu. - Ve wiki bude udržována zvláštní stránka s odhadem pracnosti jednotlivých částí práce a rozdělení úkolů každého z týmu. - Oba členové týmu se v předepsaný týden musí společně zúčastnit kontrolního pohovoru nad vypracovaným objektovým návrhem práce a předpokládaným protokolem komunikace klient-server (bude-li použit). - Oba členové týmu se musí společně zúčastnit odevzdání práce na konci semestru. Oba musí rozumět a být schopni odpovědět na otázky ohledně všech částí kódu (tedy ne jen svých). Technické požadavky na semestrální práci: - Bude dokladovatelný progres projektu na Gitlabu. - Projekt bude v Mavenu. - Oba učástníci projektu musí vytvořit GUI (nemusí být shodné náročnosti). Alespoň jedno netriviální okno bude vytvořeno bez požití Designeru v Netbeans nebo jiném "klikacím" nástroji. - V projektu budou rozumně použita vlákna (za to se nepovažuje použití např. třídy Timer). - Několik netriviálních tříd bude pokryto unittesty - Budou použity loggery. - Javadoc - Veškeré public prvky v programu musí mít smysluplný Javadoc - Kód bude vhodně okomentován. - Návod/Popis - Na wiki FEL GitLabu musí být návod na používání programu (uživatelský manuál) a popis programu - jeho vlastností, struktura projektu, použité technologie (technická dokumentace). Pozor, nesuplujte Javadoc. - Angličtina - všechno kromě dokumentace na GitLabu musí být v angličtině. Anglicky musí být i Javadoc. ===== Odevzdání ===== Práce bude odevzdána v předepsaných týdnech (dva poslední týdny semestru). Odevzdání ve zkouškovém termínu není možné, pouze ve výjimečných případech (nemoc apod.) lze po domluvě s cvičícím umožnit odevzdání v prvním týdnu zkouškového období. ===== Termíny ===== Do 19.3.2017 - Projekt na Gitlabu, popsaná dělba práce a téma a cíl práce na Wiki.