Master's Thesis

The Application Interface of the Council Voting System

Final Thesis 1.51 MB

Author of thesis: Ing. Radoslav Kodaj

Acad. year: 2024/2025

Supervisor: Ing. Kristýna Zaklová

Reviewer: Ing. Jiří Hynek, Ph.D.

Abstract:

This work focuses on the development of a new server-side architecture for an application that displays the voting results of municipal councils in the Czech Republic. The aim is also to integrate a selected tool for API specification and its interactive documentation. For generating the API specification, OpenAPI version 3.0 was used. The resulting solution provides functional application logic, a clearer file structure, and interactive API documentation. The contribution of this work lies in creating a more modular structure, which facilitates further development and the integration of new components into the system in the future. Additionally, the new OpenAPI documentation ensures easier testability of API endpoints. The results of this work are intended to support and simplify future development efforts.

Keywords:

Council, self-government, application interface, RESTful API, server part of application, endpoint, API specification, architecture

Date of defence

23.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

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, např. ohledně reálného nasazení implementovaného řešení. 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 A - výborně.

Topics for thesis defence

  1. Jak ovlivnila nová architektura řešení využívající techniku ORM rychlost provedení dotazů?
  2. Nové řešení neobsahuje celkové porovnání docházky zastupitelů. Je k tomu připravena podpora serverové části? Jak byste ji případně zajistil?

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Information Systems and Databases (NISD)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
RNDr. Marek Rychlý, Ph.D. (člen)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Šárka Květoňová, Ph.D. (člen)
Ing. Radek Hranický, Ph.D. (člen)
Ing. Jiří Hynek, Ph.D. (člen)

Supervisor’s report
Ing. Kristýna Zaklová

Student splnil všechny body zadání a vytvořil kvalitní výstupy, které budou dále využity v projektu Zastupko.cz. K práci přistupoval i přes velkou studijní zátěž svědomitě, řešení bylo řádně otestováno a byly zapracovány i náměty ze zpětné vazby. Navrhuji proto hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Zadání vzniklo jako pokračování projektu pro zpracování, analýzu a vizualizaci dat ze zasedání zastupitelstev. Student si prostudoval problematiku zastupitelstev a jejich hlasování, architektur serverových částí webových aplikací a možnosti specifikace aplikačních rozhraní. Dále analyzoval projekt Zastupko.cz, jeho systém a využívané technologie. Na základě toho navrhl novou architekturu serverové části systému. Implementační výstupy zahrnují nové koncové body pro veřejnou část klientské části aplikace a OpenAPI specifikaci těchto bodů. Aby bylo možné tohoto cíle dosáhnout, převedl existující entity do ORM frameworku SQLAlchemy a upravil jejich použití tak, aby místo přímého zápisu SQL dotazů využívaly abstrakce poskytované tímto nástrojem. Nad rámec zadání student připravil úpravy systému potřebné pro možnost importovat datové sady z dosud nezpracované úrovně státní správy, konkrétně pro data z Parlamentu ČR. Zadání hodnotím jako průměrně obtížné.

Aktivita při dokončování

Závěr technické zprávy byl dopisován těsně před termínem odevzdání, nicméně obsah byl řádně konzultován a student zohlednil většinu mých připomínek.

Publikační činnost, ocenění

Úpravy provedené studentem zvýší udržitelnost serverové části systému Zastupko.cz, čímž podpoří další publikační aktivity.

Práce s literaturou

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

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

Student se účastnil porad, které probíhaly v zimním semestru každých čtrnáct dní, v letním semestru každý týden. Jednotlivé kroky řešení pravidelně konzultoval, dodržoval dohodnuté termíny a na konzultace byl vždy připraven. Kromě konzultací s vedoucí komunikoval student také s Lukášem Etzlerem, který paralelně vytvářel redesign odpovídající klientské části aplikace, a do svého řešení zapracovával i jeho požadavky. Dále byl student schopen průběžně demonstrovat a komunikovat plánované změny pro hladký průběh jejich nasazení do vývojové verze systému.

Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
Ing. Jiří Hynek, Ph.D.

Diplomová práce je kvalitní jak po teoretické, tak po praktické stránce. Student svými výstupy významně přispěl k reálnému projektu. Navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Prezentační úroveň technické zprávy

Práce je logicky členěná na teoretickou a praktickou část. Kapitoly na sebe navazují. Vytkl bych, že se student místy věnuje některým (byť zajímavým) skutečnostem, které méně souvisejí s tématem práce (např. sekce 2.3).

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

Technická zpráva je kvalitní jak po jazykové, tak typografické stránce. Některé obrázky jsou méně kvalitní (např. obr. 3.5).

90
Práce s literaturou

Student cituje rozsáhlé množství odborných a online zdrojů.

95
Realizační výstup

Výstupy studenta hodnotím kladně. Serverová část obsahuje novou přehlednější architekturu řešení. Dá se očekávat, že výrazně přispěje k větší přehlednosti a chybovosti systému.

95
Využitelnost výsledků

Výsledky jsou využitelné v systému pro vizualizaci hlasování zastupitelstev projektu Zastupko.cz.

Náročnost zadání

Evaluation level: průměrně obtížné zadání

Cílem práce bylo přetvořit architekturu serverové části existujícího systému pro vizualizaci hlasování zastupitelstev [1] tak, aby byl popis komunikace s databází řešen pomocí konceptu objektově relačního mapování (ORM) a popis aplikačního rozhraní směrem ke klientovi definován pomocí specifikace OpenAPI. Student se při práci inspiroval řešením diplomové práce [2], která danou problematiku řeší v rámci administračního rozhraní a rozšířil ji dále do veřejné části informačního systému. Dále řešil některé dílčí rozšíření datového modelu (např. podpora změn jmen zastupitelů apod.), čímž přispěl k robustnějšímu řešení systému. Zadání hodnotím jako průměrně obtížné.

[1] ZAKLOVÁ, Kristýna. Analýza a vizualizace dat z hlasování Zastupitelstva města Brna. Brno, 2023. Diplomová práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce: Ing. Jiří Hynek, Ph.D.
[2] KREJČÍ, Ondřej. Správa municipalit v systému hlasování městských zastupitelstev. Brno, 2024. Diplomová práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce Ing. Kristýna Zaklová

Topics for thesis defence:
  1. Nové řešení neobsahuje celkové porovnání docházky zastupitelů. Je k tomu připravena podpora serverové části? Jak byste ji případně zajistil?
  2. Jak ovlivnila nová architektura řešení využívající techniku ORM rychlost provedení dotazů?
Points proposed by reviewer: 92

Grade proposed by reviewer: A

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