Bachelor's Thesis

Network devices record keeping system

Final Thesis 2.12 MB Appendix 39.17 kB

Author of thesis: Ondřej Šrámek

Acad. year: 2025/2026

Supervisor: Ing. Tomáš Macho, Ph.D.

Reviewer: Ing. Radovan Holek, CSc.

Abstract:

This bachelor's thesis deals with the design and implementation of a web application intended for the management and clear presentation of database records. The aim of the thesis is to create a functional and user-friendly system that enables data handling, searching, and management through a web interface.
The theoretical part describes the basic principles of web applications, the MVT (Model–View–Template) architecture, and the technologies used. The practical part focuses on the design of the database model, the user interface, and the user permission system. Subsequently, it describes the integration of individual parts of the application and its deployment. The result of the thesis is a web application that can serve as a basis for further expansion or deployment in real-world operation.

Keywords:

Web application, data management, Django, database, MVT architecture,  Nginx, Gunicorn.

Date of defence

17.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaCznamka

Grading

C

Process of defence

Student obhájil bakalářskou práci. Komise neměla žádné námitky k řešené práci. V průběhu odborné rozpravy student odpověděl na dotazy oponenta. Navazující otázka komise směřovala ke způsobu registraci osob - jakým způsobem je řešena? Student odpověděl na položené otázky komise.

Language of thesis

Czech

Faculty

Department

Study programme

Automation and Measurement (BPC-AMT)

Composition of Committee

doc. Ing. Jan Mikulka, Ph.D. (předseda)
doc. Ing. Petr Blaha, Ph.D. (místopředseda)
Ing. Ilona Janáková, Ph.D. (člen)
Ing. Lukáš Kopečný, Ph.D. (člen)
Ing. Tomáš Macho, Ph.D. (člen)
Ing. Soňa Šedivá, Ph.D. (člen)

Supervisor’s report
Ing. Tomáš Macho, Ph.D.

Pan Ondřej Šrámek ve své bakalářské práci řešil problematiku informačního systému, který by umožňoval evidovat zařízení připojená do fakultní počítačové sítě. Bakalářská práce navazovala na předcházející semestrální práci.
Technická zpráva obsahuje 38 stran textu, což odpovídá doporučovanému rozsahu bakalářské práce. Práce je členěna do 12 kapitol včetně kapitol Úvod a Závěr.
Autor v první až třetí kapitole stanovil požadavky na navrhovaný informační systém, následně popsal dostupné aplikace a frameworky. Pro realizaci systému zvolil framework Django, který podrobněji popsal ve čtvrté kapitole.
Pátá kapitola je věnována databázové vrstvě a návrhu datového modelu. Autor bohužel uvažuje jednoduchý databázový systém SQLite, který je součástí frameworku Django, ale nezmiňuje se o databázovém systému PostgreSQL, který měl doporučen v zadání práce. Šestá kapitola je věnována tvorbě html stránek s využitím jazyka Django Template Language a využití jazyka JavaScript.
V sedmé kapitole se pan Šrámek věnuje bezpečnosti webových aplikací, v osmé kapitole správě uživatelů a jejich rolí. V deváté kapitole je uveden popis produkčního nasazení systému včetně konfigurace a zabezpečení. V desáté kapitole autor stručně popisuje testování systému.
Práce je sestavena v logickém sledu, je na solidní jazykové a grafické úrovni. Po formální stránce lze práci vytknout:
• Členění na příliš krátké kapitoly a podkapitoly. Příkladem je např. kapitola 8, která nezabírá ani polovinu stránky.
• Nadužívání odrážek a používání heslovitého stylu textu jako např. v podkapitolách 9.2 a 9.3.1 na str. 40.
Při řešení bakalářské práce využíval pan Šrámek převážně internetové literární zdroje dokumentující práci s frameworkem Django, které si sám vyhledával. V případě ryze prakticky zaměřené bakalářské na implementaci informačního systému považuji používání internetových zdrojů za opodstatněné.
Výsledkem práce pana Šrámka je funkční informační systém pro evidenci zařízení ve fakultní počítačové síti, který je prakticky využitelný.
Pan Šrámek mě pravidelně informoval o postupu prací. Bohužel ke konci semestru se zřejmě dostal do určité časové tísně, takže některé úpravy systému prováděl těsně před odevzdáním práce a popis výsledků testování aplikace uvedený v kapitole 10 je dosti povrchní.
Není mi známo, že by se na bakalářské práci pana Šrámka podílely další osoby nebo že by nějaká část práce byla plagiátem.
Jako vedoucí navrhuji hodnotit práci pana Ondřeje Šrámka známkou C/79 bodů. Points proposed by supervisor: 79

Grade proposed by supervisor: C

Reviewer’s report
Ing. Radovan Holek, CSc.

1) Bakalářská práce se zabývá návrhem a implementací webové aplikace určené pro evidenci a správu zařízení v počítačové síti. Cílem bylo vytvořit funkční informační systém umožňující evidovat ústavy, osoby, koncová zařízení, servery a cizí DNS domény, s využitím open-source technologií. Praktickým výsledkem má být webová aplikace postavená na vhodném frameworku nasaditelná v produkčním prostředí prostřednictvím  webového serveru Nginx.

2)  Práce je rozdělena do deseti kapitol

2.1) Analýza požadavků a průzkum existujících nástrojů (kapitoly 1–2). Požadavky na evidované entity jsou stručně, avšak přehledně formulovány. Průzkum dostupných aplikací (Baserow, NocoDB) slouží  odůvodnění vlastní implementace.

2.2) Výběr frameworku (kapitola 3). Student porovnává čtyři Python frameworky (FastAPI, Flask, Django, Pyramid) a volbu Djanga zdůvodňuje systémem vestavěných nástrojů, bezpečnostními vlastnostmi a komunitní podporou. Výběr je věcně správný a pro daný typ aplikace přiměřený.

2.3) Návrh a implementace (kapitoly 5, 8). Datový model aplikace zahrnuje entity Ustav, Osoba, Zarizeni, Server a DNS s odpovídajícími vazbami. ER diagram je přehledný a relační struktura je logicky navržena. Systém rolí (Administrátor, Editor, Běžný uživatel, Auditor) odpovídá požadavkům na provoz aplikace. Z ERD diagramů není patrné, jak jsou přidělované role jednotlivým uživatelům.

2.4) Produkční nasazení (kapitola 9). Kapitola popisuje konfiguraci Gunicornu a Nginx včetně systemu souborů a nastavení firewallu. Tato část je prakticky hodnotná a prokazuje, že student porozuměl produkčnímu prostředí.

2.5) Autor uvádí, že aplikace byla testována funkčně, integračně i z hlediska bezpečnosti. Konkrétní testovací případy, vstupní data ani výsledky testů však dokumentovány nejsou. Jako oponent nemohu ověřit rozsah ani úplnost provedených testů.

2.6 Práce s literaturou. Kvalita literárních zdrojů. Z 23 citovaných zdrojů je převážná většina tvořena weby, tutoriály a blogposty (GeeksforGeeks, TutorialsPoint, dev.to). Jediná odborná kniha pochází z roku 2018 a vztahuje se k výrazně starší verzi Djanga (2.1). Pro bakalářskou práci je patrná absence recenzovaných nebo alespoň aktuálních odborných zdrojů.

2.8) Dokumentování dosažených výsledků. Příloha obsahuje pouze dva screenshoty. Pro aplikaci tohoto typu by bylo žádoucí dokumentovat uživatelské rozhraní komplexněji — například pro každou evidovanou entitu nebo pro rozdílné uživatelské role.

Bakalářská práce splňuje zadání, student navrhl a implementoval evidenční webovou aplikaci s uživatelskou správou, systémem oprávnění a produkčním nasazením. Slabinou práce je absence konkrétní dokumentace provedených testů.

Práci doporučuji k obhajobě. Topics for thesis defence:
  1. 1) Zadání práce explicitně specifikuje databázový systém PostgreSQL. Student zvolil SQLite3 s poznámkou, že jej lze pro produkci přenastavit. Z jakého důvodu bylo od PostgreSQL upuštěno a jaké konkrétní kroky by byly potřebné pro migraci aplikace na PostgreSQL v produkčním prostředí?
  2. 2) Kapitola o testování uvádí, že aplikace byla testována vůči SQL Injection a dalším typům útoků. Jakým konkrétním způsobem testy probíhaly, jaké vstupy byly použity a jak bylo ověřeno, že se aplikace chová správně?
  3. 3) Systém využívá RBAC (Role-Based Access Control) a lze jím implementovat přístup uživatelů na základě rolí. Uživatelé jsou zařazeni do skupin (Groups),kterým jsou přiřazena specifická oprávnění. Kde jsou tyto informace v informačním systému uloženy?
Points proposed by reviewer: 73

Grade proposed by reviewer: C

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