Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Ing. Dmytro Dovhalenko
Acad. year: 2025/2026
Supervisor: Ing. Jiří Hynek, Ph.D.
Reviewer: Ing. Radek Hranický, Ph.D.
The aim of this thesis is to develop a graphical editor for designing the visual parts of web pages based on the Bootstrap library. The main idea is to enable users to quickly create web pages and their components using visual elements, without requiring extensive knowledge of frontend implementation. The application will automatically generate code ready for development on the Oidis platform, eliminating the need for repeated manual modifications of the designed pages. The result of this work will be a graphical editor whose output code is fully compatible with the Oidis platform.
Visual editor, user interface design, Bootstrap, GrapesJS, low-code, code generation, drag-and-drop, hybrid web application, component-based architecture.
Date of defence
23.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 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
Czech
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Application Development (NADE)
Composition of Committee
prof. RNDr. Alexandr Meduna, CSc. (předseda) doc. RNDr. Jitka Kreslíková, CSc. (místopředseda) Ing. Vladimír Bartík, Ph.D. (člen) Ing. Jiří Hynek, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) Ing. Marta Jaroš, Ph.D. (člen)
Supervisor’s reportIng. Jiří Hynek, Ph.D.
Student ke své práci přistupoval svědomitě a dokázal pracovat samostatně. Vytvořil použitelné řešení, které bude integrováno do vývojového procesu firmy Oidis Solutions. Navrhuji hodnocení stupněm A.
Zadání vzniklo ve spolupráci s firmou Oidis Solutions. Hlavními úkoly bylo navrhnout a implementovat grafický editor Oidis Studio pro vizuální navrhování uživatelského rozhraní webových aplikací založených na knihovně Bootstrap, který nahradí dosavadní Bootstrap Studio a zajistí plnou kompatibilitu s platformou Oidis. Student se musel seznámit s vývojem desktopových aplikací na platformě Chromium, s technologiemi TypeScript, HTML, JavaScript a SASS, s knihovnou GrapesJS, frameworkem Bootstrap a s principy generování kódu a komponentové architektury. Zadání hodnotím jako průměrně obtížné a považuji ho za splněné.
Některé části technické zprávy byly dokončovány na poslední chvíli a mohly být konzultovány o něco lépe.
Výsledný editor bude využit ve firmě Oidis Solutions pro vývoj projektů ve frameworku Oidis.
Student prostudoval doporučenou literaturu a aktivně si vyhledával další zdroje týkající se zejména tvorby frontendových řešení, multiplatformního vývoje a frameworku Oidis.
Student komunikoval během celého akademického roku. Konzultace probíhaly online s vedoucím práce a přímo ve firmě Oidis Solutions s konzultantem – panem Ing. Jakubem Cieslarem. Student řádně plnil zadané úkoly a práce postupovala dobrým tempem.
Grade proposed by supervisor: A
Reviewer’s reportIng. Radek Hranický, Ph.D.
Pan Dovhalenko řešil praktický problém a vytvořil funkční prototyp editoru, který může pomoci vývojářům na platformě Oidis. Silnou stránkou práce je kvalitní analýza současného stavu, jasná motivace výsledného řešení a užitečný realizační výstup. Slabší stránkou je nedostatečně propracovaný popis návrhu, implementace a testování. Práci hodnotím jako dobrou.
Evaluation level: zadání splněno
Evaluation level: je v obvyklém rozmezí
Dle https://app.fit.vut.cz/theses-checker práce čítá 71.01 normostran. Je tedy v obvyklém rozsahu.
Práce má logickou strukturu a jednotlivé kapitoly na sebe navazují. Teoretická část je zpracována velmi pěkně, obsah je vysoce relevantní řešenému tématu a poskytuje potřebný kontext k webovým aplikacím, vizuálním editorům a platformě Oidis. Za nejzdařilejší považuji kapitolu 4, kde student přímo navazuje na předchozí popis platformy Oidis a dobře vysvětluje, proč běžné vizuální editory typu Bootstrap Studio nejsou pro dané použití dostačující. Dále zde jasně definuje konkrétní požadavky na výsledný editor.
V práci mi chybí detailnější popis architektury řešení. Kapitola 5 popisuje uživatelský postup a stručný návrh uživatelského rozhraní. V sekci 6.1 se objevuje určitý náznak návrhu architektury, avšak pro diplomovou práci není dostačující. Očekával bych ucelený popis hlavních komponent editoru a především způsobu, jak návrh zohledňuje požadavky z kap. 4, např. editaci drag-and-drop, synchronizaci editace HTML/CSS s vizuálním editorem a responzivní náhled podle Bootstrap breakpointů. Chybí také přehled skutečně podporovaných komponent Bootstrap/Oidis a zdůvodnění volby knihovny GrapesJS oproti jiným možným technologiím. Implementační kapitola pak více popisuje výslednou funkcionalitu než vnitřní realizaci řešení. Oceňuji však přílohy, které vhodně dokreslují podobu aplikace.
Testovací kapitola vysvětluje, že výsledná aplikace byla funkčně ověřena a vyzkoušena také vývojáři pracujícími s platformou Oidis. Je však poměrně stručná a spíše popisná. Práci by prospěly jasněji definované testovací scénáře, očekávané výsledky a konkrétnější vyhodnocení zpětné vazby od uživatelů.
Celkově práce dobře popisuje motivaci a požadavky na vytvářené řešení. Z technické zprávy plyne, že výsledná aplikace svůj účel plní velmi dobře. Problém je, že nedostatečně vysvětluje, jak přesně jsou tyto požadavky návrhově a implementačně realizovány. Čtenář tak chápe, co aplikace "umí", ale vnitřní fungování řešení si musí z velké části domýšlet.
Typografická stránka práce je převážně v pořádku. Klíčové pojmy jsou písmem vhodně odlišeny, obrázky jsou čitelné a vhodně odkazovány z textu. Oceňuji také seznam obrázků. Drobným nedostatkem je nedodržování pravidel pro psaní výčtů, kdy položky všude začínají velkým písmenem a končí tečkou, aniž by vždy šlo o věty. Dále musím vytknout všudypřítomné tečky za "viz".
Text je psán velmi pěknou odbornou češtinou a je dobře srozumitelný. Student přiznává použití ChatGPT pro revizi technické zprávy, což s ohledem na skutečnost, že není rodilým mluvčím, považuji za opodstatněné. Jazykových chyb je v práci minimum, vesměs jde o místy chybnou diakritiku, např. "uprav" x "úprav", "pomoci" x "pomocí" apod.
Bibliografie čítá 23 zdrojů, přičemž všechny jsou relevantní řešenému tématu. Prakticky všechny převzaté pasáže jsou vhodně odzrojovány a prohřešky vůči citační etice jsem neobjevil. V práci je jeden převzatý obrázek, který je korektně označen.
Práce z velké části stojí na platformě Oidis a knihovně GrapeJS. Je proto škoda, že se zde zdroje omezují jen na poznámky pod čarou. Vzhledem k tomu, že se jedná o klíčové technologie, umístění relevantních zdrojů přímo do bibliografie by celkové kvalitě práce určitě prospělo. Interní dokumentace platformy Oidis je navíc přímo v doporučené literatuře.
V teoretické části student uvádí, že React, Angular a Vue patří mezi nejčastěji používané frameworky a že Bootstrap nebo Material UI poskytují hotové komponenty pro responzivní rozhraní. To je sice pravda, nicméně u odborné práce by bylo vhodné taková tvrzení opřít o relevantní zdroje, např. o dokumentaci nebo průzkum používanosti.
Realizační výstup práce tvoří prototyp grafického editoru Oidis Studio. Rozsahově studentův kód tvoří tisíce řádků v jazyce TypeScript. Aplikace je plně funkční a student mi ji osobně demonstroval. Oceňuji rozdělení na backend pro práci se soubory či extrakci tagů a frontend, který řeší zejména interakci s uživatelem, katalog komponent a responzivní náhledy. V archivu je i zkompilovaná verze pro Windows a uživatelský návod. Ve zdrojové části mne zaujal adresář "test". Funkční automatizované testy jsem v něm však hledal marně. Uvnitř se však nachází pouze "dummy" unit test, který zřejmě slouží pro obejití problémů s překladem.
Editor je funkční, vizuálně přívětivý a práce s ním je poměrně intuitivní. Někdy se ale stane, že generování kódu z neznámých důvodů zamrzne. Práce vždy začíná otevřením souboru. To je povinné i v případě, že chce uživatel vytvořit zcela novou komponentu, což je trochu zvláštní. Jistým omezením je také skutečnost, že editor vždy počítá s očekávaným formátem zdrojového kódu komponenty.
Hlavním přínosem díla je možnost přímé práce se soubory projektů Oidis. Vývojář tak již nadále nemusí udržovat jednu verzi komponenty ve vizuálním editoru a druhou ve zdrojovém kódu aplikace. Výsledky práce tak najdou využití zejména v týmu, které tuto technologii používá. Pro plné nasazení v praxi by však bylo vhodné řešení více stabilizovat, doplnit automatizované testy a jasněji vymezit podporované komponenty.
Evaluation level: průměrně obtížné zadání
Grade proposed by reviewer: C
Responsibility: Mgr. et Mgr. Hana Odstrčilová