1 table
Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství
Bakalářská práce
Webová aplikace pro nezávislé cestovatele David Vaníček
Vedoucí práce: Ing. Jiří Hunka
17. května 2013
Poděkování Leni, díky za prvotní nápad, sice z toho nakonec vzniklo něco úplně jiného, ale není všem dnům konec. Dále díky za udržování mého alespoň částečného přehledu o stylech a za všechny poznámky k fotkám. Mami, díky za iniciativní šíření dotazníku a za čtenářský klub. Tati, díky za upřímnost. Masér, díky za pohled z druhého konce barikády. Jirko, díky za standardizaci. Davide, díky za trpělivost.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 17. května 2013
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2013 David Vaníček. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Vaníček, David. Webová aplikace pro nezávislé cestovatele. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2013.
Abstract Research aim was to discover needs of independent travelers, i.e. those who arrange everything necessary themselves, without help of travel agency. It was found out most users are seeking for a tour and transportation guide and computer-based itinerary maker. In order to have a tour guide ahead of the others, a tree structure was used for its geographical subdivisions. Tourist destinations were divided into categories to maintain clear layout and make translating easy. Each category was equipped with own behavior. Keywords traveling, tour guide, transportation guide, composite pattern, multiple-language website, categorized information
Abstrakt Výzkum se zabýval potřebami nezávislých cestovatelů, tj. těch, kteří si své dovolené zařizují kompletně sami, bez asistence cestovní kanceláře. Ukázalo se, že největší uživatelský zájem je o turistického a dopravního průvodce a funkci pro navrhování hotových itinerářů cesty. Aby průvodce nabízel oproti stávajícím službám něco navíc, byl zpracován s využití stromové struktury (geografické zařazení). Pro přehlednost a snadnou přeložitelnost informací byly turisty vyhledávané objekty rozděleny do kategorií. Každé kategorii bylo přiřazeno vlastní chování. Klíčová slova cestování, turistický průvodce, dopravní průvodce, vzor strom, vícejazyčný web, kategorizované informace
9
Obsah Úvod
15
1 Průzkum mezi uživateli 1.1 Zadání dotazníku . . . . . . . . . . 1.2 Reprezentativnost dotazníku . . . . 1.3 Vyhodnocení dotazníku . . . . . . . 1.4 Přispění dotazníku k dalšímu vývoji
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
17 17 19 20 21
2 Analýza existujících webových aplikací 2.1 booking.com . . . . . . . . . . . . . . . . 2.2 orbitz.com . . . . . . . . . . . . . . . . . 2.3 reckovdetailech.cz . . . . . . . . . . . . . 2.4 expedia.com . . . . . . . . . . . . . . . . 2.5 dovolena.cz . . . . . . . . . . . . . . . . 2.6 wikitravel.org . . . . . . . . . . . . . . . 2.7 lonelyplanet.com . . . . . . . . . . . . . 2.8 hedvabnastezka.cz . . . . . . . . . . . . . 2.9 Poučení ze stávajících webových aplikací
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
23 24 25 26 28 29 30 32 33 35
3 Návrh webové aplikace 3.1 Analýza požadavků . 3.2 Případy užití . . . . 3.3 Model tříd . . . . . . 3.4 Datový model . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
37 37 38 44 47
. . . .
53 54 54 57 57
. . . .
4 Implementace prototypu 4.1 Uživatelské účty . . . . 4.2 Turistický průvodce . . 4.3 Správce vzhledu . . . . 4.4 Výhled do budoucna .
. . . .
. . . .
. . . .
. . . .
. . . .
webové . . . . . . . . . . . . . . . . . . . . 11
. . . .
. . . .
. . . .
. . . .
. . . .
aplikace . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5 Testování prototypu 59 5.1 Testování správnosti algoritmů . . . . . . . . . . . . . . . . . 59 5.2 Testování použitelnosti . . . . . . . . . . . . . . . . . . . . . 59 Závěr
67
Literatura
73
A Doplňující obrázky
75
B Slovníček pojmů a seznam zkratek
87
C Obsah přiloženého CD
89
12
Seznam obrázků 1.1
Preference respondentů ohledně navrhovaných funkcí vznikající webové aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
Úvodní Úvodní Úvodní Úvodní Úvodní Úvodní Úvodní Úvodní
24 25 27 28 29 31 32 34
3.1 3.2 3.3 3.4 3.5 3.6
Diagram případů užití . . . . . . . . . . . . . . . . . . . . . . . 40 Diagram komponent . . . . . . . . . . . . . . . . . . . . . . . . 45 Diagram tříd - komponenta Turistický průvodce (zjednodušeno) 50 Diagram tříd - komponenta Uživatelské účty (zjednodušeno) . . 51 Diagram tříd - komponenta Vytěžování dat z průvodce (zjednodušeno) 51 Databázový model . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.1
Test správnosti vytvářených odkazů v turistickém průvodci . . .
60
A.1 Rozložení respondentů dle pohlaví a věku . . . . . . . . . . . . . A.2 Rozložení respondentů dle „cestovatelské kategorie“ . . . . . . . A.3 Rozložení respondentů dle pohlaví a věku v jednotlivých kategoriích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4 Kde všude může na booking.com být hotel v Jaroměři . . . . . A.5 Měnící se cena letenek na orbitz.com . . . . . . . . . . . . . . . A.6 Cesta k tomu, co hotel nabízí, je na orbitz.com dlouhá . . . . . A.7 Učitelé zeměpisu by si dle dovolena.cz měli opravit znalosti o Evropě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.8 Stav aplikace při testu použitelnosti . . . . . . . . . . . . . . . .
75 76
stránka stránka stránka stránka stránka stránka stránka stránka
booking.com . . . . orbitz.com . . . . . reckovdetailech.cz . expedia.com . . . . dovolena.cz . . . . wikitravel.org . . . lonelyplanet.com . hedvabnastezka.cz
13
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
77 78 79 80 81 82
A.9 Ukázka z prototypu webové aplikace - editační prostředí správce kategorií . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.10 Ukázka z prototypu webové aplikace - článek o geografickém objektu (s upraveným vzhledem pomocí Správce vzhledu) . . . . A.11 Ukázka z prototypu webové aplikace - tentýž článek po změně preferencí jazyka a měrných jednotek . . . . . . . . . . . . . . .
14
83 84 85
Úvod Na začátku celého úsilí stála snaha o nezávislé cestování. Co ale tento pojem znamená? A kdo je potom nezávislý cestovatel? Může to být za jistých okolností skoro kdokoli. Pro naše potřeby si jej zadefinujeme. Nezávislý cestovatel je ten, kdo jede na dovolenou popřípadě výlet, aniž by přenechal organizaci cestovní kanceláři1 . Musí si tedy sám (v dnešní době pravděpodobně prostřednictvím internetu) zajistit a zjistit spoustu věcí. Kam vlastně vyrazí? Jak se tam dostane? Kde se ubytuje? Jak stráví čas? Co bude jíst? Co dělat, chce-li cestovat se skupinou/rodinou? Je lepší vyrazit v určitém období? Je něco, co by dle zkušeností ostatních vážně neměl vynechat? Nebo naopak něco, čemu se obloukem vyhnout? Toto jsou jen některé z otázek, na které je třeba nalézt odpověď. Vyvstává tedy jiná: Proč vůbec řešit tolik problémů, když stačí zavolat do cestovky? Třeba proto, že toužíte po „dobrodružství“, chcete něco zažít „na vlastní pěst“. Nebo nemáte rádi ty organizované pochody, kdy musíte strávit tři hodiny v obrazárně i když nesnášíte umění. Či chcete ušetřit, protože při rezervaci přes CK platíte i tu usměvavou slečnu u přepážky. Nezávislý cestovatel tedy není blázen, který dělá věci zbytečně složitě, ale naopak člověk, který zasluhuje péči. V první řadě je tedy třeba zjistit, s jakými součástmi cesty mu můžeme pomoci. Nejprve dojde k uživatelskému šetření pro zjištění preferencí většiny. Dále bude proveden rozbor současných webových nástrojů s cílem zjistit jejich silné a slabé stránky. Pokud v některé oblasti již existují dostatečně kvalitní služby, není třeba vytvářet to samé znovu. Cílem této práce není být někomu konkurencí, ale přispět k úplnému pokrytí spektra cestovatelových potřeb. Až budou požadavky na novou webovou aplikaci jasné, bude provedena podrobná analýza a následně vlastní návrh aplikace. Posléze bude vyvinut prototyp. Po jeho otestování dojde k ostrému nasazení a případnému dalšímu vývoji. 1
Samozřejmě i tento cestovatel může využít služeb CK v cílové destinaci pro zajištění některého výletu. Jde o to, že dovolená jako celek není zařizovaná přes CK.
15
Kapitola
Průzkum mezi uživateli Ke zjištění uživatelských preferencí ohledně funkcí vznikající webové aplikace byl využit dotazník. Respondenti měli možnost jej vyplnit on-line v době od 27. listopadu 2012 do 27. ledna 2013. Dvě zájmové skupiny byly cíleně osloveny se žádostí o vyplnění dotazníku. První byla vysokoškolská pracoviště zabývající se cestovním ruchem. Druhá byla prostřednictvím diskuzí na cestovatelských fórech. Dotazník sestával převážně z uzavřených, škálových otázek. Malá část otázek byla otevřených.
1.1
Zadání dotazníku
Z osobních údajů respondentů bylo zjišťováno jejich pohlaví a věk. Dále byli dotázáni, k jaké skupině cestovatelů se nejvíce řadí. Možnostmi byly: • Zavolám do své oblíbené cestovní kanceláře, řeknu jim, kdy mám dovolenou, a oni zařídí vše za mě • Dovolenou mám sice zařízenou přes cestovku, ale na internetu hledám, jaké atrakce má destinace nabízí, jak si tam půjčit auto atd. • Dovolenou si celou zařizuju sám – přes internet objednávám dopravu, ubytování i atrakce v místě pobytu a hledám si potřebné informace • Nikam nejezdím, sleduju doma Cestománii Následovala sekce zkoumající současné cestovatelské portály těšící se oblibě uživatelů. Požádal jsem respondenty o hodnocení (na stupnici /ne/souhlasím, spíše /ne/souhlasím, průměrná úroveň) následujících kritérií: 17
1
1. Průzkum mezi uživateli • Web je přehledný, tj. dobře se zde orientuji, líbí se mi organizace stránek • Informační vybavenost webu je dobrá, tj. najdu zde informace, které hledám / zařídím zde to, co jsem chtěl Dále byla možnost komentáře ke každému portálu. Hlavní částí bylo vyjádření se k navrhovaným funkcím nové webové aplikace. U každé funkce měl respondent možnost se rozhodnout, zda: • funkce je nutnou součástí • by se mu funkce opravdu hodila • se jedná o zajímavou funkci, kterou možná někdy využije • o funkci nemá zájem Navrhované funkce byly následující: • Plánovač dovolené 1. zpracování mého itineráře a informování ostatních (vybraných nebo všech) o něm 2. inspirace průvodcem – chci jet do Francie a řekni mi, co tam • Vedení cestovního deníku 1. vyprávění o tom, co kde naše parta zažila (veřejné nebo soukromé) 2. moje fotky (veřejné nebo soukromé) 3. moje videa (veřejné nebo soukromé) • Turistický průvodce 1. památky, atrakce, přírodní zajímavosti, atd. 2. doprava – z místa A do místa B letadlem / autem / MHD / na kole / atd. 3. stravování – v místě A si zajděte na zmrzlinu do . . . 4. „tipy a triky“ – na co si dát pozor, specifické počasí, . . . • Inzeráty – hledám společníky na dovolenou, průvodce, tlumočníka, ubytování, autostop, atd. 18
1.2. Reprezentativnost dotazníku • Vysoká míra zapojení názoru ostatních uživatelů – hodnocení, diskuze, atd. • Rozšířený uživatelský profil – možnost nastavit si oblíbené země, kuchyně, scenérie, atd. • Bohatá fotogalerie • Bohatá videogalerie • Informace o dění na webu jinou cestou – např. možnost nechat si zaslat e-mail, když se objeví otevřená nabídka na cestu do mé oblíbené země • Rozcestník – odkazy na vyhledávače letenek, půjčoven, hotelů, průvodce, atd. • Propojení se sociálními sítěmi – Facebook, Google+, Twitter, atd. • Vícejazyčnost • Globální zaměření • Lokální zaměření – podrobné informace o několika zemích • Zobrazení stránek upravené pro mobily a tablety Poslední součástí byl prostor k návrhu dalších funkcí.
1.2
Reprezentativnost dotazníku
Celkem se sešlo 112 respondentů. Minimální doporučovaný rozsah souboru je 30 respondentů[16]. Každá navrhovaná funkce byla ohodnocena alespoň 107-krát. Všechny funkce je tedy možné zařadit do vyhodnocení. Pokud by mělo vyhodnocení dotazníku proběhnout dle subkategorií (např. ženy 31-50 let), nastal by problém s reprezentativností (viz. obrázek A.1). Pouze při rozdělení ženy-muži by obě kategorie obsahovaly více než 30 odpovědních archů. Vzhledem k tomu, že toto rozdělení by nereflektovalo ani věk, ani „cestovatelskou kategorii“, nebylo použito. Do závěrečného vyhodnocení tedy nebyly zahrnuty údaje o věku, pohlaví a „cestovatelské kategorii“ respondentů (dle obrázku A.3). Dotazník byl vyhodnocen jedenkrát jako celek. Na místě je poznámka k odpovědím od respondentů z „cestovatelské kategorie“, které vše zařizuje cestovní kancelář (podrobněji na obrázku A.2). 19
1. Průzkum mezi uživateli Web maps.google.com booking.com cestovatel.cz couchsurfing.org dovolena.cz expedia.com hedvabnastezka.cz hostelbookers.com hostelworld.com lonelyplanet.com orbion.cz skyscanner.net tripadvisor.com wikitravel.org
Přehledný web 5 4.3 4 4 3.5 3.75 3.7 5 4 4 4.2 4.3 4 4.5
Informačně vybavený web 5 4.3 4 4 3 3.75 4.1 5 4 4 4.2 4.3 4 4.3
Tabulka 1.1: Hodnocení webů oblíbených mezi respondenty
Někdo by mohl namítat, že by neměly být zahrnuty do vyhodnocení, protože se nejedná o potenciální uživatele vznikající aplikace. Možností ale je, že vše přenechávají cestovní kanceláři proto, že jim současný svět internetu nenabízí funkce, které by potřebovali. Z tohoto důvodu jsou jejich odpovědi stejně důležité jako odpovědi ostatních.
1.3 1.3.1
Vyhodnocení dotazníku Weby oblíbené mezi respondenty
Slovní hodnocení bylo převedeno na stupnici, kde 1 = nesouhlasím až 5 = souhlasím. Shrnutí obsahuje tabulka 1.1 (uvedeny byly pouze weby s více hodnoceními).
Jak je vidět, většina respondentů využívá weby, se kterými jsou spokojeni. Výjimku tvoří dovolena.cz, expedia.com a hedvabnastezka.cz, jejichž hodnocení je pouze lehce nad průměrem. Z tohoto důvodu bude těmto portálům dán prostor v následující kapitole. 20
1.4. Přispění dotazníku k dalšímu vývoji
1.3.2
Navrhované funkce vznikající webové aplikace
Zaměříme na prvky, které respodenti považují za nutnou součást a které by se jim hodily. Z obrázku 1.1 je patrné, že vítězí turistické průvodce všeho druhu. Nezanedbatelnou podporu získalo generování itineráře. Za důležité respondenti považují i názor ostatních uživatelů. Nemálo by jich ocenilo i rozcestník na ostatní weby a velké množství fotografií. Naopak za zbytečné je považováno propojení se sociálními sítěmi, inzeráty a videa. Ne úplně kladné hodnocení získal rozšířený uživatelský profil, společné plánování itineráře dovolené a cestovní deníky. Přílišným zájmem neoplývá ani informování o dění na webu jinou cestou a zobrazení optimalizované pro dotyková zařízení. Protikladné funkce globální vs. lokální zaměření dopadly vcelku podobně, mírně ve prospěch zahrnutí celého světa. Podobně na vážkách byly respondenti v otázce vícejazyčnosti webu.
1.3.3
Respondenty navrhované funkce
Mezi funkcemi navrženými respondenty se nejčastěji vyskytovala žádost o zprostředkování podrobné předpovědi počasí. Dále se objevily žádosti o chat pro uživatele, vyhledávač nejlevnějšího XY nebo nestrojový překladač článků do ostatních jazyků. Mezi více konstruktivní návrhy patří kalkulačka nákladů nebo propojení s mobilní aplikací na zaznamenávání výletů.
1.4
Přispění dotazníku k dalšímu vývoji
Víc než vlastní cestovní deník nebo možnost společně s přáteli vytvářet plán cesty, znamená pro uživatele turistický průvodce. Úplně nejlépe dopadl průvodce nazvaný „tipy a triky“. Ten vyžaduje cestovatele znalé dané oblasti, kteří budou ochotni se podělit o své zkušenosti. Tento fakt podporuje i vysoké umístění zapojení názoru ostatních uživatelů. Vcelku jediná žádaná funkce, která poskytuje nástroj a ne jen prezentaci informací, je komponenta „chci jet do Francie a řekni mi, co tam“. Jedná se o protipól k nekonečnému čtení průvodce – uživatel nečte nic, chce výsledek. Převedeno do běžné řeči, chce automatizovaného kulturního referenta zájezdů. Klíčovými součástmi vznikající webové aplikace tedy pro uživatele jsou tyto dvě funkce. Za prvé dobře zpracovaný průvodce, který ale bude navíc i nástrojem a ne jen poslem informací. A za druhé inteligentní součást, která (na základě znalostí průvodce) nabídne uživateli co nejlepší itinerář. 21
1. Průzkum mezi uživateli
22
Obrázek 1.1: Preference respondentů ohledně navrhovaných funkcí vznikající webové aplikace
Kapitola
Analýza existujících webových aplikací Tato kapitola se věnuje analýze některých webových aplikací, které poskytují služby cestovatelům. Ať již se jedná o turistického průvodce, vyhledávač levných letenek nebo zajištění ubytování. Webové aplikace jsou hodnoceny podle následujících kritérií: • Záběr – do jaké míry je stránka vyčerpávající ve svém tématu? • User-friendly prvky – našeptávače / kalendáře / filtrování / řazení výsledků vyhledávání / bez reklam • Přesnost – zobrazuje web vyžádané informace / dodržuje zadané parametry vyhledávání • Uživatelská hodnocení – do jaké míry lze od ostatních uživatelů vysledovat kvalitu služeb • Jazyková přívětivost – pouze angličtina / i ostatní jazyky / pouze strojové překlady • Doprovodná dokumentace – fotografie / videa • Nutný strávený čas – sestává úkon, který web nabízí, jen z nutných kroků? • Pravdivost údajů – do jaké míry jsou prezentované informace přesné? • Cena – poskytuje web své služby uživatelům zdarma / za úplatu / nabízí věrnostní program na dodatečné slevy Celkové shrnutí obsahuje tabulka 2.1. 23
2
2. Analýza existujících webových aplikací
2.1
booking.com
Na této doméně najdeme komerční nástroj pro rezervování ubytování[1]. Web je zaměřený na celý svět, ale jeho nabídka v zásadě sestává jen ze zařízení hotelového typu. Uživatelům poskytuje své služby zdarma, příjmy pochází z provizí od hotelů.
Obrázek 2.1: Úvodní stránka booking.com
Web je přehledný s velmi pěkně zpracovanými všemi user-friendly prvky. Vlastní rezervace je rychlá a nenutí uživatele zbytečně vyplňovat nepotřebné informace. Dalším plusem webu je systém uživatelského hodnocení. Ten obsahuje i komentáře, po jejichž přečtení bývá patrný stav věcí. Kategorizovatelné informace (vzdálenosti, vybavení, služby recepce, atd.) jsou přeloženy do 40 jazyků. Vlastní popisy hotelů jsou k dispozici pouze v originálním znění. Tento systém se mi líbí, neboť umožňuje celkem „levné“ zpřístupnění webu širšímu spektru uživatelů. Sice nebudou mít k dispozici všechny informace, ale i základní přehled je využitelný. Za zásadní nevýhodu považuji kvantitativní vyhledávání. Web automaticky (bez výraznějšího upozornění – viz. obrázek A.4) zobrazuje i hotely „v blízkém okolí“. Tento fakt nutí uživatele si vždy kontrolovat polohu. Z webu není zřejmé, jestli booking.com ověřuje alespoň existenci ubytovacího zařízení. V nabídce partnerského programu uvádí, že „Můžete tak aktualizovat dostupnost pokojů, ceny, obrázky, text a nabídku na poslední 24
2.2. orbitz.com chvíli.“. Z toho vyplývá, že hotely mají nemalé pravomoce nad svým profilem. Tudíž si myslím, že existuje minimálně nebezpečí poškození cizí firmy nepravdivou nabídkou. S tím souvisí i ne vždy uspokojivá obrazová dokumentace ubytovacích zařízení. U fotografií chybí popisky, není tedy například jasné, co je součástí pokoje a co je ve společných prostorách. Dále se zdá, že mimo jiné nejsou stanovena minimální pravidla – co musí být vyfoceno, v jakém rozlišení musí fotografie být atd.
2.2
orbitz.com
Jedná se o komerční webovou aplikaci umožňující rezervaci letenek, ubytování v hotelu, pronájmu automobilu, lodních plaveb či různých atrakcí[8]. Výsledky Vašeho vyhledávání jsou kombinovány od několika různých poskytovatelů a tím je Vám nabízeno srovnání ceny.
Obrázek 2.2: Úvodní stránka orbitz.com
Primárně je orbitz zacílený na oblast Spojených států amerických. S tím souvisí i dostupnost pouze v anglickém, a nově2 ve španělském, jazyce. Pro hledání letenek, ubytování a automobilu lze omezeně využít i pro větší destinace ve zbytku světa. Zprostředkovává služby 13 půjčoven automobilů, více než 150 hotelových řetězců a přibližně 135 aerolinek. 2
19. ledna 2013 byl odkaz na španělskou mutaci označen štítkem „Nuevo“.
25
2. Analýza existujících webových aplikací Naprostá většina služeb je uživatelům nabízena zdarma. Provoz je hrazen z příjmů z reklamy. Důsledkem toho je méně přehledná grafická úprava hlavní stránky a mnoho bannerů rušících uživatele. Při zobrazení výsledků vyhledávání jsou většinou zobrazeny pouze menší postranní bannery a přehlednost je lepší. Při vyhledávání je zobrazena reklama v novém okně prohlížeče. Navíc jsou návštěvníkům nabízeny balíčky (kombinace letenky, hotelu a automobilu), které z omezené nabídky produktů potěší nižší cenou. Nadto je tvrzeno, že pokud uživatel nalezne objednané služby jinde za nižší cenu, bude mu vrácen rozdíl. Mimoto je v podmínkách napsáno, že pokud u produktu v kategorii „Price Assurance“ dojde ke snížení ceny po dokončení objednávky, získá uživatel rozdíl cen ve formě kupónu. U hotelů se zobrazují uživatelská hodnocení. Názor na ostatní produkty (např. spokojenost s personálem půjčovny automobilů) není k dispozici. Vyhledávání je obohaceno o kalendář, našeptávač míst a návrat k posledním vyhledáváním. V relevantních kategoriích je možno zvolit i preferenci na denní dobu. Na vyžádání web zobrazí i výsledky vyhledávání, které zcela neodpovídají zadání uživatele, ale nabízí nižší cenu. Ve výsledcích vyhledávání je možné dodatečné filtrování podle různých kritérií. Při půjčování auta je zobrazeno ukázkové s informací, že konkrétní model se může lišit. U hotelů je připojeno několik fotografií v malém rozlišení, informace o vybavenosti a služnách jsou nevýrazné (viz. obrázek A.6). Původ údajů není uveden, zdá se, že u letenek a půjčení automobilu se data dynamicky načítají přímo od poskytovatele. Není zřejmé, odkud pochází informace o hotelech. Dalším nedostatkem v této oblasti je zobrazená cena, která od počátku není konečná (viz. obrázek A.5). Pro uživatele je matoucí, když si na jedné stránce vybere letenku za 230 USD a po rozkliknutí se cena změní na 250 USD. Při rezervaci jsou uživateli neustále nabízeny další produkty (z ostatních kategorií, pojištění, atd.). Tlačítko umožňující pokračování je občas umístěno úplně dole, což nutí uživatele prohlédnout celou nabídku, o kterou nemá zájem. I pokud je tlačítko umístěno nahoře, stejně se jedná o další zbytečný krok. To zvyšuje celkový čas potřebný k provedení rezervace.
2.3
reckovdetailech.cz
Jedná se o webový portál určený Čechům, kteří chtějí strávit dovolenou v Řecku[15]. Uživatelům nabízí různé služby od rezervace dovolené, přes fotogalerii a cestovní deníky až po informace o opalovacích krémech. K dis26
2.3. reckovdetailech.cz pozici je pouze v češtině.
Obrázek 2.3: Úvodní stránka reckovdetailech.cz
Je patrné, že web využívá znalostí o cílové skupině uživatelů. Zaměřuje se výhradně na oblasti, kam pořádají zájezdy české cestovní kanceláře. Mezi uvedenými oblastmi chybí kupříkladu hlavní město - Atény. Autoři webu definovali několik oblastí a veškerý přidávaný obsah je možné k některé z nich přiřadit. Při vyhledávání zájezdu není k dispozici kalendář ani našeptávač. Uživatel si musí vystačit se selectboxem obsahujícím výše zmíněné oblasti. Graficky je stránka celkem jednoduše rozvržena. Dodržuje oblast loga, nabídky a vlastního obsahu, což usnadňuje orientaci. Stránky jsou statické, uživatel není rušen animacemi. Informace v sekcích jsou prezentovány stylem „dne X uživatel Y zaslal informaci, že . . . “, takže je na pováženou, na kolik je dané sdělení pravdivé. Dále lze jen těžko soudit, jaká je využitelnost informace z roku 2009 v roce 2013. Web umožňuje přidat sdělení nebo názor, ale neumožňuje hodnocení na škále. Z toho plyne, že uživatel je nucen prostudovat spoustu materiálů, než si může udělat vlastní představu. Celkově je většina stránek delšího rozsahu a kolikrát se informace duplikují. Web ani nepoužívá nějakou možnost zvýraznění, uživateli neustále předkládá nekonečné odstavce textu. Některé sekce jsou moderované, jiné zobrazují vložený obsah přímo (tj. i včetně zkoušek, jestli daná komponenta funguje). 27
2. Analýza existujících webových aplikací Web obsahuje sekci Fotogalerie, kam mají uživatelé možnost přidat vlastní snímky. Chybí kontrola, jestli uživatel zadal alespoň název galerie nebo ji přiřadil k některé z oblastí. Dále chybí propojení fotogalerie s ostatními sekcemi (tj. uživateli je buď předložen text, nebo obrázky). Vše je uživatelům poskytováno bez poplatku. Nadto web tvrdí, že nabízí dodatečné slevy při rezervaci zájezdu jeho prostřednictvím. Web celkem podrobně zpracovává některá obecná témata (např. používání opalovacích krémů), čímž může pomoci i cestovatelům do jiných destinací. Na druhou stranu „Nastavení monitoru“ jako jedna z položek Fotogalerie vyvolá rozpaky. Pro urychlení procházení nabízí web vyhledávání zprostředkované službou Google.
2.4
expedia.com
Tento portál[4] je značně podobný s dříve popsaným orbitz.com. Zaměřím se pouze na rozdíly.
Obrázek 2.4: Úvodní stránka expedia.com
Expedia má odlišně zpracované hledání letů s flexibilními daty. Na výběr je pouze několik (cca 50) destinací. Na druhou stranu se výsledky shromažďují na základě předešlého hledání jiných uživatelů, díky čemuž se zobrazí výrazně rychleji. 28
2.5. dovolena.cz Expedia dále nabízí weby lokalizované pro téměř 30 zemí. Překlady se tváří být kompletní. S lokalizací souvisí i větší možnosti hledání v destinacích mimo USA. Lze najít jak letenky po Evropě, tak třeba i atrakce v Praze.
2.5
dovolena.cz
Komerční portál nabízející vyhledávání mezi nabídkami českých a německých (dále i rakouských a slovenských) cestovních kanceláří[3]. Dle provozovatele se porovnávají nabídky přibližně 300 cestovních kanceláří.
Obrázek 2.5: Úvodní stránka dovolena.cz
Web se tváří, že je hodně zaměřen na individuální přístup k zákazníkovi - sestavení dovolené na míru, vyhledání zájezdu za Vás, on-line chat. Ani po 15 minutách se mi nedostalo odpovědi na dotaz na chat. Tudíž bych si reálnou využitelností této služby nebyl jistý. Naopak, nefungující služba je víc na škodu. Web má odlišně zpracované filtrování. Namísto checkboxů s tím, co uživatel akceptuje, je selectbox s tím, co minimálně požaduje. Výběr destinace je možný pouze zadáním země, tedy ne např. dle oblastí. Primárně se zobrazují ty nejžádanější země. Vyhledávací formulář sám upravuje rozsah dat dovolené tak, aby nebyl delší než cca 2 měsíce. U popisu hotelů se některé informace (klimatizace, možnosti sportovního vyžití, atd.) zobrazují pomocí obrázků. To vracející se uživatel ocení, neboť 29
2. Analýza existujících webových aplikací je nucen číst méně textu. Nový uživatel může být lehce zmaten, co piktogram znamená. Web je přehledně rozdělen do kategorií zájezdů, které by měly uspokojit naprostou většinu uživatelů. Na webu se vyskytují pouze bannery provozovatele, které doplňují grafickou skladbu stránky a nepůsobí rušivě. Autoři by si měli vylepšit zeměpis - v nabídce Eurovíkendů najdeme i Peking (viz. obrázek A.7). Web je celý v českém jazyce. Informace, které byly provozovateli dostupné v angličtině, jsou zobrazeny ve strojovém překladu s upozorněním a odkazem na originál. Z uživatelských hodnocení jsou k dispozici pouze recenze hotelů. Přímo u popisu hotelu se zobrazuje pouze hvězdičkově vyjádřené hodnocení. Textová hodnocení jsou skryta v poslední položce menu, kde si je uživatel musí nejprve vyhledat. Hodnocení spokojenosti s cestovními kancelářemi není k dispozici. Stejně jako u ostatních dosud hodnocených aplikací jsou k dispozici pouze nějaké fotky hotelů. Zde přímo s upozorněním, že se jedná o obecnou fotogalerii. Všechny služby jsou poskytovány zdarma, nadto portál nabízí k některým rezervacím benefity, jako např. parkování na letišti zdarma. Při pokusu o rezervaci dovolené mi bylo umožněno ji pouze nezávazně objednat s tím, že některé položky byly k dohodě s prodejcem. Jednak jsem de facto nic nezařídil (dovolenou stále nemám objednanou) a ani nevím, jaká bude finální cena.
2.6
wikitravel.org
Jedná se o webový portál poskytující turistického průvodce po celém světě[7]. Obsahuje celkem přes 80 000 článků, z nichž některé obsahují pouze jednu či dvě věty. Všechny články jsou přístupné zdarma, žádné dodatečné služby nejsou uživatelům nabízeny. User-friendly prvky chybí, nadto po pravé části stránky je několik reklamních bannerů. Stejně tak mezi textem najdeme panely vybízející k rezervaci ubytování/letenky. Navíc jsou neustále v textu odkazy na editaci příslušné části, což čtenáře ruší. Web je primárně v angličtině, nabízí ale i 20 dalších jazyků. Ovšem jejich obsahová vybavenost je značně limitovaná (pár tisíc článků). Nadto se nejedná o překlady, ale o jiné články. Některé články jsou doplněny fotografiemi či mapou. Zdaleka se nejedná o pravidlo a fotografií není nikdy přehršle. 30
2.6. wikitravel.org
Obrázek 2.6: Úvodní stránka wikitravel.org
Základní navigaci na webu zprostředkovává vyhledávací formulář. Některé články mají v záhlaví uvedenu cestu (např. Evropa: Střední Evropa: Česko), nejedná se ale o pravidlo. Články o větších oblastech většinou nabízí mapu rozdělující oblast na menší regiony a odkazy na tyto regionální články. Web se snaží nabízet kromě užitečných i praktické informace pro cestovatele, např. o používaném napětí v elektrické síti. Ne vždy jsou informace umístěny v příslušném článku o celé oblasti. Místy jsou záležitosti týkající se státu řešeny v článku o městě. Jednotlivé články mají v horní části umístěn obsah, což umožňuje snadnou navigaci. Již ale není ošetřeno, když část pod daným nadpisem je prázdná. Dále je dobré, že možnosti stravování a ubytování jsou při větším počtu rozděleny do cenových kategorií. Uživatelská hodnocení zcela chybí (články mají maximálně kvantitativní označení, že neobsahují dostatek informací). Uživatel má jen možnost článek přepsat. Ovšem v momentě, kdy má uživatel dostatek znalostí na přepsání článku, pak tento článek nebude hledat. Všechny informace pochází od dobrovolných přispěvatelů. Tím pádem předkládané informace jsou subjektivně vybrané (např. nejzajímavější města v daném státě) a nemusí tudíž být plně relevantní. V případě doporučených restauračních, hotelových a barových podniků se můžu dokonce cíleně snažit pomoci někomu v mém okolí. 31
2. Analýza existujících webových aplikací Grafická úprava je velmi jednoduchá, a tudíž pouhé zvýraznění tučným písmem je dostačující. Uživatel přečte nadpisy a důležitá upozornění a detailněji zkoumá jen pasáže, které ho zajímají.
2.7
lonelyplanet.com
Tento portál je takovým „chameleonem“ nabízejícím různé služby cestovatelům[6]. Je zdarma, informace pochází od provozovatele nebo je uveden zdroj.
Obrázek 2.7: Úvodní stránka lonelyplanet.com
Web nabízí vyhledání letenek přes třetí stranu. Další možností je vyhledání ubytování (rezervace opět přes třetí stranu) – nejen hotelů, ale i hostelů. Stalo se mi, že cena hotelu v USA byla uvedena v librách. Z vybavení a popisu ubytovacího zařízení je zobrazen jen začátek, kompletní seznam/text je k dispozici po rozkliknutí. Pro některé uživatele bude zajímavá mapa ve spodní části stránky, která zobrazuje specifické podniky v blízkosti ubytovacího zařízení (např. vegetariánské restaurace). Hodnocení uživatelů chybí. Hledání je doplněno o našeptávač a kalendář. U vlastní nabídky ubytovacích zařízení po vyhledání není jasné dle jakých kritérií bylo řazeno, kde se ubytování nachází (tato možnost není ani ve filtru), atd. Portál nabízí sedm lokalizovaných webů. Tyto však nemají ani stejnou strukturu, natož podobnou nabídku nebo obsah. 32
2.8. hedvabnastezka.cz Další funkcí je uživatelské fórum se standardním portfoliem nabízených funkcí. Sekce Témata nabízí články z několika různých kategorií. Něteré z nich jsou tak exotické, že jsou nejspíše určené pro uživatele z kategorie Nikam nejezdím, sleduju doma cestománii, potažmo tedy čtu na webu. Sekce Destinace přichází s turistickým průvodcem. Orientace je značně složitá. Mimo jiné se zde vyskytuje velké množství reklamy, graficky kolikrát upravené tak, že není jasné, že se jedná o reklamu. Musíme si vybrat jednu ze tří nabídek. První obsahuje odkaz na místa v dané oblasti, informace o dopravě, ale také možnost vyhledání ubytování. Jako uživatel jsem byl zklamán, že jsem hledal informace a bylo mi nabízeno ubytování. Nadto tato nabídka není konzistentní, v některých oblastech obsahuje i další odkazy, např. Divoká zvěř. Druhá nabídka obsahuje různé kategorie Co dělat. Jakmile si jednu vyberete, bude Vám předložen nekonečný seznam – pravda, seřazený podle popularity. Lze pouze mírně zúžit podle typu. Vlastní články (lépe řečeno hodnocení provozovatele) o daných atrakcích jsou značně stručné. Třetí nabídka obsahuje odkazy na zařízení pobytu – pojištění, letenky, (opět) ubytování. Pokud chci procházet místa v dané oblasti, nemám život o moc jednodušší. Chybí rozdělení do kategorií. Oblast o okolí dálnice I-90 je nazvaná Along I-90, takže je pod A. Další z odkazů v první nabídce – Tipy a články – přináší opět „velmi dlouhý“ seznam řazený podle nejistých kritérií. Nadto nevím, co si myslet, když se na prvních místech objeví článek vztahující se k roku 2009. Na druhou stranu oceňuji, že články mají uvedeno datum, kdy byly naposledy upraveny. Články o destinacích obsahují jenom krátký přehled. K ostatním informacím (např. historie nebo jak se na místo dostat) se musí uživatel proklikat přes menu. Články jsou doprovázeny několika fotografiemi a místy i videem (obzvláště v Tématech).
2.8
hedvabnastezka.cz
Portál zaměřující se hlavně na ne úplně masově vyhledávané destinace[11] - Asie, Jižní Amerika, Afrika, atd. Je k dispozici pouze v českém jazyce. Nejedná se o konzistentního turistického průvodce, ale o souhrn článků od přispěvatelů. Tím jsou některé oblasti pokryty několikrát a některé vynechány. Tento systém je opět ideální pro cestovatele „4. kategorie“, kteří vyměnili televizní obrazovku za počítačovou. 33
2. Analýza existujících webových aplikací
Obrázek 2.8: Úvodní stránka hedvabnastezka.cz
Stránky o jednotlivých zemích jsou doplněny základními informacemi a případně místními specifiky (např. informace o náboženství). Novinkou na webu jsou blogy. Nabízí stejný obsah (zprávy z pobytu v navštívených zemích) s tím rozdílem, že publikované články nejsou moderované redakcí. Mezi sekcemi webu jsou Rady na cestu. Zde najdeme témata od mytí rukou až po smlouvání na tržištích. Prezentované informace vychází z mnoha zkušeností a jsou poměrně obsáhlé. Jejich nevýhodou je, že nejsou rozděleny dle oblastí, ke kterým se vztahují. Mimo to krom vlastního článku se spousta užitečných informací nachází až v reakcích na něj. Na webu také nalezneme diskusi. Kromě té o jednotlivých destinacích je zde několik specializovaných, např. o práci v zahraničí nebo prosby o přivezení specifického výrobku z dovolené. User-friendly prvky chybí, stejně tak má na webu značný prostor reklama. Web nabízí možnost To se mi líbí. Ovšem kliknutí na ni se pravděpodobně neprojeví ničím jiným než změnou čítače umístěného vedle. Sekce fotografie umožňuje filtrování podle země, tématu a autora. Poté jsou uživateli předloženy všechny nalezené fotografie bez dalších možností. Pár fotografiemi je doplněná i většina článků. Web je přístupný bez poplatku. Články jsou před zveřejněním schváleny redakcí, která sestává z lidí s dlouhodobějšími zkušenostmi s daným re34
User-friendly prvky
Přesnost
Uživatelská hodnocení
Jazyková přívětivost
Doprovodná dokumentace
Nutný strávený čas
Pravdivost údajů
Cena
Web booking.com orbitz.com reckovdetailech.cz expedia.com dovolena.cz wikitravel.org lonelyplanet.com hedvabnastezka.cz
Záběr
2.9. Poučení ze stávajících webových aplikací
7 3 6 7 8 7 6 6
9 6 3 6 7 3 3 0
4 6 7 6 5 -
9 2 7 2 1 1 1 1
7 2 8 7 7 3 4 10
5 2 3 2 2 2 7 4
9 6 2 6 4 8 2 1
5 8 5 8 6 4 9 9
8 9 8 9 8 7 7 7
Tabulka 2.1: Shrnutí hodnocení existujících webových aplikací (0=nejhorší hodnocení, 10=nejlepší hodnocení)
gionem.
2.9
Poučení ze stávajících webových aplikací
Jsem si vědom toho, že můj přístup byl značně kritický. Na druhou stranu si myslím, že mi to pomohlo v uvědomění si věcí, kterých se chci vyvarovat. Cestování není levná záležitost, a proto je patrný všeobecný tlak na cenu. Placený portál by neměl šanci se uživit. I web, který za uživatele prohledá patnáct ostatních a nabídne mu nejnižší cenu, mu kolikrát dále nabízí další výhody. Vytvářená aplikace tedy bude nabízet všechny služby zdarma. Další trendem je umožnit uživatelům upravovat obsah. Z hlediska provozovatelů je to pochopitelné. Zahrnutí celého světa není v silách malé skupiny tvůrců a velkou skupinu není z čeho zaplatit. S tím je spojena další věc. Celý internet je do jisté míry postaven na faktu „jaký mám důvod přidávat 35
2. Analýza existujících webových aplikací nepravdivé informace“. Jsou možná dvě usměrnění – moderování a uživatelská hodnocení. První je časově náročnější (a může znamenat i pozdržení prezentace pravdivých informací) a druhá zase obsahuje skulinku pro „záškodníky“. Je důležité, aby vznikající aplikace zobrazovala, na kolik je daná informace relevantní a dle čeho tak bylo souzeno. S tím souvisí i doba poslední úpravy. Spousta informací z roku 2006 stále platí, ale spousta se jich i změnila. Dalším cílem je upozorňovat, že informace může být zastaralá. Vstup na trh s vyhledáním ubytování/letenek/půjčoven automobilů by byl velmi obtížný. Hráčů zde je dost a jejich služby jsou vcelku na vysoké úrovni. Tuto část cestovatelského světa tedy aplikace neobsáhne. Turistických průvodců je sice také nepřeberné množství, ale u nich byly nalezeny závažnější problémy. Týkají se jednak relevance informací a jednak jejich snadné přístupnosti. Průvodce se jeví jako atraktivní část aplikace. Jakmile si webová aplikace vytyčí za cíl zpracovávat turistického průvodce, bude zpracovávat velké množství informací. Proto je tím klíčovější, aby web poskytoval snadnou navigaci. Snůška článků, ve kterých se horko těžko vyzná Google, není tím správným řešením. Uživatel se nevrací na web, kde přes vyhledávací formulář nalezl jednu užitečnou informaci. Uživatel se vrací na web, kde snadno našel žádanou užitečnou informaci a nadto získal několik dalších jako bonus. Hlavním „nešvarem“ zkoumaných aplikací byly různé „podfuky“ na uživatelích. Prioritou tedy je webová aplikace, která se ve všech ohledech a za všech okolností chová k uživateli fér.
36
Kapitola
Návrh webové aplikace Na základě podkladů získaných v průzkumu mezi uživateli a rozboru stávajících webů bude provedena analýza webové aplikace. Nejprve z hlediska požadavků a poté případů užití. Další část se bude věnovat vlastnímu návrhu, a to jak z hlediska objektového (rozdělení do tříd), tak i datového. Zároveň proběhne diskuze a rozhodnutí některých implementačních detailů. Ty sice nebudou ovlivňovat vzhled a chování aplikace, ale budou mít vliv na jiné aspekty, např. na její výkon.
3.1
Analýza požadavků
Funkční požadavky
• vytvořit nástroj pro zpracování turistického průvodce (prostřednictvím článků) zaměřeného na vyhledávaná místa a způsoby dopravy mezi nimi; průvodce se nebude zabývat ubytováním • návštěvníci webu si mohou vytvořit uživatelský účet • součástí každého článku v průvodci bude prostor pro tipy a upozornění • umožnit přidávání obsahu v různých jazycích; nabízet zobrazení obsahu v co nejvíce jazycích, ale nepoužívat strojové překlady • doplnit průvodce službami třetích stran (např. mapa, předpověď počasí) • dát uživatelům dostatečný prostor pro sdílení vlastních zkušeností a získávání rad od ostatních 37
3
3. Návrh webové aplikace • vytvořit generátor možných itinerářů na základě omezení na lokalitu a čas, případně finance a typ dovolené • poskytnout kalkulačku nákladů Nefunkční požadavky
• systém bude vytvořen jako webová aplikace • turistického průvodce může kdokoli upravovat • u turistického průvodce klást důraz na rozdělení informací do kategorií • výrazná snaha o prezentování objektivních, relevantních a pravdivých informací (ne tam, kde jsou žádána subjektivní vyjádření návštěvníků), případně upozornění na neověřenost či zastaralost • striktní rozdělení prezentační a editační vrstvy turistického průvodce
3.2
Případy užití
Případy užití vychází z předložených požadavků. Vzhledem k předpokládaným různým pravomocem uživatelů bylo definováno pět rolí - neregistrovaný návštěvník a 4 úrovně registrace.
3.2.1
Aktéři
Návštěvník
• ten, pro něhož je celý web vytvářen • využívá informace umístěné na stránkách • může hodnotit jednotlivé položky • může přidávat obsah Uživatel
• zaregistroval se, tj. má uživatelský účet • může dělat vše, co Návštěvník 38
3.2. Případy užití • navíc sbírá hodnocení za přidaný obsah; po dosažení určitého hodnocení může být povýšen na Specialistu oblasti nebo Pečovatele Specialista oblasti
• platí pro něj vše co pro Uživatele • rekrutován z řad Uživatelů s nejlepším hodnocením • navíc má přiřazenu určitou geografickou oblast • v této oblasti může schvalovat obsah a provádět úpravy Pečovatel
• platí pro něj vše co pro Uživatele • není nutně zcestovalý, ale má zájem na přehlednosti stránek • má právo přeuspořádávat informace, schvalovat překlady, atd. Administrátor
• může provádět větší zásahy do celého webu • může povyšovat Uživatele
3.2.2
Popisy případů užití
Následují popisy jednotlivých případů užití dle obrázku 3.1. Přidání nového článku o geografickém objektu
1. Zvolit jazyk, v jakém bude článek napsán 2. Vložit nadpis 3. Vybrat článek, jehož je tento jinou jazykovou mutací 4. „Úprava článku“ Alternativně, pokud jiná mutace ještě neexistuje, 3. bod se změní na: 39
3. Návrh webové aplikace
Obrázek 3.1: Diagram případů užití
1. Vybrat oblasti nadřazené objektu, o němž se bude psát 2. Vybrat kategorie, do nichž objekt spadá Přidání nového článku o trase
40
3.2. Případy užití 1. Zvolit jazyk, v jakém bude článek napsán 2. Vybrat počáteční a koncový objekt trasy 3. Vybrat dopravní prostředek 4. „Úprava článku“ Úprava článku
1. Napsat nekategorizova(tel)ný text 2. Vložit kategorizované informace Schválení obsahu Například verifikace článku Specialistou oblasti nebo odsouhlasení překladu Pečovatelem. 1. Vybrat obsah 2. Zkontrolovat obsah 3. Dle potřeby odstranit špatný obsah Změna umístění obsahu Například přesun diskusního příspěvku Pečovatelem nebo článku Specialistou oblasti. 1. Vybrat obsah 2. Označit jej k přesunutí 3. Vybrat nové umístění Přidání nové kategorie informací
1. Vložit název ve známých jazycích 2. Vybrat relevantní šablony Přidání šablony pro kategorii informací
1. Vložení názvů (ve známých jazycích) částí informace 41
3. Návrh webové aplikace 2. Přiřazení možných hodnot (výběr z více x daný rozsah) k jednotlivým částem Rozšíření slovníku
1. Přidat nová slova (slovní spojení) ve všech známých jazycích Přidání nové jazykové mutace
1. Zadat název jazyka 2. Přidání překladů známých slov Povýšení uživatele
1. Výběr uživatele 2. Výběr nové pozice Hodnocení obsahu
1. Vybrat hodnotitelný obsah 2. Ohodnotit položky, s nimiž má uživatel zkušenost (1-5 hvězdiček, čím více, tím lepší hodnocení) Získání informace Například přečtení článku nebo cestopisu. 1. Využití navigace (výpis všech & nejoblíbenějších podoblastí) k nalezení geografického objektu 2. Výběr typu informací, o které má uživatel zájem Přidání okruhu
1. Zadat strávený čas 2. Zadat náročnost okruhu 3. Vybrat místa na okruhu resp. využít existující trasy 42
3.2. Případy užití Spočítání nákladů
1. Výběr položky, kterou má uživatel v plánu navštívit 2. Zadání počtu osob, které se položky zúčastní 3. Vložení do „košíku“ 4. Jsou-li další plány, pokračování 1. Vygenerování itineráře
1. Výběr destinace dovolené (stát nebo oblast) 2. Možnost výběru délky, ceny, ročního období a zaměření dovolené a počtu účastníků Žádost o radu
1. Vyhledat článek o oblasti/trase, které se dotaz týká 2. V sekci Diskuze vložit dotaz 3. Vybrat, zdali chci dostávat odpovědi e-mailem Poskytnutí rady
1. Výběr oblasti/trasy, kterou uživatel dobře zná 2. Zobrazení seznamu nezodpovězených dotazů v této oblasti 3. Vložení odpovědí Přidání cestopisu
1. Vložit nadpis 2. Vložit obsah (je možné rozdělit časově) 3. Vybrat oblast(i), o jaké cestopis pojednává Registrace
1. Vyplnění e-mailu, uživatelského jména a hesla 43
3. Návrh webové aplikace 2. Aktivace dle instrukcí v obdrženém e-mailu Přihlášení do systému 1. Vyplnění uživatelského jména a hesla
3.3
Model tříd
Z důvodu větší přehlednosti a lepší znovupoužitelnosti byla aplikace rozdělena na několik komponent a subkomponent, viz. obrázek 3.2. První z nich je správa uživatelských práv a účtů. Druhá je průvodce. Ten je složen z turistické a dopravní části. Dále obsahuje subkomponentu pro hodnocení položek a správu kategorizovaných informací a jazykových mutací. Mezi nástroje průvodce rovněž patří funkce pro zpracování cestopisů, získávání rad a přidávání absolvovaných okruhů. Třetí komponentou je vytěžování dat z průvodce. Tato komponenta bude obsahovat žádaný generátor itineráře, dále může nabízet kalkulačku nákladů a další nadstavbové funkce.
3.3.1
Turistický průvodce
Pro objektový návrh komponenty průvodce (na obrázku 3.3) byl využit návrhový vzor MVC[12]. Došlo k separaci uložení dat, business logiky a prezentace uživateli. Komunikace vrstev v rámci tohoto vzoru má nespočet výkladů, popišme si tedy podrobněji ten, který se jeví jako vhodný k použití v této aplikaci. Vzhledem k zadanému požadavku na komfortní zpracování jednotlivých úkonů se předpokládá využití několika různých způsobů prezentace dat. Samozřejmostí je zobrazovací mód, dalšími nezbytnostmi jsou editace a hodnocení. Vidíme tedy velkou váhu na část View. Jak již bylo několikrát zmíněno, turistický průvodce obhospodařuje velké množství dat. Další výraznou částí je tedy Model. Kdyby veškerá komunikace probíhala přes Controller, byl by tento snůškou jednořádkových metod „vrať výsledek metody XY z datové vrstvy“. Je tedy vhodnější, aby View posílalo (předzpracované) úkoly rovnou Modelu. Controller je stále důležitá součást – nabízí jednak „knihovní funkce“, zprostředkovává napojení na databázi a hlavně obstarává komunikaci s komponentou Uživatelských účtů. Tedy View i Model se Controlleru dotazují na preference a práva uživatele. Uložení dat se snaží být co nejvíce věrné geografické logice. Ukažme si ji na příkladu Chicaga ve Spojených státech amerických. Toto město se 44
3.3. Model tříd
Obrázek 3.2: Diagram komponent
rozkládá na území 2 counties - Cook a DuPage. Obě county jsou ve státě Illinois. Vlastní Chicago se dále dělí na několik desítek wards. Tedy vidíme, že: • jedná se o město • má několik nadřazených celků • sestává z několika celků Dostáváme tedy jakousi stromovou strukturu, kde každý uzel může mít několik otců i několik synů. Zároveň každý uzel má i několik kategorií, do kterých spadá. Vzniklý strom zároveň (přibližně) v jednotlivých patrech udržuje objekty stejného rozsahu/významu. Pro zachycení stromu se nabízí využití (drobně pozměněného) návrhového vzoru Strom[12]. Úprava bude spočívat v tom, že části dovolíme patřit do více celků. 45
3. Návrh webové aplikace 3.3.1.1
Správce kategorií
Opět začneme pro lepší názornost příkladem. Dejme tomu, že chceme mít možnost u každého státu evidovat jaký je používaný typ elektrické zástrčky, v kolika letech lze získat řidičský průkaz, je-li legální používání marihuany a jaká je webová stránka místní vlády. Koupil jsem si mezinárodní adaptér. Ten sestává z pěti různých zástrček. Každá je označena názvem oblasti, kde se hlavně používá. Mám tedy pět různých hodnot (Severní Evropa, Jižní Evropa, Velká Británie, Amerika, Austrálie). Vím, že ke každé zemi mohu jednu z nich přiřadit. Vyvstává nám první způsob uložení položky informace: název a výčet možných hodnot. V tomto případě přiřazuji jednu, ale obecně je možno přiřadit i více. Získání řidičského průkazu je možné v nějakém věku. Opět je množina správných hodnot, ale v tomto případě může konkrétní hodnotu zadat uživatel a my jen zkontrolujeme, že dává smysl (např. je vyšší než 13 let a nižší než 30 let). Máme druhou položku: název, rozsah možných hodnot a případně jejich jednotka. Marihuana se užívat buď smí nebo nesmí, více možností než ano nebo ne nemáme. Třetí položka: otázka a odpověď ano/ne. Web si zakládá na jazykové přívětivosti, ale informace jako webová stránka (tedy URL adresa) je vždy stejná. Není třeba ji překládat a naopak ukládat ji pokaždé zvlášť by nám tak leda způsobilo aktualizační anomálie. Čtvrtá položka: název a univerzálně platná hodnota. Nyní již jen vytvoříme kategorii informací. Snad je vše jasné – zvolíme název a z existujících položek (resp. kategorií; chceme-li použít něco, co již je vytvořené, proč to vytvářet znovu) vybereme ty, které jsou pro danou kategorii relevantní. Přesuňme se tedy do jazyka objektů. Jednotlivé položky se nám stanou třídami (shrnutí viz. tabulka 3.1). Dalšími třídami bude ona kategorie a následně zastřešující třída, která nám umožní jednotnou práci s položkami i kategoriemi.
Výše popsaný koncept je jednoduchý a velmi univerzální, ale tím pádem se nám určitě stane, že někdy bude značně nevyhovující. Hodilo by se nám něco na způsob návrhového vzoru Dekorátor[12]. Mám základní položku a volitelně ji obohacuji o další prvky. Například webová stránka by se určitě chtěla uživateli prezentovat jako odkaz a ne jako pouhý text. Chceme tedy dekorovat, ale jednodušeji – nepotřebujeme násobnost dekorací. Vznikne nová třída Odkaz na web, která dědí ze třídy Mezinárodní prvek, přetíží metodu pro výpis hodnoty a implementuje si ji po svém. 46
3.4. Datový model Název Hodnotový prvek Rozsahový prvek
Prvek ano/ne
Mezinárodní prvek
Popis výběr několika z nabízených možností minimální a maximální možná hodnota volitelně doplněná o jednotku otázka, na kterou lze odpovědět ano nebo ne textová hodnota platná ve všech jazycích
Příklad Měsíc konání: leden, únor, . . . , prosinec Zeměpisná šířka: 0-90 stupňů severní nebo jižní šířky Lze smlouvat o ceně?: ano/ne Oficiální web: adresa URL
Tabulka 3.1: Různé druhy položek kategorie informací
Vzhledem k jednoznačnosti názvů položek (identifikátor ze slovníku) víme, kdy použít základní třídu a kdy některé z rozšíření.
3.3.2
Uživatelské účty
Uživatelské účty (viz. obrázek 3.4) definují třídu pro každou z uživatelských rolí včetně jedné zastřešující třídy, která bude spojovat společné vlastnosti/možnosti registrovaných i neregistrovaných návštěvníků. U třídy Administrátor se počítá se „superprávy“, která umožní neomezené provádění všech úkonů.
3.3.3
Vytěžování dat z průvodce
Tato komponenta bude sestávat z jednotlivých nadstavbových modulů nad Turistickým průvodcem. Prozatím je v plánu Generátor itinerářů a Kalkulačka nákladů, viz. obrázek 3.5. Z výkonnostních důvodů budou třídy v této komponentě mít přímý (čtecí) přístup k datové vrstvě Turistického průvodce.
3.4
Datový model
Datový model vychází z požadavků jednotlivých komponent. Pro uložení většiny informací bude použita databáze (obrázek 3.6). Jedná se o osvědčené řešení pro uložení dat, která dodržují nějakou strukturu. 47
3. Návrh webové aplikace Databáze bude uchovávat jednotlivé geografické objekty (v různých jazycích) a trasy, dále definice kategorií a jejich konkrétní hodnoty pro jednotlivé geografické objekty a trasy. Nedílnou součástí bude i slovník výrazů. Označení je uloženo s odkazem na jednu mutaci a dle slovníku se poté automaticky vytváří mutace v žádaném jazyce. Výsledná databáze nebude normalizovaná, vzhledem k množství dat by při striktním dodržení všech normálních forem byly jednotlivé operace náročné a drahé. Rozdíl si ukážeme na konkrétním příkladě. Tabulka 3.2 znázorňuje databázi porušující 1. normální formu a tabulka 3.3 „správné“ řešení. V prvním případě po načtení řádku o Evropě zjistíme použité kategorie u tohoto záznamu použitím (jednoduché) funkce pro práci s řetězcem. V druhém případě musíme provést selekci a projekci nad další tabulkou, která obsahuje minimálně stejný počet řádků (každý záznam má přiřazenu alespoň jednu kategorii). ID geografického objektu 13 15
Název Evropa Česko
ID použitých kategorií 25,32,7 16,44
Tabulka 3.2: Ukázka nenormalizovaného (použitého) uložení dat
ID geografického objektu 13 15 ID geografického objektu 13 13 13 15 15
Název Evropa Česko ID použité kategorie 25 32 7 16 44
Tabulka 3.3: Ukázka normalizovaného uložení dat
Nejprve je třeba si uvědomit, jaké výkonnostní faktory jsou pro aplikaci tohoto typu kritické. V první řadě rozmělnění obsahu do velkého množství menších součástí. Za druhé, celkově velký objem dat. Za třetí, (potenciální) využívání velkým množstvím uživatelů. 48
3.4. Datový model Uložení v databázi Velká celková velikost databáze Vyhledávat v celém obsahu lze přes SQL nebo podobný jazyk Jednotné uložení obsahu (snadná přenositelnost) Velké zatížení databáze (větší nutnost optimalizace)
Uložení v *.txt souboru Databáze sestává spíše ze slov a číselných klíčů Vyhledávání se musí implementovat zvlášť nebo využít třetí stranu (Google) Textový obsah může být uložen ve stromové (logické) struktuře odpovídající skutečnosti Databáze je pouze jednou součástí systému
Tabulka 3.4: Porovnání způsobů uložení textových popisů článků
První faktor již je vyřešen použitím databáze. Kategorizované informace v ní budou určitě. U textových popisů (druhý faktor) lze zvolit uložení buď také v databázi, a nebo v textových souborech. Výhody i nevýhody obou přístupů srovnává tabulka 3.4.
Třetí faktor lze vyřešit cachováním prezentovaných stránek. Tedy nesestavovat pokaždé stránku z jednotlivých součástí, ale mít ji předpřipravenou. Proveďme hrubou kalkulaci. Turistického průvodce zpracovávající Wikitravel má 80 000 článků[7]. V angličtině jich může být 70 000. Naše aplikace může disponovat možností překladu do 20 jazyků. Při úplné předpřipravenosti by to znamenalo duplikaci jedné informace (např. menu) 1 400 000x. A při úpravě stejný počet změn. Z toho důvodu se jako lepší (případně kompromisní) řešení jeví předpřipravit si dílčí větší součásti a ty (pokaždé) skládat. Z rozboru druhého a třetího faktoru bylo rozhodnuto, že v prvotní verzi aplikace budou textové popisy uloženy v jednotlivých souborech na disku. Nikoliv v textových, ale rovnou v předpřipravených *.html souborech. Tím se budou vyskytovat pouze na jednom místě a možnosti editace zůstávají nedotčeny. Pokud by se řešení neosvědčilo, je možné v dalších verzích přejít na druhý navrhovaný systém.
49
3. Návrh webové aplikace
Obrázek 3.3: Diagram (zjednodušeno)
50
tříd
-
komponenta
Turistický
průvodce
3.4. Datový model
Obrázek 3.4: Diagram tříd - komponenta Uživatelské účty (zjednodušeno)
Obrázek 3.5: Diagram tříd - komponenta Vytěžování dat z průvodce (zjednodušeno)
51
3. Návrh webové aplikace
Obrázek 3.6: Databázový model
52
Kapitola
Implementace prototypu webové aplikace Po analýze požadavků, definici případů užití a hrubém náčrtu architektury bylo rozhodnuto nadále pokračovat ve vývoji dle zásad přírůstkového modelu[13, p. 13]. Tedy postupně zpracovávat jednotlivé (sub)komponenty; nejprve jejich základní funkčnost, a poté je postupně obohacovat o další prvky. Proces vývoje (sub)komponenty lze rozdělit do těchto kroků: 1. Zpracovat detailní návrh 2. Naprogramovat business logiku a jednoduchou prezentaci (PHP3 ) 3. Přidat grafickou úpravu (CSS) 4. Vylepšit s využitím user-friendly prvků (JavaScript) Nejprve je třeba rozhodnout pořadí, v jakém budou jednotlivé součásti zpracovávány. Z diagramu 3.2 je patrné, že Turistický průvodce využívá Uživatelské účty a Vytěžování dat závisí na Turistickém průvodci. Nejprve tedy přijdou na řadu Uživatelské účty, následovat je bude Turistický průvodce a ve finále Vytěžování dat. 3
Vzhledem ke znalostem a zkušenostem autora byl jako programovací jazyk zvolen PHP[9]. Jedná se o jazyk určený pro programování webových aplikací. Má objektovou nadstavbu a mezi jeho hlavní vlastnosti patří bohatá knihovna funkcí a slabá typová kontrola.
53
4
4. Implementace prototypu webové aplikace
4.1
Uživatelské účty
Vzhledem k tomu, že pro Turistického průvodce je tato komponenta externím modulem, bylo důležité zajistit minimální míru závislosti. V tom nám pomůže definice rozhraní, které budou třídy uživatelů implementovat. Průvodce požaduje, aby uživatel poskytoval své uživatelské jméno, numerický identifikátor a byl schopen se vyjádřit, zdali má práva požadovaná některou z rolí. Musíme si přiznat, že jsme na uživatelích závislí (budou přidávat obsah). Je tedy důležité jim vyjít co nejvíce vstříc. Z tohoto důvodu je málem primární funkcí možnost „přihlásit se na stálo“. Když mám doma svůj osobní počítač, který nikdo jiný nevyužívá, není „otravnější“ stránka než ta, která při každém přístupu vyžaduje přihlašovací údaje. Trvalé přihlášení bylo vyřešeno pomocí cookie a podporuje i několik zařízení jednoho klienta zároveň. Vzhledem k zabezpečení dat je nezbytné, aby při ostrém spuštění aplikace probíhala komunikace pomocí HTTPS. Uživatelé, kteří si nepřejí využít tuto možnost, jsou přihlášeni maximálně po dobu jedné session. Tato komponenta dále podporuje uživatelské preference - jazykové, měrné a váhové a měnové (viz. dále). I z tohoto důvodu bylo pro neregistrované uživatele přistoupeno k řešení pomocí session a nikoli cookie. Představme si veřejný počítač na letišti a uživatele, který si nastaví upřednostňovaný jazyk. Informace by se uložila do cookie (s delší dobou platnosti). Přijde další uživatel a je úplně ztracený, protože stránka je v jazyce, ze kterého nerozumí ani slovo.
4.2
Turistický průvodce
Zdálo by se nasnadě začít tím hlavním, tedy Geografickými objekty a Trasami, ale je třeba si uvědomit závislosti. Mezi požadavky se nachází podpora různých jazykových verzí a rozdělení informací do kategorií. Začněme tedy Slovníkem.
4.2.1
Slovník
Je nezbytné, aby aplikace měla interní slovník, či lépe řečeno „spojník“ (překlady slovních spojení). Pokud by stačily překlady slov, bylo by možné využít nějaký existující slovník na internetu. V případě slovních spojení by to znamenalo sáhnout po strojových překladačích, což se neslučuje s požadavky. Vytváření slovníku se tedy svěří Pečovatelům. 54
4.2. Turistický průvodce Hlavní funkčnost slovníku spočívá v tom, že každé slovo je schopno se přeložit do jazyka, který je žádán (pokud byl překlad vyplněn). Tato funkce je podpořena definovaným rozhraním Překladatelné. Oproti původním plánům bylo přistoupeno k možnosti upřednostnit několik jazyků. Rozumí-li uživatel plynně více než jedné řeči, může získávat více informací přečtením článku ve více mutacích naráz. Kódy jazyků jsou přebírány ze standardu ISO 639-1[5]. Sice existují i rozšíření tohoto standardu, ale pro naše potřeby je tento postačující.
4.2.2
Převodník
Když už je aplikace schopna předkládat uživateli obsah v jazyce, kterému rozumí, bylo by vhodné, aby rozuměl i vlastnímu obsahu. Konkrétně jsou myšleny míry a váhy. Ruku na srdce, kolik Evropanů, kteří nejsou za vodou, si představí něco pod horou vysokou 3 000 stop? Žádoucí chování aplikace je přidat údaje v jednotkách, kterým rozumím, a přečíst si je také tak. Z tohoto důvodu byl implementován převodník, který podporuje metrický, americký a britský systém. Podklady pro převod byly získány z přehledu[14]. Aktuálně jsou podporovány veličiny teplota, délka, obsah, objem a hmotnost. Z jednotek se nabízí ty nejpoužívanější (většinou 3 pro každou veličinu v každém systému). Do převodníku byly přidány i měny, opět aby uživatel získal reálnější představu, v tomto případě o nákladech. Na rozdíl od měr a vah je ale důležité zobrazit i původní hodnotu (odpovídá skutečnosti). Pro získání kurzů měn byla využita služba třetí strany[2]. Aplikace si kurzy jednou denně aktualizuje.
4.2.3
Správce kategorií
Jak již bylo naznačeno v předešlé kapitole, každá kategorie se skládá z dílčích položek. Kategorie jsou tří různých typů – pro využití v turistickém průvodci, pro využití v dopravním průvodci a obecné (tj. dílčí součásti větších kategorií). Zde vyvstává otázka možností úprav. Přidání kategorie je jednoduché, vytváří se nová možnost. Avšak při editaci narážíme na problém, že součást kategorie mohla být někde použita, a tudíž není možné ji jen tak smazat. Bylo přistoupeno k rozhodnutí, že cokoli by mělo být při editaci smazáno, bude pouze označeno jako smazané. Stará využití zůstanou nedotčena a nová budou využívat pouze aktuální stav kategorie. Oproti původnímu návrhu bylo rozhodnuto, že skládání kategorií z kategorií nebude možné do nekonečna. Hlavním důvodem je přehlednost při 55
4. Implementace prototypu webové aplikace zobrazování. Aby bylo možné zajistit zřejmost, k čemu se daná informace váže, je možné, aby kategorie obsahovala pouze kategorie, které sestávají jen z položek (tedy 2 úrovně kategorií. ). Mějme kategorii KA, jejíž definice je K1, P1 a P2 a dále kategorii KB, která sestává z P3 a P4 (Kx značí kategorii a Px položku). Nově vznikající kategorie KC může mít definici KB, P5 a P6, ale již ne KA, P5 a P6 (vznikla by 3. úroveň kategorií).
4.2.4
Geografické objekty a Trasy
Zde se nám konečně snoubí interní slovník se správcem kategorií. Ukládání geografických objektů je stejné jako u slovníku (název, jazyk a odkaz na originální verzi), tedy i zde využíváme rozhraní Překladatelné. Vzhledem k tomu, že správce kategorií již operuje nad slovníkem, kategorizované informace se vyplní pouze jednou (v jakékoli mutaci), a poté se překládají tak, aby korespondovaly s jazykem geografického objektu/trasy. Jazykově závislé (tedy vyplňované v každé mutaci) jsou položky Čeho lze využít, Na co si dát pozor a obecný popis. Jak bylo zmíněno ve 3. kapitole, vzhledem k výkonu aplikace je nezbytný nějaký způsob cachování. Cachujeme nadvakrát – kategorizované informace a právě jazykově závislé položky (u nich je cache zároveň jediným uložením dat). Při potvrzení změny v turistickém průvodci se vytvoří cache kategorizovaných informací ve všech jazycích, ve kterých již cache je (aktualizace informací). Dále dojde k přepsání, resp. vytvoření, cache jazykově závislých položek. Při skládání stránky se načte existující cache kategorií v některém z preferovaných jazyků (resp. se vytvoří, pokud zatím neexistuje) a dále se připojí jazykově závislé cache ve všech jazycích, jimiž uživatel plynně hovoří. Položky závislé na převodníku se i do nacachovaného souboru načítají až při vytváření stránky, tedy jsou vyjmuty z cache (opět z kapacitních důvodů – cca 20 jazyků * 3 různé jednotkové systémy * cca 40 měn = 2 400 souborů). Aktuální verze aplikace se celkem striktně drží editačních práv. Naprostou většinu možností na obohacení turistického průvodce mají tedy pouze správcové oblastí. Jedno z možných rozšíření aplikace je tedy jakýsi jednoduchý verzovací systém, který si bude uchovávat poslední schválenou verzi článku a dále aktuální (jakýmkoli uživatelem/návštěvníkem) upravenou verzi. Zájemce o článek si poté bude moci vybrat, které verzi dá přednost. Geografický objekt sice může mít rodičů více, ale v naprosté většině případů bude pouze jeden. Byla tedy snaha promítnout geografické uspořádání i do umístění průvodce na webu. Jinými slovy vytvořit URL adresy článků lepší než guide.php?id=456. Při vytvoření geografického objektu se mu tedy vytvoří složka jako podsložka některého z rodičů a všechny relevantní 56
4.3. Správce vzhledu soubory se ukládají do této složky. Název složky vychází z názvu geografického objektu, ale vzhledem k tomu, že tento se může později změnit, je název složky uložen do databáze. Složka by sice šla přejmenovat, ale vyžádalo by si to rekurzivní změnu všech odkazů (v cachovaných souborech), takže od tohoto řešení bylo ustoupeno. Dopravní průvodce má prozatím URL adresy dle identifikátorů (ještě nejasnější příslušnost – start a cíl, potenciálně s více rodiči).
4.2.5
Rady
Pro potřeby této komponenty je postačující cokoli na bázi diskuzního panelu nebo návštěvní knihy. Jediná nutnost navíc je to, že jednotlivá vlákna znají svou příslušnost ke geografickému objektu nebo trase a jazyk, ve kterém byly napsány.
4.3
Správce vzhledu
Tato součást vznikla lehce „nadplán“ a nejedná se o nic jiného, než o „uživatelskou vychytávku“. Bylo využito existujícího geografického uspořádání – tedy toho, že u každého článku vím, o jaké oblasti si právě uživatel čte. Myšlenka byla taková, že mohu vzhled stránky přizpůsobit rázu oblasti (např. Rio de Janeiro může hýřit všemi barvami nejen na karnevalu, ale i na webu). Tím uživateli poskytnu více pocitovou informaci (což při černém textu na bílém pozadí nedokážu). Logo webu bylo navrženo tak, aby pojmulo dvě fotografie typické pro danou oblast. Ty mohou k dané oblasti vložit její specialisté stejně tak, jako tři barvy, které se použijí v grafické úpravě článku i zbytku webu. Vlastní vzhled mohou mít první tři úrovně geografického uspořádání. Každý článek přebírá vzhled nejbližší nadřazené oblasti, která jej má definovaný. Samozřejmostí jsou různá barevná provedení loga, aby bylo možné zajistit dobrou „čitelnost“. Jedinou nevýhodou je, že tím vyvstává další požadavek na specialistu oblasti – alespoň základní grafické cítění.
4.4
Výhled do budoucna
Z komponenty Turistického průvodce nebyla do prototypu zahrnuta hodnotící část, cestopisy a okruhy. Dále prozatím nebyla implementována komponenta Vytěžování dat z průvodce – tedy kalkulačka nákladů a generování itinerářů cest. Bude-li o projekt zájem, bude vývoj primárně pokračovat těmito součástmi dle jejich specifikace uvedené v této práci. 57
Kapitola
Testování prototypu Bylo provedeno testování dvojího druhu. Za prvé, že se aplikace chová tak, jak má. Za druhé, že uživatelům přináší to, co bylo jejím cílem.
5.1
Testování správnosti algoritmů
K testování byl využit automatický nástroj Selenium IDE[10]. Ukázkové provedení testu je možné vidět na obrázku 5.1.
5.2
Testování použitelnosti
Vzhledem k dosavadnímu rozsahu prototypu byl sestaven pouze jednoduchý průzkum. Jeho hlavním cílem bylo zjistit, zda: • navigace na webu je pro uživatele intuitivní • uživatelé si jsou vědomi možností preferencí • uživatelé si jsou vědomi relevance zobrazených informací • požadované informace jsou na webu rychle dohledatelné Vzhledem k tomu, že test si kladl za cíl prozkoumat pouze kritické koncepty turistického průvodce, byla uživatelům předložena verze s minimální grafickou úpravou. Jak v ní vypadal článek o České republice je znázorněno na obrázku A.8. Respondenti byli o této skutečnosti informováni. Taktéž jim bylo sděleno, že aplikace obsahuje pouze vzorová data. 59
5
5. Testování prototypu
Obrázek 5.1: Test správnosti vytvářených odkazů v turistickém průvodci
5.2.1
Podmínky testu
Byla snaha co nejvíce přizpůsobit testovací prostředí situaci reálného návštěvníka webu. Dotazník byl respondentům (rodilí občané České republiky) zaslán e-mailem. Oni jej vyplňovali samostatně (bez možnosti dopomoci) na vlastním počítači. Výběr respondentů se snažil být co nejširší a co nejvíce pokrýt spektrum uživatelů. Mezi respondenty se vyskytli administrativní pracovníci, obchodní referenti, manažeři, IT pracovníci a zdravotničtí pracovníci.
5.2.2
Zadání
Uživatelé obdrželi pokyny k vypracování a seznam úkolů. Pokyny k vyplnění
1. Nepřeskakujte, prosím! Jednotlivé kroky průzkumu sledují určitou návaznost, proto je důležité, abyste postupovali tak, jak je 60
5.2. Testování použitelnosti uvedeno. 2. Na otázku „Kolik je hodin?“ odpovídejte, prosím, vždy dle aktuálního času (stačí minuty). 3. Nevyužívejte nic, kromě zkoumaného webu. Zapomeňte na Vaše znalosti, nevyužívejte jiné weby. 4. Chovejte se přirozeně. Pokud Vám nějaký úkol bude trvat déle, než jste nad jeho řešením ochotni strávit, napište místo řešení poznámku a pokračujte. V reálném životě také z webu, který do určité doby neposkytne Vámi hledané informace, odcházíte. Úkoly
1. Otevřete si v prohlížeči stránku http://cajkram.cz/travel 2. Pokud chcete udělat něco, co Vás „praštilo do očí“, udělejte to. 3. Kolik je hodin? 4. Napište jakékoli 3 oblasti České republiky. 5. Kolik je hodin? 6. Má přijet Váš známý z Ameriky, který je fanda do horské turistiky. Chcete si pro něj zjistit, kolik měří nejvyšší bod České republiky. Údaj v metrech mu ale mnoho neřekne, potřebovali byste údaj ve stopách, yardech nebo něčem podobném. 7. Kolik je hodin? 8. Pročtěte si (zběžně) článek o České republice. Minimalizujte nebo zavřete prohlížeč. 9. Aniž byste znovu otevírali prohlížeč — můžete tomu, co jste se o České republice dozvěděli, věřit? Ať odpovíte ano či ne, napište, prosím, i zdůvodnění. 10. Ohodnoťte, prosím, následující kritéria (známkami jako ve škole): • Přehlednost webu • Navigace na webu • Prvky zvyšující komfort uživatele • Vaše celková spokojenost s webem 61
5. Testování prototypu 5.2.2.1
Smysl otázek
Bod č. 2 dává prostor pro přizpůsobení si webu dle preferencí (hlavně zvolení jazyka). Otázka č. 4 testuje schopnost pohybu po webu (pochopení navigace). Úkol č. 6 zkoumá intuitivnost využití převodníku a sekundárně i orientaci v kategorizovaných informacích. Body č. 8 a 9 mají za cíl zjistit, zda si uživatelé všimli, že informace jsou označeny jako ověřené.
5.2.3
Vyhodnocení
Průzkumu se zúčastnilo 8 respondentů. Vyhodnocení proběhne bez ohledu na individuální informace o respondentech. Cílem aplikace je být univerzální a ne, že pouze určitá skupina uživatelů si ví rady, jak ji využívat. Autentické odpovědi respondentů jsou v tabulce 5.1. Nikdo nevyužil práva vynechat otázku pro přílišnou časovou náročnost (v individuálním pojetí). Oblasti České republiky nalezlo 7 respondentů, 1 porušil pokyny. Šestkrát byly uvedeny v češtině, jedenkrát v angličtině. Vzhledem k tomu, že respondenti nebyli požádáni o zobrazení webu v české mutaci, nelze říci, zda uživatel angličtinu nepreferoval. Z časového hlediska tento úkol trval průměrně 1:45 (modus 1:00, medián 1:30) – i včetně zaznamenání výsledku. Vzhledem k tomu, že se jednalo o první kontakt respondentů s webem, považuji tento výsledek za více než uspokojivý. Navigace webu dle tohoto testu nečiní uživatelům problémy. Výšku Sněžky (tedy nejvyšší bod České republiky) v americkém měrném systému nalezlo všech 8 respondentů. Průměrně nad tím uživatelé strávili 2:00 (modus 1:00, medián 1:00; vynecháno č. 4 – viz. dále). Ze zadání bylo jasné, že na webu nějaká možnost konverze existuje. Z předchozího odstavce je zřejmé, že uživatelé již byli na stránce o České republice. Čas tedy odpovídá vyhledání preferovaných jednotek v levém panelu a vyhledání položky nejvyšší bod v pravém panelu. Do komentářů uživatelé uváděli, že hledali článek o Krkonoších (tedy porušení pokynu č. 3). Dvě potřebná hledání se tím rozšířila na tři, a tudíž strávený čas je opět příznivý. Dle testu se tedy zdá, že při drobném upozornění na komponentu převodník nebude uživatelům její používání činit problémy. Ověřenost informací taktéž zpracovalo všech 8 respondentů stejně – tentokrát stejně špatně. Část porovnala uvedené informace s jejich znalostmi a část očekávala několik odstavců textu a jinak odmítla považovat prezentované informace za článek. Ovšem na webu uvedenou informaci (ihned pod nadpisem; nadto jedinou graficky zvýrazněnou barevným pozadím) nezmínil nikdo. Dostali jsme se tedy do lehce paradoxní situace. Spoustě webů ana62
5.2. Testování použitelnosti lyzovaných v 2. kapitole bylo vytknuto, že není uvedena žádná informace o důvěryhodnosti. A když webová aplikace tuto informaci poskytuje, stejně je očividně k ničemu. Část věří jen proto, že si to přečetli na webu, a část nevěří, i přesto, že web uvede informace jako ověřené. Na závěr krátká poznámka k respondentu č. 4 (vycházející z jeho vlastních poznámek k řešení). V bodě č. 6 si nejdříve zvolil preferované jednotky jako americké a začal hledat Krkonoše. Tím, že je neviděl, uvažoval, že jsou dostupné pouze po přihlášení, tedy se zaregistroval. Poté si uvědomil, že neví, že má hledat v Krkonoších, a podíval se podrobněji na článek o České republice. Tolik k vysvětlení času mezi úkoly. Z poznámek tohoto respondenta si však můžeme odnést i několik jeho připomínek/námětů k zamyšlení: • vybírat preferovaný jazyk automaticky na základě IP adresy/prohlížeče • pastelově podbarvit kategorizované informace, celkově více zvýraznit, co je důležité • místo názvů jazyků používat vlaječky států Podbarvení spadá do grafické úpravy, která byla takováto záměrná. Preference byly diskutovány již ve 4. kapitole v sekci o Uživatelských účtech. Asi bude vhodné přehodnotit stanovisko. Uživatelů doma/v zaměstnání (tedy těch, co automatický výběr ocení) bude více než těch, kteří na poslední chvíli shání informace na letišti. Zároveň ale řešení přes session pro neregistrované uživatele zůstane nezměněno; uchování preferencí bude benefit po registraci. Například monitorování chování uživatelů je jednodušší u registrovaného (je identifikován). Tedy v zájmu aplikace je mít co největší procento uživatelů registrovaných. Motivací budiž i tyto drobné benefity registrace. Nápad na vlajky měl autor také. Bohužel reálná situace je taková, že jedna země nerovná se jeden jazyk (ani naopak). Anglicky se mluví ve Velké Británii, Spojených státech amerických a spoustě dalších zemí – a která vlajka je tedy vhodnější? Z tohoto důvodu aplikace prozatím setrvá ve stávajícím řešení.
5.2.3.1
. . . a z hlediska uživatelů
Nyní se podívejme na vlastní hodnocení uživatelů (viz. tabulka 5.2). V úvodu lze říci, že všechny známky po zpracování jsou nadprůměrné, což je pro autora rozhodně potěšující informace. 63
5. Testování prototypu
Respondent 1 2 3 4 5 6 7 8 Respondent 1 2 3 4 5 6 7 8 Respondent 1 2
Čas* 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Čas* 0.05 0.00 0.01 0.01 0.01 0.02 0.03 0.01 Čas* 0.12 0.01
3 4
0.02 sto let pote
5 6 7 8
0.01 0.03 0.05 0.03
Oblasti ČR Morava, Východní Čechy, Slezsko Morava, Slezsko, východní Čechy Praha, Západní Čechy, Východní Čechy pomyslne vypisuju Vlašimsko, Třeboňsko, Plzeňsko Morava, Slezsko, Východní Čechy morava, slezsko, východní čechy Eastern Bohemia, MOravia, Silesia Sněžka 1751.97 yd 1751,97 yd 1751.97 yd 1751.97 yd 1751.97 yd 1751.97 yd 1751.97 yd 1751.97 yd Ověření článek jsem nenašel ano, u vlaků pouze částečně, naposledy jely i ČD načas ano, věřím, protože žiju v této realitě na zaklade ceho mam verit napsanym informacim? ne, na webu zatím nic není ano, přidala bych ještě dobré pivo ano, věřím tomu Bez komentáře. Skoro nic tam není
Tabulka 5.1: Odpovědi respondentů v testu použitelnosti (* normalizováno – čas z úkolu č. 3 se stal časem 0.00)
64
5.2. Testování použitelnosti Největší spokojenost je s navigací na webu. Myšlenka byla, že s dobrou navigací se web obejde i bez obligátního vyhledávacího formuláře. Tento předpoklad se potvrdil, uživatelům přijde postupné proklikávání se „geografickým stromem“ lepší než chvalitebné. Další lepší než chvalitebné hodnocení obdržela přehlednost webu. Zde je nutno podotknout, že je možné, že tomuto faktu napomohla bezděčná podobnost rozložení webu s internetovou encyklopedií Wikipedia. Vlevo je nabídka dalších možností, uprostřed textové informace oddělené hlavičkami a vpravo tabulka kategorizovaných informací. Vzhledem k pozici Wikipedie mezi celosvětově používanými weby4 lze předpokládat, že uživatelé ji znají. Dále je pravda, že uživatelům bylo prezentováno pouze několik vzorových dat. Rozšíření článku o další kategorie, přidání modulů 3. stran a další prvky budou přehlednost snižovat. I z tohoto důvodu se aplikace chystá u některých součástí zobrazit pouze nadpis a zbylý obsah až po rozkliknutí. Tento koncept byl v testovaném článku předveden na modulu dopravního průvodce. Tím vyvstala možnost, že uživatelé tento koncept zahrnuli do svého hodnocení přehlednosti, a že tudíž toto nebude dalšími moduly dotčeno. U hodnocení komfortu se již dostáváme pod známku 2- (bereme-li ono minus jako o čtvrt horší stupeň). Toto hodnocení je s největší pravděpodobností nutno přičítat absenci grafické úpravy. Uživatelé sice byli informováni, že minimální grafické zásahy byly záměrné, ale při dotazu na svůj komfort se prostě upřímně vyjádřili, že se na to nedá koukat. Na ten samý problém narážíme u hodnocení celkové spokojenosti. Všichni uživatelé, kteří dali známku horší než 3, se vyjádřili ve smyslu, že „na webu nic není“, tedy žádný obsah. Nejhorší známka (od č. 8) je jedním dechem doprovázena pochvalou převodníku a jazykových mutací. Toto byly jedny z hlavních testovaných součástí, tedy hodnocení tohoto respondenta je de facto nutno zařadit mezi ta nejlepší. Spokojenost s obsahem nebylo nutno testovat, za tu si vznikající aplikace může dát pětku sama, na to nepotřebuje 8 lidí. Odmyslíme-li tento fakt, pak i toto hodnocení je pro web příznivé.
4
Na jaře 2013 probíhala kampaň za získání dotací, kde o sobě tento web tvrdil, že je 5. nejpoužívanějším na světě.
65
Respondent
Přehlednost
Navigace
Komfort
Spokojenost
5. Testování prototypu
1 2 3 4 5 6 7 8
3 2 1 2 2+ 1 2
2 1 2 3 12 1
3 2 3 3 1 2 2
3 2+ 2 3 2 4-
Průměr
1.82
1.75
2.29
2.67
Vepsaný komentář
na webu zatím nic není
nic tam není; ale líbí se mi ten přepínač jazyka a metrické soustavy x- = x.25; x+ = (x-1).75
Tabulka 5.2: Oznámkování prototypu respondenty
66
Závěr Před námi je již pouze závěrečné zhodnocení, kam se nám nezávislé cestování posunulo? Na začátku jsme věděli, kdo je nezávislý cestovatel, a odhadovali, s jakými problémy se může potýkat. Prvním úkolem bylo zjistit, co by náš nezávislý cestovatel potřeboval a co by ocenil. Byl sestaven dotazník, který předkládal některé z možných návrhů, ale zároveň dával dostatečný prostor individuálnímu vyjádření. Pomyslné medaile byly rozděleny mezi turistického průvodce, dopravního průvodce a takzvaný generátor itinerářů. U turistického průvodce si nadto srdce cestovatelů získala součást pracovně nazvaná „tipy a triky“. Tedy všemožné „vychytávky“, jak se na cestách vyhnout nepříjemným situacím, či naopak, jak si cesty více zpříjemnit. Co má umět generátor itinerářů zase nejlépe vystihuje jeho popis v dotazníku – chci jet do Francie a řekni mi, co tam. Jinými slovy, uživatel si nakliká parametry dovolené (délku, cenu, destinaci, atd.) a dobrá víla vtělená do webové aplikace mu vypíše přehlednou tabulku s tím, co podniknout v jednotlivých dnech. Již víme, co chtějí cestovatelé. Ale neexistuje to již někde? Nedošlo by pouze k objevu Ameriky o šest století později? Vyvstává nám tudíž druhý úkol – prozkoumat, co nabízí současné weby. Cestovatelé měli pravdu – sehnat levné letenky v balíčku s půjčením auta a ubytováním v luxusním hotelu a ještě získat 10% bonus na další dovolenou nabízí kde kdo. Ale turistický průvodce? Některý vydává informace z roku 2009 za včerejší zprávy. Většina zaměstná procesor Googlu na plné obrátky (nebo návštěvníka na celý večer) než nějakou informaci poskytne. Některý obsahuje víc reklamy než textu. Většině informace přinesl asi Ježíšek. Vidíme tedy, že vytvářet turistického průvodce má smysl. Generování itinerářů má smysl samozřejmě také, ale nejdříve musí existovat průvodce. Co ale udělat pro to, abychom neskončili jako další v řadě těch, co nemají valné využití. Záležitostí k ošetření je dost, proberme si je postupně: • Informace nenosí ani děda Mráz – necháme-li uživatele volně měnit obsah, dříve nebo později někam některý z nich protlačí svůj názor na úkor „objektivní pravdy“. Důsledky jsou zřejmé. Je tedy důležité, 67
Závěr aby informace byla doprovázena údajem o tom, na kolik je pravdivá. Blížící se pravdě může být pro to, že určitý počet uživatelů s ní souhlasí. Blížící se pravdě může být pro to, že někdo erudovaný v oboru tak řekl. Řekl-li tak ale před pěti lety, opět již můžeme být s pravdivostí na štíru. Pravidlo č. 1: Mezi uživateli vybrat ty erudované a těm přidat možnost označit článek za pravdivý. Pravidlo č. 2: Mít v rámci průvodce hodnocení a po dosažení určitého skóre z toho vyvodit patřičné závěry. Pravidlo č. 3: Nebyl-li článek upraven v poslední době, zobrazit upozornění, že může být zastaralý. Není cílem považovat uživatele a priori za lháře. Cílem je upozornit na stav, v jakém se článek nachází, aby návštěvník byl informován o případných rizicích. • Uspořádání informací (globálně) – vždyť je to tak jednoduché a vycházející i z každodenního života. Na obyčejnou poštovní adresu napíšu ulici, číslo popisné, město – ve spodní části identifikuji větším celkem a směrem nahoru zpřesňuji. Všichni žijeme na Zemi, která již za nás byla rozdělena na světadíly. Ty na státy. A tak dále. Držme se tedy tohoto rozdělení i v průvodci. Nemějme článek o Londýnu na poušti, mějme článek o Londýnu v Anglii, která je ve Velké Británii a ta v Evropě. Pravidlo č. 4: Zařadit každý prvek jako součást jiného prvku (nebo klidně i prvků – Beskydy jsou pohořím v České republice, ale i pohořím v Karpatech). • Uspořádání informací (lokálně) – geografie rozlišuje různé typy objektů – města, pohoří, rybníky, . . . A proč? Protože prvky se shodným označením mají některé shodné vlastnosti a shodné atributy. Každý rybník je vodní plocha založená člověkem a o každém rybníku jsme schopni zjistit, jakou má plochu vodní hladiny. Proč tedy vždy vypisovat tyto informace do sáhodlouhých odstavců, když stačí, aby jeden člověk připravil tabulku a do ní se pak vždy vyplnily informace dle konkrétního stavu. Další výhoda: když uživatel ví, že počet obyvatel je třetí kolonka vpravo, vždy si ji hned pohodlně najde a ostatní obsah jej vůbec nemusí zdržovat. Pravidlo č. 5: Každému prvku přiřadit, jakých je typů. Pravidlo č. 6: Pro každý typ připravit seznam relevantních informací a většinu údajů prezentovat jeho pomocí. 68
• Nemluvím anglicky – ano, i takoví uživatelé existují. A my máme průvodce, kde většina informací je uložena ve slovních spojeních (jako hodnota nějaké položky u typu prvku). Když tato spojení přeložím, jsem schopen naprostou většinu informací prezentovat v jiném jazyce. Zároveň mě to bude stát pouze jeden překlad, ne úpravu na tisíci místech. Pravidlo č. 7: uchovávat si slovník a informace vkládat jako odkazy do něj, aby je poté bylo možno libovolně překládat a zobrazovat v různých jazycích. • Anglicky sice mluvím, ale to neznamená, že kilometry počítám v mílích – nejeví se to už jako třešnička na dortu? Mám informace rozdělené do kategorií, tedy vím, že tato položka obsahuje vzdálenost. Mám odkazy do slovníku, tedy vím, že ta vzdálenost je ve stopách. To už mi stojí za to, abych jednou investoval pět minut svého času k nalezení kolik stop je 1 metr a přes trojčlenku dopočítal výsledek. Pravidlo č. 8: Sepsat převodník a uživateli zobrazovat data v jednotkách, jakým rozumí. Totéž nechť platí i pro měny. Tím bychom měli požadavky na průvodce. Jsme schopni je splnit? V assembleru by to bylo na pováženou, ale s využitím vyšších programovacích jazyků by to neměl být příliš velký problém. Obohaťme tedy náš jednoduchý koncept o programátorské zásady znovupoužitelnosti, udržovatelnosti, atd. Systém byl rozdělen na několik komponent. Jejich vzájemná nezávislost byla podpořena definováním rozhraní, které soustřeďuje funkčnost požadovanou zbytkem aplikace. Dále aplikace využívá několik prvků, které mají pozitivní vliv na výkon. Za prvé, odložená inicializace (vytvářím, až když přijde požadavek na použití). Za druhé, pole odkazů na již vytvořené objekty (příklad za všechny – slova ve slovníku; jedno můžu chtít třikrát, podruhé a potřetí již ale můžu vrátit vytvořenou instanci). Stejně tak aplikace využívá několika návrhových vzorů. Konkrétně například varianta Stromu pro realizaci onoho geografického zařazení jednotlivých prvků průvodce. Komfortní vytváření kategorií informací pro jednotlivé prvky průvodce bylo podpořeno definováním 4 různých položek. První z nich je výběr přípustných hodnot z předem definované množiny. Druhá je číselná hodnota ze zadaného rozsahu, volitelně doplněná o jednotku (zde nachází převodník své největší uplatnění). Třetí je otázka s odpovědí ano nebo ne. Poslední je mezinárodní položka, kterou není nutno překládat (například URL adresa). Nadto bylo ukázáno, že je možné tyto položky nadále rozšiřovat, například 69
Závěr URL adresu o výpis ve formě odkazu. Samozřejmostí je možnost sestavit kategorii s využitím jiné, již existující kategorie. Možná se začíná zdát, že turistický průvodce je krok od dokonalosti, ale v osobním měřítku nelze úspěšnost aplikace posoudit. Prototyp se zaměřil na většinu klíčových konceptů (stromová struktura=jednoduchá navigace, kategorizace informací, snadná překladatelnost, převodník, ověřenost informací). Posledním úkolem tedy bylo jejich uživatelské otestování. Koncepty vycházely z nedostatků současných průvodců, pokud je tedy aplikace dobře vyřešila, svítá naděje na dobrého průvodce. Respondenti v testu použitelnosti neměli problém s navigací na webu (při absenci vyhledávacího formuláře). Kategorizované informace jim také přišly přehledné a použití převodníku (resp. zvolení preferovaných jednotek) jednoduché. Speciálně převodník a jazykové mutace získaly kladnou odezvu. Žádný z respondentů si nevšiml údaje o tom, že prezentované informace jsou ověřené. Tento údaj byl jako jediný barevně zvýrazněný. Vysvětlení lze hledat buď v tom, že uživatelé automaticky přeskakují vše, co se jeví jako upozornění, nebo jim k tomu, aby uvěřili, stačí, že informace byla napsána. Bylo by tedy vhodné provést hlubší prozkoumání tohoto konceptu a buď jej přepracovat nebo úplně vypustit z aplikace. Na základě testu použitelnosti jsou klíčové koncepty průvodce přibližně z 85% úspěšné. Jak tedy finálně zhodnotit aplikaci? Šablona pro hodnocení webových aplikací byla vytvořena pro potřeby analýzy současných webů. Pojďme si měřit stejným metrem a podívat se na prototyp jejíma očima. Či lépe řečeno na možnosti prototypu, protože je asi jasné, že hodnocení prototypu by dopadlo nevalně. • Záběr – aplikace je připravena obsáhnout celý svět v mnoha úrovních přiblížení. Pro zvládnutí následného náporu uživatelů bylo jako první krok implementováno cachování turistického průvodce. • User-friendly prvky – převodník fyzikálních veličin a cen dle preferovaných jednotek a měny. Skrytí obsahu položek, u kterých se očekává menší využívání a jejich zobrazení na požádání. Bez reklam. Editační prostředí využívá ovládání prosazované mnoha aplikacemi („plus“ pro přidání obsahu a „křížek“ pro zrušení). • Přesnost – kategorie napomáhají tomu, aby zobrazené informace byly relevantní k tématu. • Uživatelská hodnocení – realizace komponenty odložena. 70
• Jazyková přívětivost – připraveno pro podporu libovolného počtu jazyků. Strojové překlady nevyužívány. • Doprovodná dokumentace – do loga webu lze vložit dvě fotografie z dané oblasti. • Nutný strávený čas – web je založen na navigaci přes geografické celky – tedy cesta k městu vede přes světadíl, stát a případně region. • Pravdivost údajů – články zobrazují, zda jsou nebo nejsou ověřené (profily ověřovatelů nebyly realizovány). V případě stáří většího než 6 měsíců se zobrazí i upozornění na tuto skutečnost. • Cena – web je přístupný zdarma, bez dodatečných benefitů pro návštěvníky. Počítá se se spuštěním možnosti uživatelských darů s tím, že výtěžek bude pravidelně rozdělován mezi nejpilnější přispěvovatele. Takže co v rámci práce vzniklo? Aplikace, kde si každý přijde na své a kde každý může přispět svou troškou do mlýna. Přijde člověk zcestovalý a ve svém rodném jazyce a jednotkách, na které je zvyklý, vloží informace do turistického průvodce. Přijde člověk obdařený schopností hovořit pěti jazyky a přidá překlady do slovníku. Přijde návštěvník unavený po práci a aplikace mu nabídne informace co nejvíce přizpůsobené tomu, na co je zvyklý, aby se musel co nejméně soustředit.
71
Literatura [1] Booking.com: 268.121 hotelů po celém světě. Rezervujte hotel hned! [cit. 2012-12-09]. Dostupné z: http://booking.com [2] Currency Converter - Google Finance. [cit. 2013-04-15]. Dostupné z: https://www.google.com/finance/converter [3] Dovolená 2013, First minute 2013 I STUDENT AGENCY | Dovolena.cz. [cit. 2013-01-23]. Dostupné z: http://dovolena.cz [4] Expedia Travel: Vacations, Cheap Flights, Airline Tickets & Airfares. [cit. 2013-01-23]. Dostupné z: http://expedia.com [5] ISO 639 Code Tables. [cit. 2013-04-07]. Dostupné z: http://www-01. sil.org/iso639-3/codes.asp?order=639_1&letter=%25 [6] Lonely Planet Travel Guides and Travel Information. [cit. 2013-01-25]. Dostupné z: http://lonelyplanet.com [7] Main Page - Wikitravel. [cit. 2013-01-25]. Dostupné z: http:// wikitravel.org [8] Orbitz Travel: Airline Tickets, Cheap Hotels, Car Rentals, Vacations & Cruises. [cit. 2013-01-19]. Dostupné z: http://orbitz.com [9] PHP: Hypertext Preprocessor. [cit. 2013-04-10]. Dostupné z: http: //www.php.net/ [10] Selenium - Web Browser Automation. [cit. 2013-04-30]. Dostupné z: http://docs.seleniumhq.org/ [11] Greifová, P.; Smolová, K.: HedvabnaStezka.cz - cestování, poznávání, dobrodružství. [cit. 2013-01-26]. Dostupné z: http://hedvabnastezka.cz [12] Pecinovský, R.: Návrhové vzory. Computer press, 2007. 73
Literatura [13] Richta, K.: Metodiky vývoje software, MDA. [cit. 2013-04-18]. Dostupné z: https://edux.fit.cvut.cz/oppa/BI-SI1/prednasky/ BI-SI1-P10m.pdf [14] Rowlett, R.: Units of Measurement. [cit. 2013-04-15]. Dostupné z: http://www.unc.edu/~rowlett/units/ [15] Zítek, P.: Řecko v detailech. [cit. 2013-01-19]. Dostupné z: http:// reckovdetailech.cz [16] Škaloudová, A.: Konstrukce dotazníku. [cit. 2013-03-09]. Dostupné z: http://www.pedf.cuni.cz/~www_kpsp/studentum/skaloudova/ dotaznik.doc
74
Příloha
Doplňující obrázky
Obrázek A.1: Rozložení respondentů dle pohlaví a věku
75
A
A. Doplňující obrázky
Obrázek A.2: Rozložení respondentů dle „cestovatelské kategorie“
76
Obrázek A.3: Rozložení respondentů dle pohlaví a věku v jednotlivých kategoriích
77
A. Doplňující obrázky
Obrázek A.4: Kde všude může na booking.com být hotel v Jaroměři
78
[Nejprve vybíráte dny letů, . . . ]
[. . . abyste pak zjistili, že nejnižší cena se stejně zvýší]
Obrázek A.5: Měnící se cena letenek na orbitz.com
79
A. Doplňující obrázky
80
Obrázek A.6: Cesta k tomu, co hotel nabízí, je na orbitz.com dlouhá
Obrázek A.7: Učitelé zeměpisu by si dle dovolena.cz měli opravit znalosti o Evropě
81
A. Doplňující obrázky
Obrázek A.8: Stav aplikace při testu použitelnosti 82
Obrázek A.9: Ukázka z prototypu webové aplikace - editační prostředí správce kategorií 83
A. Doplňující obrázky
Obrázek A.10: Ukázka z prototypu webové aplikace - článek o geografickém objektu (s upraveným vzhledem pomocí Správce vzhledu) 84
Obrázek A.11: Ukázka z prototypu webové aplikace - tentýž článek po změně preferencí jazyka a měrných jednotek 85
Příloha
Slovníček pojmů a seznam zkratek • banner – plocha na webu, která zobrazuje reklamu • cache – mezipaměť; zde použito hlavně ve významu uložení složitě vytvářeného souboru na pevný disk, což má za následek rychlejší zobrazení souboru (stačí jej načíst, není nutné jej vytvářet) • cookie – řešení persistentní komunikace mezi klientem a serverem prostřednictvím uložení informace v počítači klienta • CK – cestovní kancelář • CSS – Cascading Style Sheet • Geografický objekt – buď určitá oblast (stát, region, . . . ) nebo určité místo (sousoší, pláž, divadlo, . . . ) • HTML – HyperText MarkUp Language • HTTPS – Hypertext Transfer Protocol Secure • JavaScript – jazyk pro dynamickou úpravu Webů na straně klienta • MVC – návrhový vzor Model – Pohled – Ovládání (Model – View – Controller) • PHP – PHP: Hypertext Preprocessor a.k.a. Personal Home Page • session – krátkodobé řešení persistentní komunikace mezi klientem a serverem prostřednictvím uložení informace v mezipaměti serveru 87
B
B. Slovníček pojmů a seznam zkratek • SQL – Structured Query Language • Stránka – jeden dokument Webu • Trasa – spojnice (s využitím určitého dopravního prostředku) dvou Geografických objektů • URL – Uniform Resource Locator • USA – Spojené státy americké • Web(ová aplikace) – soubor dokumentů soustředěných pod jednou doménou 2. nebo 3. řádu
88
Příloha
Obsah přiloženého CD • kapitola-1 . . . doplňující soubory k 1. kapitole – vyhodnoceni-dotazniku.pdf . . . agregované výsledku dotazníku s uvedením všech výsledných hodnot • kapitola-3 . . . doplňující soubory ke 3. kapitole – create-database.sql . . . skript pro vytvoření databáze dle prezentovaného návrhu • travel . . . zdrojové kódy prototypu webové aplikace – _clip . . . obrázky – _css . . . soubory stylů – _js . . . JavaScriptové soubory – _lib . . . definice PHP tříd – travel-guide . . . PHP soubory komponenty Turistický průvodce – users . . . PHP soubory komponenty Uživatelské účty – index.php . . . úvodní strana – readme.txt . . . informace k testování prototypu • zaverecna-prace . . . soubory k textu této práce – BP_Vanicek_David_2013.pdf . . . pdf verze tohoto textu – BP_Vanicek_David_2013.tex . . . zdrojový soubor textu práce – obrázky . . . obrázky z textu v původním rozlišení; dělené dle kapitol
89
C