Zadáno
Diplomová práce č. 1 - 2025/2026
Zadání pro studijní obor: Softwarové inženýrství
Název: Systém správy a validace studentských úloh s využitím systému GitLab
Motivace:
Od akademického roku 2024/25 došlo 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ů. Obsah předmětu KIV/OKS byl aktualizován v návaznosti na zmíněné změny. Jedná se například o rutinní využití GitLabu, Dockeru a dalších v praxi běžně používaných technologií.
Pro dosažení co největší možné jednotnosti vyhodnocovacího postupu odevzdávaných úloh samostatných prací byly v ak. roce 2023/24 realizovány dvě diplomové práce, díky nimž mají studenti k dispozici:
- Jednotný způsob odevzdávání postupně vytvářených úloh pro KIV/OKS.
- Odevzdávání jednotlivých úloh je prováděno pomocí verzovacího systému GitLab. V něm též automaticky proběhnou v rámci předpřipravených pipelines kompletní validační aktivity a včetně případného spuštění odevzdané úlohy (tj. testů v ní).
- Vyučující má díky další samostatné aplikaci možnost odevzdané úlohy hodnotit a bodovat.
Obě dvě diplomové práce byly ale připravovány pro původní koncept předmětu KIV/OKS, který byl založen na intenzivní spolupráci s předmětem KIV/WEB. To například znamenalo, že hlavním programovacím jazykem bylo Php. Zmíněný koncept se ale bohužel neosvědčil v praxi a proto byl od akademického roku 2025/26 opuštěn. Změna nastává v ukončení spolupráce s předmětem KIV/WEB a následným přechodem na hlavní -- v bakalářském studijním programu vyučovaný a používaný -- jazyk Python.
Nicméně mnoho konceptů ze zmiňovaných dvou diplomových prací se ukázalo jako velmi výhodných, takže je možné jich nadále využít.
Diplomová práce bude řešit následující oblasti:
- Zátěžové testy
Celý systém byl a bude provozován na výpočetních prostředcích poskytovaných CIV. Pro optimální využití těchto sdílených prostředků bude vhodné analyzovat dostupná data z předchozího roku odevzdávání úloh a dále pak připravit sadu zátěžových testů. Na základě zjištěných údajů pak navrhnout změny, např. optimalizaci sdílených zdrojů.
- Validační skripty
Každý student bude odevzdávat 10 úloh, přičemž se očekává zhruba 80 až 100 studentů v ročníku (předmět KIV/OKS je povinný A předmět). Protože finální hodnocení celé samostatné práce (výsledků všech jednotlivých úloh) musí provádět manuálně vyučující, je zřejmé, že při počtu studentů a počtu úloh bude jakákoliv předcházející automatická kontrola (validace) velkou pomocí.
Pro tuto aktivitu se osvědčil koncept, kdy je každá úloha pokryta větším či menším počtem relativně jednoduchých validačních skriptů (mikrovalidace) spouštěných automaticky v příslušné pipeline úlohy.
Tento koncept validačních skriptů je vhodné převzít a přizpůsobit jej nové koncepci předmětu (tj. zejména jazyku Python). Na základě předchozích zkušeností bude ale nutné navrhnout a realizovat výrazně robustnější softwarové řešení.
Nově vzniklé validační skripty bude třeba prokazatelně otestovat rozsáhlou sadou pozitivních i negativních testů. Dále bude nutné začlenit tyto testy do stávajícího systému tak, aby bylo možné kdykoliv ověřit správnou funkci validačních skriptů.
- Úprava vyhodnocovací aplikace
Tato aplikace byla vytvořena jako řešení jedné z již zmíněných diplomových prací. Byla vytvořena dostatečně modulárně a koncepčně, takže ji bude možné po určitých úpravách využívat i pro nově koncipovaný přístup. Kromě toho -- po roce jejího používání -- byly zaznamenány četné náměty na její další vylepšení.
Oba tyto úkoly by měla diplomová práce vyřešit.
- Monitoring
Odevzdávání jednotlivých studentských úloh pomocí systému GitLab a jejich následná validace tamtéž má jako vedlejší efekt vznik značného množství průběžných dat. Ty je možné dále využívat pro nejrůznější statistické účely.
Budou využity nástroje Elasticsearch a Kibana nainstalované na server KIV. Elasticsearch bude z GitLabu po každém jednotlivém odevzdání úlohy automaticky přebírat data a pomocí Kibana je online vizualizovat. K tomu je zapotřebí provést analýzu dostupných dat. Prvním subúkolem bude navrhnout a realizovat vhodnou komunikaci systémů GitLab a Elasticsearch. A druhým subúkolem pak bude příprava sady vhodných dashboardů v Kibana. Nezbytná pozornost musí být též věnována zabezpečení případných citlivých dat.
Zadání:
- Seznamte se se stávajícím systémem odevzdávání a validace studentských úloh pro předmět KIV/OKS včetně již známých požadavků na jejich vylepšení. Reflektujte též změny, které nastaly jak v náplni předmětu, tak i v technickém zabezpečení.
- Na stávajícím systému navrhněte a proveďte reprezentativní sadu zátěžových testů. Získané hodnoty interpretujte a použijte je jako východisko pro další aktivity.
- V reakci na změny popsané v bodu 1) a též podle výsledků z bodu 2) navrhněte a implementujte robustní systém validace studentských úloh včetně jeho selftestů.
- Prostudujte a na základě nových požadavků upravte jak studentskou, tak i učitelskou část vyhodnocovací aplikace. Dodržte možnost přihlašování univerzitním SSO.
- Identifikujte vypovídající metriky z GitLabu z odevzdaných studentských úloh. Navrhněte a realizujte automatizovaný systém jejich sběru, ukládání a vizualizace pomocí nástrojů ElasticSearch a Kibana.
- Vytvořené systémy ověřte co do funkčnosti a kvality a zdokumentujte. Vyhodnoťte jejich přínosy a identifikujte možná zlepšení
Cílový operační systém: Linux
Jazyk a technologie: GitLab, Python, HTML, CSS, YAML, Docker, Php
Charakter práce: Analytická a experimentální.
Vhodné pro: Student, který je schopen experimentální práce.
Diplomant: Matěj Rampula
Poslední změna: 25.8.2025
Pavel
Herout