Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Peter Gvozdják
Acad. year: 2025/2026
Supervisor: Ing. Petr John
Reviewer: doc. RNDr. Pavel Smrž, Ph.D.
The Internet of Things is one of the fastest growing areas of software engineering. Users expect reliable behavior of applications managing IoT devices regardless of the scope of deployment. In smaller installations, such as smart homes, performance deficiencies may not be visible, but optimizing the application interface allows the system to be deployed on performance-constrained devices. This bachelor’s thesis deals with improving the quality of the backend application interface of the RIoT system, which uses the GraphQL API for managing and monitoring IoT devices. The thesis identifies the weaknesses of the current implementation — the absence of database indexes, inappropriate automatic migrations, missing pagination, and incorrect loading of nested fields — and proposes their solutions. As proof of the correctness of the implemented changes and protection against future regression, an automated testing methodology using the Hurl tool with integration into the CI pipeline via GitHub Actions was introduced. The result is a more stable, more powerful and more maintainable RIoT backend interface.
Internet of Things, GraphQL, automated testing, backend interface, Smart City
Date of defence
16.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
B
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 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 B.
Topics for thesis defence
Language of thesis
Slovak
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Ing. Tomáš Martínek, Ph.D. (předseda) doc. Ing. Michal Španěl, Ph.D. (místopředseda) Ing. Jiří Hynek, Ph.D. (člen) Ing. Filip Orság, Ph.D. (člen) Ing. Vladimír Bartík, Ph.D. (člen)
Supervisor’s reportIng. Petr John
Bakalářskou práci hodnotím jako zdařilou. Student si osvojil potřebné technologie a na základě těchto znalostí rozšířil existující aplikační rozhraní a značně vylepšil existující databázovou vrstvu v aplikaci RIoT. Výsledky práce předejdou nechtěným změnám aplikačního rozhraní a díky úpravám databázové vrstvy usnadní další vývoj celé aplikace. Navrhuji hodnocení stupněm B.
Cílem studentovy práce bylo vylepšit aktuální aplikační rozhraní založené na GraphQL v aplikaci RIoT. K tomuto cíli student musel nastudovat problematiku oblasti chytrých zařízení, souvisejících konceptů jako jsou chytrá města a problematiku aplikačních rozhraní primárně zaměřenou na studium typu GraphQL a testování aplikačních rozhraní. Následně student analyzoval problémy v současném aplikačním rozhraní aplikace RIoT. Kromě těchto nedostatků student odhalil i mnohé další, a to nejen na vrstvě samotného rozhraní, ale i v dalších vrstvách (např. databázové). V návrhu a implementaci student spojit teoretické poznatky a výsledky analýzy, vylepšil současné aplikační rozhraní, značně vylepšil databázovou vrstvu a své změny podložil automatizovanými testy. Díky tomu byl schopný zajistit kompatibilitu koncových bodů, které se v rámci jeho práce až na avizované změny neměly měnit. Zadání hodnotím jako průměrně obtížné a považuji ho za splněné ve všech bodech. Práce navazuje na a rozvíjí výstupy vznikající v rámci mé disertační práce [1].
[1] John, Petr. Optimising processes in IoT. Brno, 2024. Pojednání k tématu disertační práce. Vysoké učení technické v Brně, Fakulta informačních technologií.
Student prostudoval doporučenou literaturu a sám aktivně vyhledával další relevantní zdroje.
Student komunikoval po celý akademický rok. Konzultace s vedoucím práce probíhaly online přibližně jednou za dva týdny. Student také často komunikoval prostřednictvím zpráv a informoval o pokroku. Student řádně plnil zadané úkoly a práce postupovala dobrým tempem.
Student dokončil praktickou část bakalářské práce včas, což umožnilo integrovat a nasadit jeho výsledky do provozu.
-
Grade proposed by supervisor: B
Reviewer’s reportdoc. RNDr. Pavel Smrž, Ph.D.
Celkově práce splnila zadání, nově začlenila testování definovaných API do procesu vývoje systému RIoT a odstranila nejpalčivější nedostatky, zjištěné v rámci studentem připravených testovacích scénářů. Práce se zabývá čistě technickými aspekty řešení, nicméně technická zpráva přesvědčivě diskutuje principy navrženého a realizovaného řešení a ukazuje celkové přínosy výstupů práce. Výsledek hodnotím jako zdařilé dílo a navrhuji hodnocení stupněm C, případně i B, podle výsledků prezentace při obhajobě práce.
Evaluation level: průměrně obtížné zadání
Zadání bylo průměrně obtížné, vyžadovalo zorientování se v současném aplikačním rozhraní systému pro správu a monitorování zařízení IoT, vybrání vhodného systému pro automatické spouštění testů, definování a provedení veškerých testovacích scénářů, vyhodnocení výsledků a odstranění identifikovaných problémů.
Prezentační úroveň technické zprávy je dobrá, kapitoly na sebe navazují a text je dobře srozumitelný i pro čtenáře, kteří znají jen základy rozhraní typu GraphQL, automatického testování a kontinuálního vývoje. Ocenil bych ale obecnější pojednání o testování, zahrnující i další typy, především zátěžové a výkonnostní, které je, z mého pohledu, vhodné u rozhraní postavených na GraphQLu kombinovat s testováním samotného API a konkrétních dotazů/indexů.
Technická zpráva má velmi dobrou formální úpravu, typografická a jazyková stránka práce jsou na vysoké úrovni, vyskytují se spíše ojedinělé problémy sazby, případně stylistické prohřešky.
Během domluvené ukázky realizačního výstupu student demonstroval plnou funkčnost vytvořeného programového řešení i konkrétní (dosti specifické) prvky doplněné a opravené funkcionality (například stránkování). Dokumentace výsledků je velmi dobrá a verifikace proběhla vhodným způsobem. Zdrojové kódy jasně oddělují části, vytvořené samotným studentem, od existujícího systému a využívaných externích komponent.
Výsledky budou bezprostředně začleněny do vývoje systému RIoT, obecně mohou být získané poznatky využity i pro zkvalitnění vývoje dalších API, postavených na GraphQL.
Evaluation level: zadání splněno
Zadání bylo bez výhrad splněno, student identifikoval závažné nedostatky současné implementace systému RIoT, mj. nesprávné načítání vnořených polí a absenci databázových indexů, potřebných k rychlému odpovídání na uživatelské dotazy. Navíc zavedl do standardního užívání a běžné praxe vývoje systému RIoT testování pomocí nástroje Hurl a metodiku kontinuálního vývoje, využívající GitHub Actions.
Evaluation level: je v obvyklém rozmezí
Rozsah technické zprávy odpovídá očekávání a běžným zvyklostem. Všechny části jsou informačně bohaté a obecně přispívají k celkově dobré informační hodnotě předloženého textu.
Student cituje 25 relevantních zdrojů, prameny jsou vhodně zvoleny, nicméně zpracování se zaměřuje na čistě technické aspekty probíraných témat, bez zobecnění pohledu na celou oblast API, včetně alternativ GraphQL, vazby mezi testováním a poloautomatickou úpravou kódu apod.
Grade proposed by reviewer: C
Responsibility: Mgr. et Mgr. Hana Odstrčilová