Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Bc. Ivan Chodák
Acad. year: 2024/2025
Supervisor: Ing. Petr John
Reviewer: Ing. Jiří Hynek, Ph.D.
This thesis explores the design and implementation of user-defined functions (UDFs) in a visual programming language (VPL) within the context of the Internet of Things (IoT) and Smart Cities. It is built on top of an existing Pocketix vpl-editor tool and integrated into the RIoT system. The primary objective is to enable non-technical users to create, manage, and execute custom procedures, allowing for control of various IoT devices in smart environments intuitively. By analysing the implementation against existing frameworks like Blockly and Node-RED, the thesis identifies key requirements for accessibility, flexibility, and seamless user interaction to accommodate them. The proposed solution is integrated into the RIoT system, providing a user-friendly way for creating reusable workflows through a visual editor. The resulting framework promotes logical encapsulation, scalability, and efficient interaction via different IoT devices in the environment, empowering users to define reusable procedures with ease. These user procedures can be executed via the RIoT interpret into a Go code, suitable for IoT environments.
visual programming languages, IoT, Smart Cities, end–user defined functions
Date of defence
19.06.2025
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 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 B.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology (BIT)
Composition of Committee
doc. Dr. Ing. Dušan Kolář (předseda) doc. Ing. Vladimír Janoušek, Ph.D. (člen) Ing. Radek Hranický, Ph.D. (člen) doc. Ing. Jan Kořenek, Ph.D. (člen) Ing. Zdeněk Materna, Ph.D. (člen)
Supervisor’s reportIng. Petr John
Student pracoval v průběhu projektu samostatně a prokázal schopnost rychle pochopit širokou škálu technologií a netriviálních konceptů. Výsledné řešení umožňuje uživatelům přenášet procedury mezi programy, a tím zjednodušuje použití existujícího grafického editoru. Student také integroval své řešení s různými existujícími kódovými projekty, včetně interpretu, backendové platformy a frontendového systému. Doporučuji udělit studentovi známku B.
Cílem této bakalářské práce bylo rozšířit stávající vizuální programovací editor a konkrétní platformu o opakovaně použitelné funkce vyvinuté koncovým uživatelem, které umožňují abstrakci zařízení na základě jeho typu. Za tímto účelem student nejprve prozkoumal oblast internetu věcí a související koncepty jako jsou Smart Cities, komunikační technologie, architektury a případy použití takových zařízení. Pro lepší pochopení dostupných přístupů a interakcí pak student potřeboval prostudovat současné přístupy k vývoji pro koncové uživatele, od programování spouštěcích akcí až po techniky vizuálního programování. Následovala analýza aktuálně využívaných přístupů k vytváření vlastních uživatelsky definovaných funkcí v nástrojích vizuálního programování pro IoT, stávajícího editoru, backendové platformy RIoT a interpretu pocketix-go. Úspěšné splnění práce vyžadovalo, aby se student seznámil s řadou technologií, zahrnující TypeScript a Lit.js na frontendové straně a Golang, GraphQL a RabbitMQ na backendové straně. Student poté navrhl a implementoval řešení na obou platformách. Zadání hodnotím jako průměrně obtížné a student úspěšně splnil všechny požadavky.
Student prostudoval doporučenou literaturu a sám aktivně vyhledával další relavatní zdroje.
Student komunikoval po celý akademický rok. Konzultace s vedoucím práce probíhaly online přibližně jednou za dva týdny v zimním semestru a každý týden v letním semestru. Student také často informovalprostřednictvím zpráv o dalším vývoji a poskytoval podrobné zprávy o stavu práce. Student řádně plnil zadané úkoly a práce postupovala přijatelným tempem.
Student potřeboval týdenní odklad na dokončení a řádnou konzultaci práce i jejího provedení. Na druhou stranu mělo toto prodloužení pozitivní dopad na kvalitu práce.
Student vycházel z předchozího výzkumu a poznatky z testování jeho řešení poslouží jako podklad pro další úpravy editoru.
Grade proposed by supervisor: B
Reviewer’s reportIng. Jiří Hynek, Ph.D.
Bakalářská práce obsahuje některé výše uvedené nedostatky. Výstupy jsou nicméně využitelné ve výzkumném projektu. Navrhuji hodnocení stupněm B.
Evaluation level: obtížnější zadání
Cílem práce bylo rozšířit vizuální jazyk projektu Pocketix o podporu uživatelsky definovaných procedur a integrovat jej do systému RIoT pro řízení IoT zařízení v prostředí chytrých měst. Student navázal na předchozí bakalářské práce [1, 2], které dále rozvinul o podporu procedur. Rozšíření vizuálního editoru implementoval v jazyce TypeScript s využitím knihovny Lit, rozšíření serverové části pak v jazyce Go. Zadání hodnotím jako obtížnější.
[1] PODVOJSKÝ, Lukáš. Vizuální programování IoT zařízení. Brno, 2024. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce Ing. Jiří Hynek, Ph.D.[2] BUREŠ, Michal. Systém pro zpracování dat z chytrých zařízení. Brno, 2024. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce Ing. Jiří Hynek, Ph.D.
Technická zpráva je rozumně členěná na teoretickou a praktickou část. Teoretická část je informačně hodnotná. Analýza požadavků je diskutována obecně, uvítal bych seznam požadavků. Implementace částečně popisuje návrh.
Práce je psána v anglickém jazyce. Jazyková a typografická úprava je kvalitní. Občas se vyskytují překlepy nebo špatné velikosti písmen (např. „Iot“, „Rabbitmq“ nebo „Graphql“). Některé obrázky v kapitole 5 obsahující schémata by mohly být ve vektorech a nepoužívat dekorativní písmo.
Výstupy se skládají z (1) rozšíření projektu RIoT na serverové a klientské části a (2) úprav vizuálního editoru. Výstupy hodnotím spíše pozitivně. Uživatelské definice procedur nicméně neuvažují typy zařízení, což shledávám jako hlavní nedostatek řešení.
Výstupy jsou využitelné v rámci výzkumného projektu Pocketix/RIoT.
Evaluation level: zadání splněno
Evaluation level: je v obvyklém rozmezí
Student provedl nadprůměrnou rešerši dostupných odborných zdrojů týkajících se IoT a vizuálního programování.
Grade proposed by reviewer: B
Responsibility: Mgr. et Mgr. Hana Odstrčilová