BrickSnoop: Optimizer of LEGO® Brick Orders
Kostkočmuch: Optimalizátor objednávek LEGO® kostek
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/192938Identifikátory
SIS: 250584
Kolekce
- Kvalifikační práce [11240]
Autor
Vedoucí práce
Oponent práce
Kruliš, Martin
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Programování a vývoj software
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
5. 9. 2024
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
LEGO|Optimalizace|Kostky|Google Cloud PlatformKlíčová slova (anglicky)
LEGO|Optimization|Bricks|Google Cloud PlatformNadšenci LEGO často nakupujú stavebnice, ale existujú aj oddaní fanú- šikovia, ktorí si vytvárajú vlastné výtvory a potrebujú nakupovať jednotlivé kocky. Títo fanúšikovia sa snažia nakupovať požadované kocky za čo naj- lepšiu cenu z rôznych miest, pretože ceny sa líšia obchod od obchodu. Túto optimalizáciu vykonávajú manuálne a to porovnávaním ponúk z viacerých platforiem, pretože existujúce nástroje sú obmedzené len na ich príslušné platformy a ani neporovnávajú ponuky s oficiálnymi ponukami LEGO. Táto bakalárska práca si kladie za cieľ vytvoriť optimalizačný nástroj, ktorý pri- jíma ponuky z akéhokoľvek zdroja v predom definovanom formáte. Výsledná webová aplikácia rieši tento problém tým, že prijíma ponuky z rôznych platforiem, umožňuje používateľom prispôsobiť proces optimalizácie výberom algoritmov a platforiem a umožňuje vylúčenie konkrétnych krajín alebo obchodov. Používatelia si môžu zobraziť výsledky optimalizácie a sti- ahnuť optimalizované ponuky. Vzhľadom na NP-ťažkú povahu problému boli použité aproximačné algoritmy, ako sú chamtivé algoritmy a simulované ží- hanie. Frontend bol vyvinutý v Next.js s TypeScriptom, zatiaľ čo backendová časť pre manipuláciu s dátami a optimalizáciu ponúk bola implementovaná v Pythone. Zvyšok backendu bol napísaný v Node.js s TypeScriptom. Aplikácia je nasadená na...
LEGO enthusiasts often buy sets, but there are also dedicated fans who build their own creations and need to purchase individual bricks. These fans are trying to buy their desired bricks for the best price from multiple places as the price differs from store to store. However, they do this optimisation manually by comparing offers from multiple platforms as the existing tools are limited to their respective platforms and do not compare with LEGO's official listings. This bachelor thesis aims to create an optimisation tool that accepts offerings from any source in a predefined format. The resulting web application addresses this issue by accepting offers from various platforms, allowing users to customize the optimization process by selecting algorithms and platforms, and enabling exclusions of specific countries or stores. Users can view the optimization results and download the optimized offers. Due to the NP-hard nature of the problem, approximation algorithms like greedy algorithms and simulated annealing were used. The frontend was developed in Next.js with TypeScript, while the backend for data manipulation and offer optimization was implemented in Python. The remainder of the backend was written in Node.js with TypeScript. The application is deployed on the Google Cloud Platform.