Bachelor's Thesis

Improving the Quality of the Backend Application Interface in a Smart Home System

Final Thesis 1.59 MB

Author of thesis: Peter Gvozdják

Acad. year: 2025/2026

Supervisor: Ing. Petr John

Reviewer: doc. RNDr. Pavel Smrž, Ph.D.

Abstract:

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.

Keywords:

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)

znamkaBznamka

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

  1. Co byla nejproblematičtější věc v poskytnutých rozhraních?

Language of thesis

Slovak

Faculty

Department

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 report
Ing. 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.

Evaluation criteria Verbal classification
Informace k zadání

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í. 

Práce s literaturou

Student prostudoval doporučenou literaturu a sám aktivně vyhledával další relevantní zdroje.

Aktivita během řešení, konzultace, komunikace

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.

Aktivita při dokončování

Student dokončil praktickou část bakalářské práce včas, což umožnilo integrovat a nasadit jeho výsledky do provozu.

Publikační činnost, ocenění

-

Points proposed by supervisor: 85

Grade proposed by supervisor: B

Reviewer’s report
doc. 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 criteria Verbal classification Points
Náročnost zadání

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

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ů. 

79
Formální úprava technické zprávy

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.

82
Realizační výstup

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.

89
Využitelnost výsledků

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.

Rozsah splnění požadavků zadání

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. 

Rozsah technické zprávy

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.

Práce s literaturou

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.

79
Points proposed by reviewer: 75

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová