Ing. Jan Matoušek

Závěrečné práce

Bakalářské práce

Backend e-shopu - doprovodné procesy

Autor
David Mareš
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Jiří Hunka
Anotace
Práce se zaobírá rozšířením backendové části systému pro správu e-shopu. V rámci práce proběhla důkladná analýza aktuálně používaného řešení, které bylo potřeba nahradit z důvodu použití zastaralých technologií a vysoké provázanosti, což způsobovalo obtížnou údržbu i rozšířitelnost. Práce se skládá z několika částí, z nichž každá přináší něco nového a užitečného pro správu e-shopu. Jedním z klíčových prvků této práce je nástroj pro export dat, který využívá Doctrine ORM a vlastní parser pro skládání databázových dotazů, a následnou tvorbu souboru ve vybraném datovém formátu. Tento nástroj byl vytvořen s ohledem na vysokou konfigurovatelnost, ale také bezpečnost. Dalším významným prvkem práce je řešení pro automatizaci procesů. Vytvořené řešení využívá Symfony Command společně s balíčkem The ScheduleBundle pro plánování a správu jednotlivých činností. Na závěr se práce věnuje možným rozšířením vytvořeného řešení, především vystavením uživatelského rozhraní pro tvorbu konfigurací do nástroje pro export dat, který v rámci této práce vznikl.

ETCS - EVC - Implementace módů reversing, shunting a post trip

Autor
Matěj Malý
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
doc. Ing. Martin Leso, Ph.D.
Anotace
Tato bakalářská práce rozšiřuje funkcionalitu trenažéru ETCS, který vzniká ve spolupráci s Fakultou dopravní ČVUT v Praze. ETCS je jednotný celoevropský vlakový zabezpečovací systém. Práce se zabývá komponentou EVC, která je jádrem vozidlové části systému a má za úkol zpracovávat a vyhodnocovat data z ostatních komponent. Výsledkem práce je přidání módů reversing (mód pro couvání), shunting (mód pro posun vlaku) a post trip (mód, do kterého systém přechází po nouzovém zastavení vlaku) do komponenty EVC. Práce obsahuje návrh a popis implementace přechodů do těchto módů a funkcionalit v těchto módech. Dále vysvětluje jakým způsobem bylo řešení testováno. Díky výsledkům práce se rozšiřují možnosti scénářů, které trenažér může simulovat.

The Slime Element - Hra žánru tower defense s inovativními mechanikami

Autor
Martin Němec
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Radek Richtr, Ph.D.
Anotace
Cílem této práce je seznámit čtenáře s procesy sloužícími k vývoji počítačové hry, včetně analýzy, návrhu, implementace i testování dané hry. Výsledná hra je žánru tower defense, který je analyzován v první části práce společně s rozborem herních enginů. Následně je navržen a implementován prototyp hry v prostředí Unreal engine. Tato hra s názvem "The Slime Element" je tower defense hra vytvořená ve 3D prostředí v pohledu z třetí osoby, která však obsahuje řadu mechanik typicky se nenacházejících v tomto žánru, jako možnost létat po mapě, dokončovat úkoly v jednotlivých úrovních či využívat okolní prostředí pro svůj prospěch. Prototyp hry je nakonec podroben hráčskému testování, výsledky testování jsou shrnuty a je nastíněné pokračování projektu.

Portál pro videoreporty

Autor
Dmitry Belov
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Oldřich Malec
Anotace
Práce se zaměřuje na vývoj prototypu webového portálu. Nejdříve jsou pomocí analýzy konkurence stanoveny požadavky kladené na prototyp. Následně je pomocí metod softwarového inženýrství navrženo vhodné řešení pro splnění požadavků. Navrženy jsou jak technologie použité v implementaci, tak i potřebný funkcionál prototypu. Po návrhu je uvedena ukázka použití nejdůležitějších technologií v implementaci prototypu. Celá implementace je psána v JavaScriptu s využitím TypeScriptu a dalších nástrojů a knihoven jako je například Express a React. Výsledná implementace je následně otestována a jsou stanoveny nedostatky implementovaného prototypu. Výsledkem práce je funkční prototyp splňující identifikované požadavky. Na práci by se dalo navázat doděláním prototypu do produkční verze, jeho obohacením o další funkcionál a odstraněním nedostatků prototypu, které vyplynuli z testování.

Magitech - Modul interakce hráče s nehráčskými postavami

Autor
Štěpán Vejvoda
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Filip Glazar
Anotace
Tato práce se zabývá vývojem systému interakce mezi hráčem a NPC pro hru MagiTech. Na základě analýzy her stejného žánru jsou navrženy jednotlivé moduly, které tvoří celý systém. Práce také obsahuje komentář k implementaci a výsledky testování, kterého se účastnili vývojáři a hráči.

ETCS - EVC - Modul pro výpočet brzdných křivek

Autor
Jiří Doležal
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
doc. Ing. Martin Leso, Ph.D.
Anotace
Tato bakalářská práce se zabývá evropským vlakovým zabezpečovačem ETCS, konkrétně trenažerem zmíněného zabezpečovače, který vzniká ve spolupráci Fakulty dopravní a Fakulty informačních technologií ČVUT v Praze. Práce se zaměřuje na výpočet brzdných křivek a s nimi spojených limitů. Vytvořené řešení počítá pro danou rychlost vlaku brzdné vzdálenosti a je tak nedílnou součástí mechanismu, který zabraňuje srážce vlaku s okolím. Přínosem této práce je srozumitelnost a přehlednost kódu brzdných křivek, díky čemuž je modul lehce použitelný i pro ostatní členy projektu. Další výhodou je strukturalizace kódu, která umožňuje kvalitní testování.

Plánovač alokací na projektech

Autor
Martin Německý
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Filip Kirschner
Anotace
Bakalářská práce se zabývá problémem alokaci zdrojů (zaměstnanců) na projekty, kde hlavnim kritériem přiřazeni jsou preference zaměstnanců na projekty. Je zde využita technika constraint programming, která dovoluje problém alokaci řešit deklarativnim způsobem pomoci specifikace omezeni. Práce dále obsahuje analýzu požadavků, ze které vycházi návrh i architektura apli- kace. Následná implementace aplikace je otestována pomoci generovaných dat na dobu výpočtu i kvalitu řešeni.

Algoritmus doporučující soupeře pro družiny Dungeons and Dragons

Autor
Matěj Mikušek
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Anotace
Obsahem této práce je navržení algoritmu pro Dungeon Mastery, který jim doporučí vhodné nepřátele ve hře na hrdiny Dungeons and Dragons (DnD). Práce popisuje problematiku výběru vhodných nepřátel pro konkrétní družiny, následně analyzuje dosavadní funkční řešení, především webové a mobilní aplikace, které umožňují náhodné generování nepřátel dle zadané družiny hráčů a dalších kritérií. Dále je v práci popsán výzkum mezi Dungeon Mastery, zaměřující se na jejich spokojenost s dosavadními řešeními, jejich pohled na použitelnost těchto řešení v praxi a podněty k tomu, co by měl ideální algoritmus na generování nepřátel zohledňovat a umožňovat. Algoritmus je v práci navržen na základě výsledků z provedených průzkumů a analýz tak, aby co nejlépe pomohl Dungeon Masterovi v rozhodování při výběru vhodných nepřátel pro svou konkrétní družinu hráčů a jejich herních postav. Toho je částečně dosaženo zohledněním schopností jednotlivých hráčských postav a vygenerovaných nepřátel navíc oproti běžným kritériím, jako jsou level postav a challange rating nepřátel. Největší část na správné funkčnosti algoritmu má však použití genetického algoritmu, kdy vytvořený algoritmus simuluje boj družiny hráčů s jednotlivými skupinami vygenerovaných nepřátel a do výsledného návrhu nepřátel pro Dungeon Mastera zařadí pouze takové výsledky simulace, které nejlépe odpovídají požadovaným kritériím. Závěrem práce je vytvoření webové aplikace používající vytvořený algoritmus, samotné testování při reálných partiích DnD a popis možností, jak lze na tuto práci v budoucnu navázat.

Synchronizace struktury relační databáze s GIT

Autor
Tomáš Krupička
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Michal Valenta, Ph.D.
Anotace
Cílem této práce je analýza a vypracování řešení způsobu využití verzovacího systému Git pro verzování a synchronizaci změn v databázovém modelu, s důrazem na použití ve velkém podnikovém prostředí. Práce staví na již rozpracovaném řešení pro synchronizaci změn z databáze do Gitu a dalších konvencích a softwaru používaných v cílovém prostředí. Dále navrhuje podobu kompletního systému zahrnující dříve zmíněné řešení a vlastní vypracované řešení pro propisování změn z Gitu do databáze. Výsledné řešení by mělo umožňovat efektivně využívat možností verzovacího systému Git a jeho nadstaveb (např. Azure Repos), a zároveň počítat s případnými komplikacemi, které můžou vyvstat z důvodu vyšší zátěže systému.

ETCS - Modul pro komunikaci mezi EVC a RBC

Autor
Daria Roshchupkina
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
doc. Ing. Martin Leso, Ph.D.
Anotace
Tato práce se zabývá návrhem knihoven proměnných, packetů a zpráv, nutných pro komunikaci mezi EVC a RBC a komunikačního modulu pro komunikaci mezi EVC a RBC na straně EVC, a to pro verze 2.3.0, 3.4.0 a 3.6.0 systémových požadavků kladených na ETCS v rámci SUBSET-026 vypracovaného ERA, pro simulátor ETCS. Tato práce také popisuje implementaci knihoven proměnných pro každou z verzí 2.3.0, 3.4.0 a 3.6.0 a knihoven vybraných packetů pro jednotlivé verze, vzniklou na základě tohoto návrhu. Zároveň popisuje rozdíly a podobnosti proměnných, packetů a zpráv jazyka ETCS, nutných pro komunikaci mezi moduly EVC a RBC v simulátoru ETCS, a komunikace s RBC na straně EVC mezi verzemi 2.3.0, 3.4.0 a 3.6.0.

Magitech - Generátor dungeonů

Autor
Jiří Macháček
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Adam Vesecký
Anotace
Tato bakalářská práce se zabývá tvorbou procedurálního generátoru herních prostředí - dungeonů - pro hru Magitech. V práci jsou analyzovány metody procedurálního generování obsahu, které mohou být použity pro generování různých typů dungeonů. Z analyzovaných metod je vybrána metoda nejvhodnější pro použití v případě hry Magitech - využití agentů. Generátor dungeonů využívající agenty je následně navržen a implementován do hry pomocí prostředí Unity. Generátor je nakonec důkladně otestován. Způsob generování implementovaný v této práci splňuje požadavky stanovené zadavatelem, a bude tak do hry v budoucnu zakomponován.

ETCS - Modul EVC pro dynamické monitorování rychlosti

Autor
Alina Krasnenkova
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
doc. Ing. Martin Leso, Ph.D.
Anotace
První část této práce udává přehled o ETCS, popisuje EVC a jeho hlavní funkce potřebné pro řízení rychlosti a vzdálenosti vlaku. Druhá část popisuje návrh a implementaci modulu vytvořeného pro tuto bakalářskou práci. Tento modul je rozdělen do tří submodulů: přijímač zpráv a paketů, kalkulačka nejpřísnějšího rychlostního profilu a dynamické monitorování rychlosti.

Backend e-shopu - nákupní košík a zpracování objednávek

Autor
Nikita Golmgren
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Jiří Hunka
Anotace
Tato bakalářská práce se zabývá problematikou systémů pro vytváření a zpracování objednávek v internetových obchodech. V její rámci byla provedená podrobná analýza problematiky a současného stavu nově vznikajícího backendu internetových obchodů Porcupine od společnosti Jagu s.r.o. Na základě výsledků analýzy byl vytvořen návrh modulu nákupního košíku s využitím praktik Domain-Driven Development a návrhového vzoru MVC. Vytvořený návrh byl v jazyce PHP 8.1 s využitím frameworku Symfony implementován, integrován do systému Porcupine a otestován. Ve výsledku této práce vznikl backendový modul pro e-shopy, který je schopný vytvářet objednávky na základě zvoleného zboží.

Zpěvník pro náboženská shromáždění - mobilní aplikace

Autor
Ondřej Wrzecionko
Rok
2022
Typ
Bakalářská práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Jiří Kašpar
Anotace
Práce se zabývá analýzou, návrhem, implementací, testováním a nasazením iOS a macOS aplikace zpěvníku pro náboženská shromáždění a podpůrného serveru poskytujícího REST API pro tuto mobilní aplikaci. Mobilní aplikace je implementována v programovacím jazyce Swift, podpůrný server v programovacím jazyce Kotlin s použitím technologie Spring Web. Aplikace umožňuje zobrazení a správu písní ve zpěvnících a přiřazení zpěvníků ke kapelám. V těchto kapelách je možná správa členů a jejich oprávnění (vedoucí spravuje členy a zpěvníky, hudebník spravuje písně, zpěváku jsou zobrazeny pouze písně a zpěvníky). Písním lze nastavit jejich text, akordy, velikost textu, tempo, výchozí transpozici a soukromé poznámky. Aplikace je nasazena do obchodu pro iOS a macOS aplikace App Store, ze kterého ji za první měsíc nainstalovala a začala používat čtyři náboženská shromáždění, která do ní dosud nahrála přes 1000 písní v 10 zpěvnících.

Diplomové práce

King Karel - Logická hra na výuku programování

Autor
Jan Bittner
Rok
2022
Typ
Diplomová práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Petr Pauš, Ph.D.
Anotace
Magisterská práce se zabývá vývojem prototypu hry King Karel, logické hry na výuku programování. Práce popisuje proces analýzy, návrhu a implementace zmiňované hry s důrazem na návrh architektury jednotlivých částí. Klientská část je tvořena pomocí frameworku Flutter a serverová část je tvořena pomocí frameworku ASP.NET Web API.

Systém pro správu revizí tlakových nádob a techniky

Autor
Pavel Jordán
Rok
2024
Typ
Diplomová práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Monika Borkovcová, Ph.D.
Anotace
Tato diplomová práce se zabývá návrhem a implementací nového systému pro správu revizí tlakových nádob a techniky, vytvářeného na míru pro firmu, kde pracuji. Začínám popisem domény revizí a potřebnou teorií. Procházím existující řešení na trhu a následně provádím kompletní analýzu funkcí systému jak současného řešení, tak i nových funkcí. Na základě této analýzy je pak vytvořen návrh aplikace s důrazem na jednoduchost a snadné použití. Další část této práce se věnuje implementaci systému, následuje jeho testování a ověření použitelnosti. Práce je zakončena nasazením systému pro použití.

Objektově-relační mapování pro přístup k databázi v jazyce JavaScript

Autor
Ladislav Louka
Rok
2023
Typ
Diplomová práce
Vedoucí
Ing. Jan Matoušek
Oponenti
Ing. Jaroslav Šmolík
Anotace
Tato práce se zabývá balíčky a frameworky pro objektově relační mapování a tvorbu SQL dotazů pro technologii JavaScript, se zaměřením na podporu jazyka TypeScript. Cílem práce je porovnat podporu jazyka, schopnosti jednotlivých balíčků a jejich výkon. Práce poskytuje vývojářům informace, které jim pomohou při výběru vhodného balíčku pro jejich aplikaci.