Přístupnostní navigace
E-application
Search Search Close
Bachelor's Thesis
Author of thesis: Bc. Dmytro Trifonov
Acad. year: 2025/2026
Supervisor: Ing. Jan Kohút
Reviewer: Ing. Markéta Juránková, Ph.D.
Finding what a specific restaurant serves — or which nearby venue offers a particular dish — currently requires visiting each website individually: no dedicated application aggregates menu data across independently operated restaurants. Menus appear in heterogeneous formats (HTML pages, PDF documents, and images), making automated cross-venue search technically challenging. This thesis presents the design and implementation of a system that automatically extracts structured menu items from arbitrary restaurant websites and exposes them through a unified search interface. The system processes restaurant websites through a three-stage pipeline: headless crawling with menu URL detection and SimHash-based deduplication; content processing using CLIP image classification, PaddleOCR, and MiniLM-based relevance scoring; and structured item extraction with gpt-4o-mini. The backend is built on ASP.NET Core 10 following clean architecture principles with SQL Server persistence and Hangfire background jobs; the resulting web application supports venue management, extraction scheduling, and manual draft corrections. Extraction quality was assessed through manual output inspection on a live dataset of 384 venues. A user study with five participants assessed the search interface, demonstrating an 85 % task completion rate (17 of 20 task instances) with a median task time of 85 seconds.
menu extraction, web crawling, Playwright, CLIP, PaddleOCR, MiniLM, gpt-4o-mini, ASP.NET Core, React, clean architecture
Date of defence
16.06.2026
Result of the defence
Defended (thesis was successfully defended)
Grading
C
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 C.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Computer Graphics and Multimedia
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. Jan Kohút
The student worked independently and practically did not consult the solution; however, from my perspective, the idea and the approach to the solution are appropriate.
The aim of the assignment was to implement an application for automatically obtaining restaurant menus from the web and managing them. I consider the assignment to be slightly more difficult, since it requires combining many technologies from different areas. The result of the work meets expectations.
The student decided to work independently. Only the initial idea was consulted at the beginning of the academic year, and the progress of the solution was consulted once at the beginning of the summer semester.
I saw the work before completion and provided one round of feedback.
Grade proposed by supervisor: C
Reviewer’s reportIng. Markéta Juránková, Ph.D.
Student se při vypracování bakalářské práce výrazně spoléhal na pomoc asistentů, díky čemuž vytvořil velmi kvalitní aplikaci s velkým množstvím funkcí a hierarchickou správou dat. Na druhou stranu je technická zpráva, pravděpodobně hlavně generovaná, hůře čitelná. Práce rovněž postrádá vyhodnocení kvality extrakce dat, což je klíčový bod pro využitelnost aplikace. Výslednou práci hodnotím známkou C.
Evaluation level: more difficult assignment
S ohledem na to, že se jedná o bakalářskou práci, jde o obtížnější zadání.
Práce je vhodně strukturovaná a jednotlivé kapitoly na sebe přirozeně navazují. Technická zpráva nese jednoznačnou stopu využití jazykových modelů, což autor v úvodu přiznává. To by samo o sobě nebylo chybou, kdyby student text více revidoval. Práce obsahuje obsáhlé a podrobné technické pasáže s nepodstatnými detaily (např. „…latest migration (20260430221612_AddCuisinesJsonToVenue)…“), které čtenáře unavují, trhají pozornost a jsou zbytečné. Některé informace (user roles) se vyskytují v textu nesčetněkrát. Práce postrádá ilustrační obrázky pro lepší pochopení.
Po jazykové stránce je práce na vysoké úrovni. Mezi drobné výhrady bych zařadila:
Výstupem práce je komplexní systém, který automaticky extrahuje jídelní lístky a následně umožňuje v datech vyhledávat, upravovat a doplňovat je. Výsledná webová aplikace disponuje velkým množstvím funkcí a dosahuje komerční úrovně jak na frontendové, tak backendové straně. Podobně jako u textové části je i zde patrné využití Copilotu (nebo podobných systémů). Studentovi se však s jeho pomocí podařilo vytvořit opravdu kvalitní aplikaci.
Výhradou je chybějící vyhodnocení systému pro extrakci dat. Sám autor přiznává, že anotace dat nebyla dokončena, a proto není možné ověřit, jak spolehlivě systém informace extrahuje. Aplikace tak byla vyhodnocena pouze formou user study na pěti respondentech a velkým množstvím automatizovaných testů.
Výsledná aplikace by na trhu určitě našla své místo, protože podobný nástroj, který by automaticky sumarizoval jídelní lístky z různých zdrojů, chybí. Překážkou je však vysoká výpočetní náročnost a v tomto momentě neověřená spolehlivost extrakce informací.
Evaluation level: assignment fulfilled
Zadání bylo splněno. Student zvolil náročnější zpracování problematiky.
Evaluation level: exceeds the usual extent
Práce je delšího charakteru, závěr je na straně 68. Některé části jsou příliš obsáhlé a podrobné. Informace se v textu opakují.
Student správně a vhodně cituje relevantní zdroje, převzaté prvky jsou řádně odlišeny a smysluplně využity ve vlastní práci.
Grade proposed by reviewer: C
Responsibility: Mgr. et Mgr. Hana Odstrčilová