Práce se zaměřuje na tvorbu aplikace pro sledování cen produktů
online. Byly využity dva největší eshopy jako zdroje dat - Ebay
a Amazon, protože mají API a mají největší sortiment. Součástí
aplikace je i rozšiřování skupiny sledovaných produktů, což představovalo největší programátorský problém. Tento proces spoléhá
výhradně na Ebay a produkty ze sekce "Ostatní také prohlíželi"
a snaží se vybrat jeden název z této sady názvů produktů, který
by měl být právě ten jiný, alternativní produkt. Tento problém byl
nejprve řešen vzdáleností řetězců, která nebyla schopna dobře odlišit různé verze produtků. Například názvy Samsung Galaxy S6
a Samsung Galaxy S7 představovaly pro vzdálenost řetězců relativně nízkou odlišnost. Použitou metodou se stala frekvenční analýza zohledňující pozici slova v názvu a její implementace zabrala
značnou část úsilí. Celkově proces objevení nového produktu měl
pravděpodobnost úspěchu přibližně 30%. Tato pravděpodobnost
byla ovlivněna několika faktory. V metodách aplikace bylo použito
několik parametrů, které by bylo vhodné lépe nastavit. Mimo to
se odlišný produkt v sadě podobných produktů nemusí vůbec nacházet. Serverová část aplikace byla napsána v JavaScriptu pro Node.js.
Při tvorbě byla kladen důraz na co největší využití syntaxe z nových
standardů jazyka, zejména klíčová slova async a await, která pochází z ECMAScript 2017 standardu. Pro ukládání dat byla použita
MySQL databáze, která byla nejprve navržena v softwaru MySQL
Workbench. Uživatelská část aplikace byla vytvořena ve framerowku Polymer. Uživatelskou částí se tedy stala jednostránková
webová aplikace zobrazující přehled všech produktů. Pro každý produkt jsou zobrazeny grafy minimální, maximální, průměrné ceny
a graf dostupnosti produktu.
Anotace v angličtině
This work concentrates on creating the application for monitoring
of product prices online. The picked sources of prices are Ebay and
Amazon because of their APIs and amount of products listed. The
biggest problem was encountered when programming the process
of expanding the group of products being monitored. This process entirely relies on Ebay and sources its data from the "Others
also viewed"section. The goal is to pick the most different product
name from this set of suggested products. There was an attempt to
use string distance methods for this picking, but it turned out to
be unable to calculate a requested high distance between Samsung
Galaxy S6 and Samsung Galaxy S7. The method used after that
was frequency analysis taking word position into account. Creating
and debugging of this method took quite some effort. The overall
probability of discovering new product turned of to be near 30%,
additional tweaking of a few internal parameters could increase the
probability. Apart from that a different product is not always in
the set, which lowers the probability as well. The server side application was written in JavaScript for Node.js. There was a substantial effort to use as much new syntax as possible, especially async
and await keywords, which come from ECMAScript 2017 specification. MySQL database was used to store the data, the database
was designed in MySQL Workbench first. The user application was
created as a single page web app using Polymer framework. The
user application shows an overview of all the monitored products.
Charts of lowest, highest and average prices as well as availability charts can be displayed for any product.
Klíčová slova
Ebay, Node.js, ECMAScript 2017, Polymer, vzdálenost řetězců, frekvenční analýza
Klíčová slova v angličtině
Ebay, Node.js, ECMAScript 2017, Polymer, string distance, frequency analysis
Rozsah průvodní práce
48 s
Jazyk
CZ
Anotace
Práce se zaměřuje na tvorbu aplikace pro sledování cen produktů
online. Byly využity dva největší eshopy jako zdroje dat - Ebay
a Amazon, protože mají API a mají největší sortiment. Součástí
aplikace je i rozšiřování skupiny sledovaných produktů, což představovalo největší programátorský problém. Tento proces spoléhá
výhradně na Ebay a produkty ze sekce "Ostatní také prohlíželi"
a snaží se vybrat jeden název z této sady názvů produktů, který
by měl být právě ten jiný, alternativní produkt. Tento problém byl
nejprve řešen vzdáleností řetězců, která nebyla schopna dobře odlišit různé verze produtků. Například názvy Samsung Galaxy S6
a Samsung Galaxy S7 představovaly pro vzdálenost řetězců relativně nízkou odlišnost. Použitou metodou se stala frekvenční analýza zohledňující pozici slova v názvu a její implementace zabrala
značnou část úsilí. Celkově proces objevení nového produktu měl
pravděpodobnost úspěchu přibližně 30%. Tato pravděpodobnost
byla ovlivněna několika faktory. V metodách aplikace bylo použito
několik parametrů, které by bylo vhodné lépe nastavit. Mimo to
se odlišný produkt v sadě podobných produktů nemusí vůbec nacházet. Serverová část aplikace byla napsána v JavaScriptu pro Node.js.
Při tvorbě byla kladen důraz na co největší využití syntaxe z nových
standardů jazyka, zejména klíčová slova async a await, která pochází z ECMAScript 2017 standardu. Pro ukládání dat byla použita
MySQL databáze, která byla nejprve navržena v softwaru MySQL
Workbench. Uživatelská část aplikace byla vytvořena ve framerowku Polymer. Uživatelskou částí se tedy stala jednostránková
webová aplikace zobrazující přehled všech produktů. Pro každý produkt jsou zobrazeny grafy minimální, maximální, průměrné ceny
a graf dostupnosti produktu.
Anotace v angličtině
This work concentrates on creating the application for monitoring
of product prices online. The picked sources of prices are Ebay and
Amazon because of their APIs and amount of products listed. The
biggest problem was encountered when programming the process
of expanding the group of products being monitored. This process entirely relies on Ebay and sources its data from the "Others
also viewed"section. The goal is to pick the most different product
name from this set of suggested products. There was an attempt to
use string distance methods for this picking, but it turned out to
be unable to calculate a requested high distance between Samsung
Galaxy S6 and Samsung Galaxy S7. The method used after that
was frequency analysis taking word position into account. Creating
and debugging of this method took quite some effort. The overall
probability of discovering new product turned of to be near 30%,
additional tweaking of a few internal parameters could increase the
probability. Apart from that a different product is not always in
the set, which lowers the probability as well. The server side application was written in JavaScript for Node.js. There was a substantial effort to use as much new syntax as possible, especially async
and await keywords, which come from ECMAScript 2017 specification. MySQL database was used to store the data, the database
was designed in MySQL Workbench first. The user application was
created as a single page web app using Polymer framework. The
user application shows an overview of all the monitored products.
Charts of lowest, highest and average prices as well as availability charts can be displayed for any product.
Klíčová slova
Ebay, Node.js, ECMAScript 2017, Polymer, vzdálenost řetězců, frekvenční analýza
Klíčová slova v angličtině
Ebay, Node.js, ECMAScript 2017, Polymer, string distance, frequency analysis
Zásady pro vypracování
Navrhněte systém pro automatické vyhledávání a sledování parametrů nabízených produktů online, zaměřte se na sledování ceny, dostupnosti, velikost skladových zásob apod.
Vyhledávání a zadávání produktů by mělo být snadné, systém by měl sám umět nabízet či sledovat alternativy každého výrobku a měl by také umožňovat rozšiřování seznamu sledovaných dodavatelů a portálů.
Získaná data agregujte, archivujte a v přehledné formě prezentujte uživatelům, pokuste se vyřešit také otázku sledování cen v různých geografických oblastech a v různých měnách včetně přepočtů dle aktuálních kurzů.
V závěru shrňte získané poznatky s ohledem zejména na spolehlivost vyvinuté aplikace a uveďte možnosti dalšího rozvoje tématu.
Zásady pro vypracování
Navrhněte systém pro automatické vyhledávání a sledování parametrů nabízených produktů online, zaměřte se na sledování ceny, dostupnosti, velikost skladových zásob apod.
Vyhledávání a zadávání produktů by mělo být snadné, systém by měl sám umět nabízet či sledovat alternativy každého výrobku a měl by také umožňovat rozšiřování seznamu sledovaných dodavatelů a portálů.
Získaná data agregujte, archivujte a v přehledné formě prezentujte uživatelům, pokuste se vyřešit také otázku sledování cen v různých geografických oblastech a v různých měnách včetně přepočtů dle aktuálních kurzů.
V závěru shrňte získané poznatky s ohledem zejména na spolehlivost vyvinuté aplikace a uveďte možnosti dalšího rozvoje tématu.
Seznam doporučené literatury
\renewcommand{\labelenumi}{[\arabic{enumi}]}
Heureka Košík - API [online], [cit. 2017-10-10]. Dostupné z: https://sluzby.heureka.cz/napoveda/kosik-api/
KURTZ, Jamie, 2013. ASP.NET MVC 4 and the Web API: building a REST service from start to finish. Berkeley, CA: Apress. Expert's voice in ASP.NET.
Seznam doporučené literatury
\renewcommand{\labelenumi}{[\arabic{enumi}]}
Heureka Košík - API [online], [cit. 2017-10-10]. Dostupné z: https://sluzby.heureka.cz/napoveda/kosik-api/
KURTZ, Jamie, 2013. ASP.NET MVC 4 and the Web API: building a REST service from start to finish. Berkeley, CA: Apress. Expert's voice in ASP.NET.
Přílohy volně vložené
1 CD
Přílohy vázané v práci
-
Převzato z knihovny
Ano
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Průběh obhajoby je zveřejněn pouze přihlášenému uživateli.