Tvorba softvéru v IKT
Semestrálne zadanie
Navrhnite a implementujte funkcionalitu pripomienkovača v programovacom jazyku Java. Zadanie môžu riešiť tímy max. 3 Študentov, každý študent ale musí poznať celé riešenie, vedieť vysvetliť každú jeho časť. Pri dvoch študentov očakávam, že jeden bude robit klienta a druhý server, a navzájom si budú robiť aj testerov - časť venovaná testovaniu bude rozsiahlejšia a popis rozhrania medzi klientom a serverom dôkladnejší. Ak je tím zložený z 3 Študentov, tretí študent by sa mal venovať hlavne dokumentácii, a táto teda bude na vyššej obsahovej a rozsahovej úrovni. Pripomienkovač by mal pozostávať z 2 hlavných častí:- klientská časť - rozhranie na komunikáciu s užívateľom.
- serverová časť - program spracúvajúci požiadavky klienta a perzistentne evidujúci informácie.

Požadovaná minimálna funkcionalita programu:
- prihlasovanie sa (menom+heslom)
- multiuser - každý užívateľ pracuje zo svojimi vlastnými pripomienkami
- zobrazovanie pripomienok
- pridávanie pripomienok
- mazanie pripomienok
- upravovanie (aktualizovanie) pripomienok
- vyhľadávanie v pripomienkach
Pomocné programceky k zadaniu sú tu: TU. Aktuálny obsah:
- od 15.10.2018 - demo klient/server na komunikáciu cez UDP
Ak nejaký študent zostrojí zaujímavú knižnicu / súbor, o ktorej si myslí, že by mohla pomôcť ostatným pri vypracovaní zadania, môže ju ponúknuť tak, že si ju dá schváliť vedúcim cvičení, ktorý ju následne uloží do vyššieuvedeného sdresára. Následne tento kód študenti môžu využiť v zadaní bez toho aby boli kvoli nemu obvinení z toho, že na zadaní "nadštandardne spolupracovali" s kolegami. Vyššie uvedené platí aj pre šablóny + kostry pre sprievodné dokumenty, resp. iné druhy zabalených informácií ktoré by mohli ostatným študentom pomôcť. Táto aktivita má hodnotu 0 až 2 body pri udelovaní bodov za aktivitu na cvičení. Termín ukončenia je 31.12.2018.
ZJEDNODUŠENIA ZADANIA (už zapracované do vyššie uvedeného zadania):
3.12.2018 16:50: Text "mazanie starých pripomienok" v zadaní bol zmenený "mazanie pripomienok", aby si riešiteľ nemyslel, že systém to musí vediet robit automaticky, keď pripomienka zostarne.
3.12.2018 16:44: Doplnený príklad: "Napríklad klient môže byť kľudne v bashi (bez využitia OOP) a server v jave (s využitím prostriedkov OOP)"
3.12.2018 16:00: Zväčšené bodové ohodnotenie a predĺžený termín, na dávanie podporných modulov pre ostatných študentov študentami. Táto aktivita má teraz hodnotu 0 až 2 body pri udelovaní bodov za aktivitu na cvičení. Termín ukončenia je 31.12.2018.
3.12.2018 15:45: Zadanie môžu riešiť tímy max. 3 Študentov, každý študent ale musí poznať celé riešenie, vedieť vysvetliť každú jeho časť. Pri dvoch študentov očakávam, že jeden bude robit klienta a druhý server, a navzájom si budú robiť aj testerov - časť venovaná testovaniu bude rozsiahlejšia a popis rozhrania medzi klientom a serverom dôkladnejší. Ak je tím zložený z 3 Študentov, tretí študent by sa mal venovať hlavne dokumentácii, a táto teda bude na vyššej obsahovej a rozsahovej úrovni.
3.12.2018 14:30: Riešenie je možné zjednodušiť tak, že klient aj server budú iba rozne triedy v rámci toho istého projektu, stačí, že budú komunikovať pomocou jasne definovanej "interface triedy". Celý program sa tým pádom stane dosť reálne nepoužiteľný a s tým súvisí aj strata v hodnote 3 bodov za obmedzenie funkcionality, ak si študent zvolí toto zjednodušenie.
29.11.2018 18:38: K rieseniu musí byť vygenerovaná dokumentácia (javadoc). Pričom najzložitejšia trieda v programe musí byť ukážkovo zdokumentovaná (vrátane každej metódy atď.). Pre ostatné triedy stačí popísať účel triedy.
29.11.2018 18:35: Odstránená požiadavka na prítomnosť "navigačného menu" v klientovi
29.11.2018 18:30: Zadanie nemusí byť zrealizované v JAVE, stačí ľubovoľný jazyk s podporou OOP (prostriedky OOP musia byť využité). Ak bude použitá databáza musí podporovať SQL a SQL musí byť využité.
29.11.2018 14:00: Text zadania: "Server musí podporovať ukladanie informácií na súborový systém aj do databázy (pri odovzdávaní sa overí funkčnosť riešiteľom vybranej možnosti, druhá možnosť stačí, že bola otestovaná a zdokumentovaná riešiteľom)." sa zmenil NA "Server musí podporovať ukladanie informácií na súborový systém, alebo do databázy (stačí DERBY)."
Harmonogram a systém bodovania zadania (vytvorené 3.12.2018 o 14:00):
Funkcionalita (kompletnosť, fungovanie, reagovanie a vysvetlovanie študenta): 18 bodov. Dokumentácia: 8 bodov. Odovzdanie kódu do AIS do 21.12.2018 do 23:00 max 18 bodov. Odovzdanie kódu do AIS do 2.1.2018 do 23:00: max 12 bodov (pokles 0.5 bodu/kalendárny den). Odovzdanie kódu do AIS po 2.1.2018 po 23:00: max 0 bodov. Odovzdanie dokumentácie k programu do AIS do 2.1.2018 do 23:00: max 8 bodov. Odovzdanie dokumentácie k programu do AIS po 2.1.2018 po 23:00: max 0 bodov. Ak sú študentí v tíme, musia zadanie do AISu odovzdať všetci (obe časti - kód aj dokumentáciu) a jasne v ňom deklarovať, s kým tvorili tím. Funkcionalita zadania sa bude overovať 10.12.2018 na cvičení, 17.12.2018 od 9:00 do 11:00, prípadne aj kedykoľvek do 21.12.2018 po dohode s cvičiacim. Dalej 3.1.2019 po skúške (2 hodiny). Na dosiahnutie plného počtu bodov za funkčnosť zadanie musí byť 100% funkčné a študenti musia vedieť vysvetliť ako všetko robili. Bude sa overovať funkcionalita kódu uloženého v AISe. Body budú udelené spolu so skúškou do 4.1.2019. 4.1.2019 je možné medzi 10:30 a 12:00 nahladnuť k výsledkom hodnotenia zadania (aj skúšky). Zápočet bude udelený po dosiahnutí >=13 bodov za zadanie.