Zadáno

Diplomová práce č. 1 - 2023/2024

Zadání pro studijní obor: Softwarové inženýrství

Název: Technologický stack pro výuku předmětů WEB a OKS

Motivace:
Od akademického roku 2024/25 dochází vzhledem k náběhu nově akreditovaného bakalářského oboru k postupné změně ve složení struktury vyučovaných předmětů. Touto změnou se předmět KIV/OKS, dříve vyučovaný v letním semestru 2. ročníku Bc studia, přesouvá do zimního semestru druhého ročníku. Protože je v tomto semestru vyučován i předmět KIV/WEB, bylo rozhodnuto, že dojde ke spolupráci na samostatných pracích studentů v obou těchto předmětech.
Spolupráce bude realizována tím způsobem, že studenti budou připravovat svoji webovou aplikaci v předmětu KIV/WEB víceméně stejným způsobem, jako dosud. Ovšem v předmětu KIV/OKS nastane zásadní změna a to, že v samostatné práci budou studenti testovat svoji v KIV/WEB současně vznikající aplikaci.
Tato změna pro předmět KIV/OKS představuje přechod z dosud používaného jazyka Java na jazyk PHP a podpůrný jazyk Python (vyučovaný již v 1. ročníku). Druhá změna bude v tom, že již nebude možné pro validaci studentských úloh používat validátor provozovaný na CIV.
Pro dosažení co největší možné jednotnosti vyhodnocovacího postupu (náhrada validátoru) bude nutné, aby studenti měli k dispozici:

Odevzdávání prací bude přes zvolený jednotný verzovací systém. V něm též proběhnou automaticky základní verifikační aktivity odevzdaného artefaktu. Následně bude artefakt a případně i výsledky jeho validace nasazeny či publikovány na testovací prostředí dostupné přes webové rozhraní.

Protože se tento úkol v softwarové praxi vyskytuje relativně velmi často, bude se na konzultačních a realizačních detailech této práce podílet firma RTsoft, s.r.o., jako odborný garant. Očekává se, že firma do projektu vnese své již existující praktické zkušenosti. A po úspěšné realizaci bude moci části práce též využívat.

Zadání:

  1. Seznamte se s hlavními službami, které poskytují verzovací systémy typu Git a jejich možnostmi CI/CD procesu. Dále se seznamte s nástroji pro kontejnerizaci a pro provoz kontejnerů.
  2. Podle požadavků na studentské artefakty dodané vedoucím práce navrhněte organizační strukturu úložiště a příslušné aktivity (pipelines, actions, processes, ...) pro zpracování a publikaci jednotlivých artefaktů.
  3. Realizujte kompletní technologický stack, který bude zpracovávat artefakty odevzdané studenty.
  4. Ověřte funkčnost celého systému na ukázkových artefaktech postupně vytvářené jednoduché webové aplikace.
  5. Celý postup odevzdávání popište v detailní uživatelské dokumentaci.

Cílový operační systém: Linux

Jazyk a technologie: Git, PHP, HTML, CSS, YAML, Docker, Kubernetes

Charakter práce: Analytická a experimentální.

Vhodné pro: Student, který je schopen experimentální práce.

Diplomant: David Kůta


Zadáno

Diplomová práce č. 2 - 2023/2024

Zadání pro studijní obor: Softwarové inženýrství

Název: Automatická evaluace výsledků samostatných prací v předmětech WEB a OKS

Motivace:
Od akademického roku 2024/25 dochází vzhledem k náběhu nově akreditovaného bakalářského oboru k postupné změně ve složení struktury vyučovaných předmětů. Touto změnou se předmět KIV/OKS, dříve vyučovaný v letním semestru 2. ročníku Bc studia, přesouvá do zimního semestru druhého ročníku. Protože je v tomto semestru vyučován i předmět KIV/WEB, bylo rozhodnuto, že dojde ke spolupráci na samostatných pracích studentů v obou těchto předmětech.
Spolupráce bude realizována tím způsobem, že studenti budou připravovat svoji webovou aplikaci v předmětu KIV/WEB víceméně stejným způsobem, jako dosud. Ovšem v předmětu KIV/OKS nastane zásadní změna a to, že v samostatné práci budou studenti testovat svoji v KIV/WEB současně vznikající aplikaci.
Tato změna pro předmět KIV/OKS představuje přechod z dosud používaného jazyka Java na jazyk PHP a podpůrný jazyk Python (vyučovaný již v 1. ročníku). Druhá změna bude v tom, že již nebude možné pro validaci studentských úloh používat validátor provozovaný na CIV.
Pro dosažení co největší možné jednotnosti vyhodnocovacího postupu (náhrada validátoru) bude nutné, aby studenti měli k dispozici jednotný způsob odevzdávání postupně vytvářených částí (artefaktů) jak své aplikace pro KIV/WEB, tak i jejich testů pro KIV/OKS.
Nemožnost používání dřívějšího zcela automatizovaného validátoru bude znamenat, že vyučující KIV/OKS bude nucen individuálně validovat všechny postupně odevzdávané artefakty všech studentů. To samozřejmě představuje velmi výraznou časovou a odbornou zátěž.
Řešením bude aplikace, která bude co možná nejvíce vytěžovat informace ze všech částí technologického stacku (vytvářeného v jiné diplomové práci). Aplikace bude vyučujícímu přehledným způsobem zobrazovat všechny automaticky získávané mezivýsledky a umožňovat mu administrativně co nejjednodušší způsoby kontroly a potvrzení správnosti či nesprávnosti právě kontrolovaného artefaktu.
Důraz bude samozřejmě kladen na to, aby vše, co lze zkontrolovat automaticky, bylo skutečně zkontrolováno již během zpracování artefaktu v technologickém stacku. Aplikace by měla v ideálním případě vyučujícího pouze upozorňovat na detekované problémy, přičemž bezproblémové artefakty by měla sama rozpoznat a ohodnotit.
Jedním z výstupů aplikace bude i přehledná tabulka dosažených bodů, personalizovaná pro každého studenta.

Protože se tento úkol v softwarové praxi vyskytuje relativně velmi často, bude se na konzultačních a realizačních detailech této práce podílet firma RTsoft, s.r.o., jako odborný garant. Očekává se, že firma do projektu vnese své již existující praktické zkušenosti. A po úspěšné realizaci bude moci části práce též využívat.

Zadání:

  1. Seznamte se s validátorem dosud používaným v KIV/OKS, zejména s jeho základními možnostmi validace různých typů úloh. Dále prozkoumejte API systému GitLab s ohledem na využití jeho funkcí pro možnosti aktuálně nově vytvářené validace.
  2. Navrhněte aplikaci, která bude využívat informace získávané z GitLabu a bude je interpretovat pro vyučujícího. Ten bude mít dodatečnou možnost korekcí finálního hodnocení artefaktu. Dále navrhněte sadu validačních úloh, které budou využívány v již existujícím technologickém stacku.
  3. Realizujte navrženou aplikaci v PHP, přičemž se zaměřte na schopnost efektivně a jednoduše pracovat s jednotlivými hodnoceními.
  4. Ověřte funkčnost aplikace na již existujících artefaktech a dále připravte reprezentativní sadu artefaktů pro negativní testy.

Cílový operační systém: není podstatný

Jazyk a technologie: PHP, CSS, HTML

Charakter práce: Analytická a experimentální. Řešit lze na vlastním PC.

Vhodné pro: Student, který je schopen experimentální práce.

Diplomant: Jan Hinterholzinger


Poslední změna: 1.6.2023
Pavel Herout