Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Bc. Samuel Hríbik
Acad. year: 2025/2026
Supervisor: Ing. Jiří Hynek, Ph.D.
Reviewer: Ing. Radek Hranický, Ph.D.
The aim of this semester project was to examine the methods used by local governments to publish records of council votes and to propose a way to detect new records and changes in existing records and then integrate them into the existing system for visualizing council voting results. The solution will be implemented in Python as an external tool called by the original system at regular intervals. The solution will also include an extension for web browsers that will simplify the creation of configuration files for new record sources. Thanks to the results of this semester project, it will be easier to implement a tool that will allow the existing system to be updated with new data more easily, thereby improving its maintainability, timeliness, and overall efficiency of information processing.
council, council voting, web scraping, notification tool
Date of defence
24.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
A
Process of defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.
Topics for thesis defence
Language of thesis
Slovak
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Information Systems and Databases (NISD)
Composition of Committee
prof. RNDr. Alexandr Meduna, CSc. (předseda) doc. Ing. Radek Burget, Ph.D. (místopředseda) RNDr. Marek Rychlý, Ph.D. (člen) Ing. Šárka Květoňová, Ph.D. (člen) Ing. Vladimír Veselý, Ph.D. (člen) Ing. Jiří Hynek, Ph.D. (člen)
Supervisor’s reportIng. Jiří Hynek, Ph.D.
Student ke své práci přistupoval svědomitě, dokázal pracovat samostatně a vytvořil použitelné řešení, díky kterému je stávající mechanismus zpracování dat lépe udržovatelný. Navrhuji hodnocení stupněm A.
Práce vznikla v rámci výzkumu zpracování otevřených dat. Cílem bylo prozkoumat způsoby zveřejňování zápisů z hlasování zastupitelstev českými samosprávami, navrhnout metodu pro detekci nových a změněných záznamů a implementovat notifikační nástroj, který o těchto změnách automaticky informuje. Součástí řešení je také rozšíření pro webové prohlížeče zjednodušující konfiguraci sledování nových municipalit. Student se musel seznámit s technikami web scrapingu, legislativou v oblasti samospráv, jazykem Python a jeho knihovnami (Flask, SQLAlchemy, BeautifulSoup, Playwright, requests, pytest), tvorbou rozšíření pro webových prohlížeč v JavaScriptu (Manifest V3), kontejnerizací Docker a databází SQLite. Zadání hodnotím jako průměrně obtížné a považuji ho za splněné.
Práce byla dokončena včas a obsah mohl být řádně konzultován.
Výsledný nástroj je potenciálně využitelný pro projekt Zastupko.cz.
Student prostudoval doporučenou literaturu a aktivně si vyhledával další zdroje týkající se zpracování webových dat a legislativy v oblasti samospráv.
Student byl aktivní během celého akademického roku a dokázal pracovat samostatně.
Grade proposed by supervisor: A
Reviewer’s reportIng. Radek Hranický, Ph.D.
Student splnil zadání v celém rozsahu a nad jeho rámec vytvořil také prohlížečové rozšíření pro tvorbu konfigurací a skript pro stahování záznamů. Oceňuji zejména velmi pěkně zpracovanou technickou zprávu, kvalitní a dobře zdokumentovaný realizační výstup a jeho ověření na reálných zdrojích dat. Jisté rezervy vidím v práci s literaturou.
S ohledem na kvalitní zpracování diplomové práce a rozšíření nad rámec zadání, doporučuji, i přes drobné nedostatky, hodnocení stupněm "A".
Evaluation level: assignment fulfilled, and the work contains significant extensions
Zadání považuji za splněné v celém rozsahu. Požadované notifikační řešení je plně funkční a student jej dobře otestoval a zdokumentoval. Nad rámec zadání pan Hríbik vypracoval také netriviální užitečné rozšíření pro webové prohlížeče, díky kterému je možné automaticky vytvářet konfigurace pro nové zdroje dat. Dále student vytvořil skript pro stahování souborů (zápisů zastupitelstev) dle konfigurace.
Evaluation level: is within the usual extent
Dle https://app.fit.vut.cz/theses-checker práce čítá 77.86 normostran.
Práce má logickou strukturu a jednotlivé kapitoly na sebe přirozeně navazují. Kvalitně zpracována je zejména kapitola o hlasování samospráv, která obsahuje nejen teoretické principy, ale také prakticky hodnotí dostupnost a použité formáty dat u krajských zastupitelstev v ČR. Zejména oceňuji přehledovou tabulku 2.1.
Část věnovaná zpracování webových dat je relevantní řešenému tématu a dobře vysvětluje nezbytné principy a technologie. S ohledem na řešené téma mi zde však chybí popis existujících nástrojů pro sledování změn na webu a detailnější rozbor možností pro notifikace.
Analýza požadavků dobře vysvětluje nedostatky stávajícího procesu zpracování dat a jasně definuje návrhové cíle. Návrh i implementace jsou popsány srozumitelně, tudíž čtenář dobře chápe, z jakých komponent se výsledné řešení skládá a jaká je jejich role. Kapitola o testování dokládá, že autor řešení ověřoval průběžně během vývoje, pomocí automatizovaných testů i při integraci do celého procesu zpracování dat. Oceňuji zde především práci s reálnými zdroji a praktické ověření na datech Jihomoravského kraje.
Drobnou výtku po prezentační stránce mám k častému používání zobecňujících pojmů jako "niektoré", "väčšina", nebo "spravidla" i v situacích, kdy není zcela zřejmé, zda závěry vycházejí z legislativních požadavků, vlastního studentova průzkumu, nebo jiné existující studie.
Po typografické stránce je práce v pořádku. Textový i vizuální obsah je dobře čitelný a klíčové pojmy jsou písmem vhodně odlišeny. Obrázky a tabulky jsou korektně odkazovány z textu. Drobnou nekonzistencí je pouze střídání označení "obrázok", "obr." a "diagram".
Práce je psána ve slovenštině a vhodně používá odbornou terminologii. Text je po obsahové i stylistické stránce dobře srozumitelný. Během čtení jsem ale objevil několik překlepů, např.: "súšasťou", "programovné rozhranie", "relevantné informácia".
Bibliografie čítá 24 pramenů. Tyto se týkají zejména oblastí veřejné správy, samospráv a technologií pro zpracování a extrakci dat z webu. Zdroje jsou relevantní tématu, ale mohlo by jich být více. S ohledem na zadání bych uvítal zejména prameny, které diskutují problematiku detekce změn na webu a notifikačních technologií. Prohřešky vůči citační etice jsem neobjevil.
Některé položky v bibliografii jsou nekompletní, např. u zdroje 4 je "In:. 2022", zdroj 11 místo názvu konference/sborníku obsahuje "In:. Január 2021" a u zdroje 23 chybí údaje o vydání časopisu. Zdroj 7 pak obsahuje podezřelý odkaz na Google Drive.
Realizační výstup tvoří tři programátorská díla: 1) Docker image s monitorovací komponentou v jazyce Python, 2) skript v jazyce Python pro stahování záznamů hlasování zastupitelstev a 3) rozšíření pro webové prohlížeče v jazyce JavaScript k tvorbě konfiguračních souborů. Oceňuji, že každému z nich je kromě dokumentace v README.md přiložen také soubor QUICKREF.md, který popisuje použití na praktických příkladech.
Výstup je plně funkční, student mi jej demonstroval a vyzkoušel jsem jej také osobně. Zadání přímo požadavalo jen monitorovací nástroj, další dvě díla lze tedy chápat jako rozšíření nad jeho rámec.
Celkový rozsah studentovy programátorské práce tvoří přes 10 tisíc řádků kódu. Ten je vesměs přehledný, přiměřeně komentovaný a jednotlivé funkce jsou pojmenovány srozumitelně. Pozitivně hodnotím zejména mechanismus opakování neúspěšných požadavků, řešení dynamických stránek přes headless browser, nebo verzování a deduplikaci stahovaných souborů. Další silnou stránkou výstupu jsou rozsáhlé automatizované testy.
Výstupy práce hodnotím jako prakticky přínosné. Zatímco primárním cílem je získávání dat o hlasování zastupitelstev pro systém Zastupko.cz, řešení nabízí i širší potenciální využití pro jiné typy opakovaně publikovaných dokumentů (např. zápisů z jednání, rozpočtových dokumentů apod.). Obecně tedy přínos práce není jen v samotné notifikaci, ale též v návrhu obecnějšího mechanismu pro udržování aktuálnosti dat v prostředích, kde neexistuje jednotné API ani standardizovaný způsob publikace těchto dat.
Evaluation level: moderately difficult assignment
Grade proposed by reviewer: A
Responsibility: Mgr. et Mgr. Hana Odstrčilová