VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA
WEBOVÝ SYSTÉM PRO SLEDOVÁNÍ SPORTOVNÍCH VÝKONŮ WEB BASED SYSTEM FOR SPORT PERFORMANCE MONITORING
BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS
AUTOR PRÁCE
KAREL PÍČ
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2016
Ing. IGOR SZŐKE, Ph.D.
Abstrakt Tato práce dala za vznik webovému tréninkovému deníku pro sportovce a trenéry v běhu na lyžích. V současné podobě je deník veden v tabulkách Microsoft Excel se specifickou strukturou. Deník ve formátu Microsoft Excel používají všechny kluby běžeckého lyžování v České republice. Jeho výstupem je velké množství číselných hodnot, sloužící k hodnocení sportovcova úsilí. Cílem mého sportovního deníku je usnadnit komunikaci mezi trenéry a sportovci, převést deník ve formátu Microsoft Excel do webové podoby pro jednodušší přístup. Dále vytvářet z číselných hodnot, které se stávají v tabulkách nepřehledné, různé statistiky ve formě grafů a souhrnů pro zvýšení výkonu a zlepšení tréninkového procesu. Sportovci k vyplnění jednoho tréninku stačí několik kliknutí a hned se jim výsledek promítne do jejich grafického shrnutí.
Abstract This work create web training diary for trainers and athletes in cross-country skiing. Currently diary is in Microsoft Excel tables with specific structure. Diary in Microsoft Excel format is used by every cross-country skiing team in Czech Republic. Its output consists of a large amount of numbers which are used for an evaluation of an sportman’s effort. My sports diary should facilitate the comunications among trainers and athletes by converting the diary in Microsoft Excel format into web interface as quick access. It should also generate different kinds of statistics as graphs and summaries from numerical values which are unclear to improve training performance and process. Athletes would need to fill in only some data by a few clicks to get their graphical summary.
Klíčová slova Sportovní deník, tréninkový deník, správa tréninku, zpracování dat, grafy, spolupráce trenéra a sportovce, běh na lyžích.
Keywords Sports diary, training diary, training management, data processing, charts, cooperation trainer and athlete, cross-country skiing.
Citace PÍČ, Karel. Webový systém pro sledování sportovních výkonů. Brno, 2016. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. Vedoucí práce Szőke Igor.
Webový systém pro sledování sportovních výkonů Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana Ing. Igora Szőkeho, Ph.D. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. ....................... Karel Píč 18. května 2016
Poděkování Touto cestou bych rád poděkoval svému vedoucímu bakalářské práce, kterým je pan Ing. Igor Szőke, Ph.D., za cenné rady a připomínky. Dále sportovcům a trenérům oddílu Wikov SKI Skuhrov nad Bělou z.s. za pomoc při navrhování a ladění sportovního deníku.
c Karel Píč, 2016. ○ Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
Obsah 1 Úvod 1.1 Shrnutí cílových požadavků a sestavení plánu postupu . . . . . . . . . . . . 1.1.1 Cílové požadavky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Postup tvorby bakalářské práce . . . . . . . . . . . . . . . . . . . . .
3 3 4 4
2 Průzkum a získání podkladů pro práci 2.1 Konkurenční weby . . . . . . . . . . . 2.2 Dotazování se pracovní skupiny . . . . 2.2.1 Vyhodnocení dotazníku A . . . 2.2.2 Shrnutí . . . . . . . . . . . . .
. . . .
5 5 7 8 8
. . . .
. . . .
3 Návrh 3.1 Rozbor deníku ve formátu Microsoft Excel 3.2 Grafické modely - Mock-up . . . . . . . . 3.3 Případy užití - Use-case . . . . . . . . . . 3.4 Návrh databáze - ER diagram . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
9 9 10 11 12
4 Implementace 4.1 Aplikace rozdělena na 6 částí . . . . . . . . . 4.1.1 Osobní údaje . . . . . . . . . . . . . . 4.1.2 Plán . . . . . . . . . . . . . . . . . . . 4.1.3 Kalendář . . . . . . . . . . . . . . . . 4.1.4 Deník . . . . . . . . . . . . . . . . . . 4.1.5 Zprávy . . . . . . . . . . . . . . . . . . 4.1.6 Soubory . . . . . . . . . . . . . . . . . 4.2 Nástroje . . . . . . . . . . . . . . . . . . . . . 4.3 Proč byl použit Nette framework . . . . . . . 4.3.1 Model MVC . . . . . . . . . . . . . . . 4.3.2 Bezpečnost . . . . . . . . . . . . . . . 4.3.3 Správa rolí . . . . . . . . . . . . . . . 4.4 Konfigurační soubor . . . . . . . . . . . . . . 4.5 Konečné schéma základní funkčnosti aplikace
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
13 14 14 14 15 16 16 17 18 19 19 20 20 20 20
5 Nasazení a testování 5.1 Řešené problémy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Měření rychlosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Vyhodnocení dotazníku B . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 22 22 23
1
. . . .
6 Rozšíření 6.1 Možná spolupráce - Svaz lyžařů České republiky . . . . . . . . . . . . . . .
24 25
7 Závěr
26
Literatura
27
Přílohy Seznam příloh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28 29
A Obsah CD
30
B Plakát
31
C Dotazníky C.1 Vzor dotazníku A . . . . . . . . C.1.1 Odpovědi na dotazník A C.2 Vzor dotazníku B . . . . . . . . C.2.1 Odpovědi na dotazník B
. . . .
. . . .
. . . .
D Video
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
32 32 32 34 34 36
2
Kapitola 1
Úvod Tématem této bakalářské práce je webové rozhraní pro sportovce a trenéry v běhu na lyžích. Záměrem je zjednodušit komunikaci mezi sportovci a trenéry, uchovávat historii tréninků, zpráv, plánů, termínů událostí, ocenění, vyšetření apod. Stěžejní prvek mnou vyvíjené aplikace (označena jako sportovní deník1 ) je zpracování a konvertování tréninkového deníku ve formátu Microsoft Excel (dále jako deník Excel) do webové podoby a zpět. Deník Excel má specifickou strukturu a používají ho všechny běžecké oddíly v České Republice. Sportovci vybraní svazem lyžařů ČR mají povinnost tento deník zasílat nejen svému trenérovi, ale také na svaz lyžařů. Výstupem deníku Excel je velké množství číselných hodnot, sloužící k hodnocení tréninkového úsilí. Dále obsahuje i písemná data k jednotlivým tréninkům. V rámci této práce je zaměření a následné testování mířeno na jeden konkrétní oddíl Wikov SKI Skuhrov nad Bělou z.s. (dále jako domácí oddíl). Konkrétně to je 5 - 10 sportovců a 2 trenéři (dále jako pracovní skupina). Na strukturu webu je dotazovaná jak pracovní skupina, tak i nezávislé osoby, jako přátelé, spolužáci a ostatní. Já osobně se věnuji běhu na lyžích už 12. rokem, deník jsem si vedl 6 let, rok jsem byl zařazen do reprezentačního družstva České republiky a v současnosti třetím rokem působím jako trenér v domácím oddíle. Tudíž mám dostatek informací pro základ tvorby této aplikace. Výsledkem mé práce je aplikace se snahou o jednoduché rozhraní. Sportovec má veškeré potřebné věci týkající se daného sportu na jednom místě. Díky použití webového prostředí jsou informace dostupné odkudkoliv a pro všechny, nejsou proto žádné problémy s verzí programu Microsoft Excel, nebo se zapomenutím odeslání deníku. Sportovní deník vytváří z původního nepřehledného deníku Excel, dvě provázané tabulky (jedna s časovými hodnotami a druhá s textovými informacemi). Umožňuje v tabulkách vyhledávat jednotlivé záznamy a nabízí sportovci jen to, co potřebuje. Díky tomu je doba vyplnění jednoho tréninku do deníku zkrácena přibližně o 2 minuty. To je o dvě třetiny. Sportovní deník umožňuje trenérovi vidět kromě klasických deníků sportovců, také jejich statistiky ve formě grafů. Grafy jsou aktuální a čerpají z dat vložených sportovci. To pomáhá k lepšímu upravení tréninkového plánu, a tím ke zvýšení výkonnosti jednotlivých sportovců.
1.1
Shrnutí cílových požadavků a sestavení plánu postupu
Na začátku tvorby této práce bylo zapotřebí určit cílové požadavky mnou vyvíjené aplikace, a také určit, jak se bude postupovat při samotné tvorbě. Jak uvádí metodický dopis [2] 1
Mnou implementovaná aplikace http://www.sportdenik.eu
3
obecné a doplňkové tréninkové prostředky (sportovní aktivity), je nutné umožnit vložení těchto sportovních aktivit do této aplikace.
1.1.1
Cílové požadavky
Kromě zaměření se na tréninkový deník jsou cíle následující: ∙ Zjednodušit komunikaci mezi trenérem a sportovci ∙ Mít vše na jednom místě (výsledky, plán, deník, termíny, zprávy) ∙ Zjednodušit analýzu trenérům (porovnávání statistik sportovců) ∙ Umožnit sportovci stanovit si osobní cíle
1.1.2
Postup tvorby bakalářské práce
Tvorba sportovního deníku se bude řídit následujícími body: ∙ Průzkum konkurenčních/podobných webových stránek ∙ Stálé dotazování se pracovní skupiny a konzultování postupného vývoje (využití dotazníků - viz příloha C) ∙ Sestavení ER a use-case diagramu ∙ Postupný vývoj – Sestavení úvodního layoutu a zabezpečení (přihlašování) – Tvorba jednotlivých částí – Zaměření se na deník, rychlost načítání dat Po spuštění hotové práce a umístění na web bude zaměření směrováno na testování a reálné využívání jednotlivých služeb v rámci domácího oddílu.
4
Kapitola 2
Průzkum a získání podkladů pro práci Při získávání podkladů byla studována již existující řešení webových deníků. Jejich využití nelze uplatnit z důvodu vyžadované struktury, ale lze se z nich inspirovat a ponaučit se z chyb. Vyžadovanou strukturou je na mysli formát původního deníku Excel, který je nutné zachovat kvůli zpětné konverzi. Ta je nutná pro odesílání deníku na svaz lyžařů ČR (viz kapitola 6). Také probíhala komunikace s pracovní skupinou. Jako trenér pracuji s pracovní skupinou 2-3krát týdně, což vytváří dostatek času na diskutování o problémech.
2.1
Konkurenční weby
Zde shrnu 5 druhů online tréninkových deníků, které mě zaujali a nakonec u nich vyzdvihnu užitečné funkce formou tabulky pro lepší přehled. Vypsány jsou jen ty, které se nějakým způsobem vymykaly oproti běžnému vedení deníku. Mezi další, které nejsou zahrnuty do rozboru patří například deník od firmy Polar, který stojí na stejných způsobech jako deník od firmy Garmin. Deník cyklistů1 Zaměřeno přímo na cyklisty. Údaje jsou vedeny v kilometrech, bez zřetele na další parametry, kterými je například charakter terénu. Tento web běží od roku 2007 a má přes 2800 záznamů. To je sice velké číslo, ale ne za 9 let. Ve sportovním deníku připadá přibližně 250 záznamů pro 1 sportovce za 1 rok. Dále vzhled stránek je dost skromný a od roku 2008 se neměnil. Ke svému deníku má dostupnou i nápovědu, na kterou někteří vývojáři zapomínají. Online trenér2 Tento tréninkový deník je sestaven pro vedení tréninků při hubnutí. Tato aplikace poskytuje seznam článků s radami jak cvičit nebo jak si upravit jídelníček. Na stránkách mě zaujalo grafické propracování a způsob vedení databáze cviků, což by mohlo být při určitých úpravách zajímavé rozšíření (viz kapitola 6). Garmin3 Vytváří velmi kvalitní prostředí pro sportovce, avšak určitou nevýhodu spatřuji v tom, že k tréninkům jsou zapotřebí hodinky s GPS. Za to ovšem Garmin poskytuje funkce, které bez hodinek s GPS nejsou možné. Tento web je moderní, protože má 1
Deník cyklistů http://www.srazcyklistu.cz/denik/ Online trenér http://www.fitcoach.cz/ 3 Garmin https://connect.garmin.com/cs-CZ/ 2
5
i kvalitní základnu, za kterou stojí úspěšná firma. Grafické vyhodnocování je velmi propracované. Ve stejném duchu se nese i aplikace od společnosti Polar.4 Endomondo5 Další kvalitní aplikace pro sportovce. K používání této aplikace je zapotřebí mobilní telefon. Tato aplikace má také kvalitní základ. Zaujalo mě propracování do mobilní verze. To bude využito při tvorbě responzivního designu. Display telefonu obsahuje i přes svojí velikost důležité informace. Pokud by chtěl uživatel používat tuto aplikace bez reklam, zaplatí si přibližně 700 Kč za rok. Mytreneek6 Tento deník se nejvíce přibližuje mé práci. Data jsou však reprezentována jen v číselných hodnotách, což není vždy přehledné, protože čísla nám vždy jasně neřeknou, co se na tréninku dělo. Ke každému tréninku je vhodné si vést i textový zápis. Tento webový deník běží od roku 2011 a i dnes má stále aktivní uživatelé. Na tomto webu hodnotím pozitivně možnost vkládat pocity sportovce. Na druhou stranu neshledávám jako příliš vhodné, že tréninkové deníky jednotlivých uživatelů jsou přístupné veřejnosti. To v mé aplikaci není možné. Sportovní deník Mnou vyvíjená aplikace musí být všestranná, protože běh na lyžích je sport, u kterého příprava probíhá celoročně v různých podobách. Data je potřeba uchovávat jak v hodinové formě, tak v kilometrech. Na základě elektronického dokumentu Vedení deníku [3] se jednotlivé sportovní aktivity dělí do 3 intenzit odpovídajícím procentuálnímu vytížení sportovce. První intenzita je do 75% maximální tepové frekvence, druhá je od 75% do 85% a třetí je nad 85% maximální tepové frekvence. Výpis deníku ve formě čísel, není vždy vypovídající, proto je dobré si ke každému tréninku vést i poznámky o tréninku. Pro lepší znázornění a shrnutí tréninků jsou použity kromě číselných statistik i grafy. Grafy ve sportovním deníku jsou interaktivní, tudíž nabízejí různé možnosti. Z těch hlavních je to možnost navolit si jen určité činnosti (kolo, lyže, běh, posilování), nebo přiblížení určitého časového úseku. Obrázky grafů si může sportovec i stáhnout a sdílet na sociálních sítích. Následující tabulka je sestavena podle nutných požadavků pro moji aplikaci. Modrou barvou jsou zvýrazněny ty buňky, které obsahují vlastnosti totožné s mým návrhem. Cílem bude jejich dosažení. První sloupce uvádí vedení údajů v podobě km a času. Například uběhneme 10 km za 1 hodinu. Intenzita je potřebná pro rozdělení rychlých a pomalých tréninků. V našem případě bude každá kategorie rozdělena do tří kategorií intenzit. Sloupec s názvem všestrannost znázorňuje rozsah sportů, které lze do deníku zapsat. Do deníku v mé aplikaci lze zapsat libovolný sport jako je například: běh na lyžích, cyklistika, běh, chůze, kolečkové lyže, posilování, hry, imitace, plavání a další. Prezentace dat je důležitý faktor pro sportovce a trenéra. Samotné výpisy statistik v číslech nejsou pro sportovce příliš zajímavé a pro trenéra je studie statistik příliš časově náročná. Vedení statistik v grafech každého uživatele zaujme a ulehčí práci při jejich rozboru. Pokud by ale chtěl vědět, co přesně dělal v daný trénink, nebo kde byl v tu dobu, je pro přehlednost dobré trénink doplnit a podpořit celkové statistiky i o písemnou zprávu, jak se sportovec cítil, nebo kde se nacházel či jak šly jednotlivé fáze tréninku za sebou. Příslušenství zatím beru jako nevýhodu, protože běžci na lyžích využívají pouze chytré hodinky (kvůli prostředí ve kterém trénují - velké rozdíly teplot) a ty nejsou pro všechny 4
Polar https://flow.polar.com/ Endomondo http://www.endomondo.com/home 6 Mytreneek http://www.mytreneek.cz/ 5
6
Prezentace dat
Nutné příslušenství
60%
Čísla Grafy
NE
ANO
20%
Čísla
NE
km hh:mm
ANO
100%
Endomondo (aplikace)
km hh:mm
ANO
100%
Mytreneek
km hh:mm
NE
75%
Čísla
NE
Sportovní deník
km hh:mm
100%
Čísla Grafy Text
NE
Intenzita zátěže
Všestrannost
Údaje v km a hh:mm
sportovce dostupné po finanční stránce. Informace o využití externího příslušenství (hodinek s GPS) pro sportovní deník naleznete v kapitole 6.
Deník cyklistů
km hh:mm
NE
Online trenér
hh:mm
Garmin (hodinky)
ANO
Čísla Grafy Text Čísla Grafy Text
ANO
ANO
Tabulka 2.1: Porovnání současných deníků s mnou vytvořeným deníkem. Modře jsou označené vlastnosti, které jsou podstatné pro moji aplikaci.
2.2
Dotazování se pracovní skupiny
Díky dotazování se pracovní skupiny byla získána zpětná vazba, v čem konkrétně sportovci vidí plus, a v čem mínus. Co by chtěli změnit či přidat. Využity byli i dotazníky. První (dále jako dotazník A) byl rozdán na začátku práce pro získání obecného přehledu, co se jim nelíbí na dosavadním vedení tréninkového deníku Excel. Náhled na dotazník viz příloha C.1. Druhý dotazník (dále jako dotazník B) byl rozdán po nasazení sportovního deníku pro získání prvních dojmů a názorů z jeho užívání (vyhodnocení viz kapitola 5.3). Náhled na dotazník viz příloha C.2. Pracovní skupině byly položeny otázky i mimo dotazník (na tréninku) a to jako: ∙ Obsahuje návrh vše, co bys využil/a? (co ano, co ne) a konzultování postupného vývoje ∙ Je návrh intuitivní, vidíš na první pohled vše podstatné? 7
∙ Budeš chtít zachovávat historii svých záznamů? (deník, plán, výsledky) ∙ Budeš-li mít možnost vkládat obrázky a textové soubory, budeš toho využívat? Co například budeš vkládat?
2.2.1
Vyhodnocení dotazníku A
Z vyhodnocení dotazníku A vyplynulo následující (otázka - nejčastější nebo pro projekt zajímavá odpověď): Baví Vás vést si deník MS Excel? - NE Jak často musíte vyplňovat deník MS Excel? - Měla bych po každém tréninku, ale vyplňuji dvakrát až třikrát za čtrnáct dní. Co se Vám líbí na deníku MS Excel? - Asi to ukotvení prvních několika řádků a sloupce, aby při rolování bylo vždy jasné, co která buňka znamená. Co se Vám nelíbí na deníku MS Excel? - Hlavně je to dost nepřehledné. Z vedení deníku nic nemám. Jaké problémy jste doposud měli s deníkem MS Excel? - Když jsem ho poslala trenérovi a on ho nemohl otevřít, nebo když byl tento rok přestupný, tak mi v deníku chyběl 29. únor. Co Vám dalo vyplňování deníku MS Excel, vypisoval se nějaký výstup či přehled? - No právě, že ne. Proto mě to ani moc nebavilo. Kdyby existovala správa deníku ve webové podobě, co dalšího by se Vám hodilo? - Ráda bych si stanovila svůj osobní cíl, jako tomu bylo dříve u papírového deníku. Více odpovědí viz příloha C.1.1.
2.2.2
Shrnutí
Na základě informací z prvního deníku jsem se utvrdil ve správnosti mého nápadu. Vyskytly se i odpovědi, které pomohly vylepšit původní návrh, jako například ukotvení klíčových sloupců a řádků v tabulce pro lepší orientaci. Z otázek vedených během vývoje vyplynulo několik změn v návrhu. Nejčastěji se měnila barva jednotlivých sloupců či řádku deníku. Také se upravovalo umístění prvků, jako například při umístění dvou elementů pro stanovení osobního cíle na úvodní straně. Buňky byly pro vkládání delšího obsahu osobního cíle příliš úzké, a proto musely být přesunuty pod sebe.
8
Kapitola 3
Návrh Jako první na řadu přišel rozbor samotného deníku Excel, který bude exportován do webové podoby. Pokračování návrhu probíhalo zaměřením na grafické modely a na jednotlivé elementy (kde budou použity a jak budou vypadat). Také byl vytvořen use-case diagram, jakožto diagram případů užití pro lepší přehled možností chování uživatelů v systému. Nakonec byl vytvořen ER diagram, který vyobrazuje sestavení konečné databáze.
3.1
Rozbor deníku ve formátu Microsoft Excel
Je to specifický soubor Microsoft Excel skládající se z 6 listů s celoročními záznamy. Formát deníku Excel zavedl Svaz lyžařů České republiky, který si ho nechává zasílat od úspěšných sportovců patřící do různých výkonnostních skupin. Svaz lyžařů ho využívá pro lepší správu svých sportovců. To je i cesta pro rozšíření této aplikace viz kapitola 6. Při hledání způsobů zpracování deníku Excel, bylo zapotřebí prostudovat jeho strukturu. Deník Excel slouží pro jednu sezonu, která je od 1. května do 30. dubna a to vždy s 355 dny. Z toho nám vyplývá, že nepočítá s přestupným rokem. Bude zapotřebí na toto myslet a tuhle vlastnost ošetřit tak, aby jsme ji nezanesly do naší aplikace. Jelikož budeme parsovat jednotlivé buňky a očekávat daný typ, musíme pamatovat na možnost chyby uživatele a to například, že se při vyplňování upsal a tato aplikace dostala místo očekávání časového údaje například řetězec. Dle potřeby půjde nahrávat deník Excel na web a konvertovat ho do podoby sportovního deníku, nebo opačně při stažení, bude provedena konverze na původní deník Excel a doplnění o data vyplněná ve sportovním deníku, u kterých musíme dbát na správný datový typ, aby byla zachována funkčnost všech funkcí v původním deníku Excel. Zajištění zpětné konverze je zapotřebí, z důvodu zasílání deníku na Svaz lyžařů ČR. Po exportu deníku Excel do databáze budou data hned vykreslována. Z čehož plyne, že bude možnost online úpravy a prohlížení deníku. Největší problém bude s rychlostí zpracování deníku, protože se jedná o 365 (v přestupném roce o 366) záznamů, které obsahují 54 sloupců s informacemi. Informace jsou typu int, time nebo datetime. Hodnoty dopočítané z funkcí budou přeskakovány a dopočítány pomocí funkcí přímo v aplikaci. Náhled starého deníku viz obrázek 3.1 na následující straně.
9
Obrázek 3.1: Nepřehledný deník ve formátu Microsoft Excel, ve kterém se těžko uživatel orientuje.
3.2
Grafické modely - Mock-up
Návrh mock-up prošel dlouhým procesem úprav. Maličkosti se ladily i při vývoji. Základem bylo vytvořit jednoduché prostředí přístupné pro všechny, sjednocení obecné struktury pro jednodušší a čistější psaní stylů. Také bylo myšleno i na responsivitu celého webu. Například při menším prohlížecím okně, se skryje část menu a uživatel se řídí pouze podle obrázků. V mobilní verzi se bude menu schovávat úplně. Prvotní návrh celé aplikace 3.2 ujasnil čeho chceme dosáhnout.
Obrázek 3.2: Prvotní návrh, ujasnil především rozložení prvků. Na obrázku je titulní strana s menu vlevo, osobní údaje v horní části a grafické vyhodnocování ve spodní části.
10
U následujících dvou obrázků 3.3 si můžeme všimnout jaké změny proběhly na začátku tvorby sportovního deníku. Například zvolené tlačítko dostalo světlejší barvu oproti okolí, než je tomu u úplně prvotního návrhu.
Obrázek 3.3: Při postupném vývoji se měnily hlavně barvy tak, aby prostředí bylo pro uživatele přívětivější. Jako je například na pravém obrázku zvýraznění tlačítka oranžovou barvou. Dále přibylo navíc přepínací menu na pohled měsíců a sezon. V poslední řadě byla i přidána notifikace zpráv a nápověda.
3.3
Případy užití - Use-case
Případy užití nám znázorňují, jak bude celý systém přibližně fungovat a jaké bude nabízet základní možnosti pro jednotlivé role. Z use-case lze vyčíst tři základní role (administrátor, trenér, sportovec), kterým systém umožňuje přístup k jednotlivým funkcím. O roli v podobě rodičů, kteří by měli možnost zasílat zprávy a prohlížet si novinky je více v kapitole 6. Dále je vidět potřebná návaznost jednotlivých úkonů. Například nelze upravit plán bez jeho vyhledání.
Obrázek 3.4: Use-case diagram nám znázorňuje, jaký bude mít uživatel možnosti pro interakci se systémem. Také je zde vidět možnost dědění od sportovce k trenérovi až po administrátora nebo závislost některých funkcí na jiných, která je označena parametrem «include».
11
3.4
Návrh databáze - ER diagram
Diagramy use-case a ER byly vytvořeny pod online aplikací draw.io.1 ER diagram nám poslouží pro návrh databáze. Bylo zapotřebí dbát na jednoduchost pro zachování rychlé odezvy jednotlivých dotazů. Používání databáze je podpořeno konfiguračním souborem v XML, který obsahuje základní informace potřebné pro vyhledávání jako jsou sezony, kategorie událostí nebo jednotlivé role (viz kapitola 4.4). XML bylo zvoleno pro rychlejší vyhledávání v menším počtu dat. Na ER diagramu 3.5 lze vidět, že klíčovou tabulkou je tabulka Users. To je využito při mazání uživatelů. Stačí smazat uživatele a při správném kaskádovém přiřazení jsou smazány všechny závislé tabulky. Důležité jsou tabulky pro uložení záznamů tréninků (jsou dost obsáhlé), kde bylo zapotřebí jednotlivým buňkám přiřadit správný datový typ pro potřebu správnosti zpětné konverze sportovního deníku na deník Excel. Dále propojení tabulek v rámci konverzací, kde jednotlivé konverzace můžou navštěvovat jen uživatelé, kteří byli zvoleni autorem dané konverzace. Tabulka JoinMessConv propojuje jednotlivé konverzace s uživateli, kteří do nich patří a uchovává důležitou informaci o jejich poslední návštěvě dané konverzace. To se bude využívat pro zjištění kolik má uživatel nových zpráv.
Obrázek 3.5: ER diagram nám znázorňuje rozložení databáze. Například všechny vazby od tabulky User jsou 1 ku 0..N, protože při založení účtu nemusí pro správnou funkčnost být už nic dalšího nastaveno. 1
Aplikace pro tvorbu diagramů https://www.draw.io
12
Kapitola 4
Implementace Implementace probíhala postupně. Nejdříve byl vytvořen bezpečný přístup pomocí přihlašování. Musely být nastaveny jednotlivé role. Mnou implementovaná aplikace je postavena na třech typech uživatelů - Administrátor, Trenér, Sportovec (možné rozšíření o roli rodiče viz rozšíření 6). Dále probíhal vývoj postupně podle jednotlivých záložek v menu. Jako první byla na řadě úvodní strana společně s deníkem. Obě tyto stránky jsou propojené z hlediska využívání dat z deníků a vypisování určitého výstupu (tabulky, grafy). Poté probíhala implementace záložky Plán, Kalendář, Zprávy a Soubory. Pro nováčky je připravena v pravém horním rohu nápověda. Stačí kliknout na otazník.
Obrázek 4.1: Úvodní strana po přihlášení nabízí v hlavičce notifikace a nápovědu (1). Dále přehled vlastností sportovce, jako je objem plic nebo maximální tepová frekvence, dosažené cíle a cíle, kterých sportovec stále nedosáhl (2). Vlevo přehledné menu se základním rozdělením do šesti částí (3) a ve spodní části jsou k vidění dva grafy. První znázorňuje odtrénované jednotky za celou sezonu (4) a druhý za aktuální měsíc (5).
13
4.1
Aplikace rozdělena na 6 částí
Finální řešení zahrnuje 6 hlavních kategorií. Většina stránek je rozdělena na tři části (sloupce). První sloupec je pro menu, druhý sloupec obsahuje řídící bloky (ukládání deníku, tvorba nového plánu, vyhledávání, volba sezony) a třetí jen čistě hlavní obsah (výpis zpráv, deníku, plánů). U menu je snaha nevytvářet podmenu, pro rychlou a přehlednou orientaci. V horní části nalezneme kromě názvu aplikace také správu uživatele s notifikací případných zpráv, které si nestihl uživatel přečíst. Zápatí obsahuje cestu, kde se momentálně nacházíte.
4.1.1
Osobní údaje
Osobní údaje obsahují základní sportovní údaje o uživateli tak, aby měl hned po přihlášení přehled, v jaké formě se aktuálně nachází, a to od váhy, výšky, po tepovou frekvenci apod. Cílem bylo také motivovat sportovce v jeho sportu. Díky načerpaným informacím z knihy věnující se problematice vlivu okolí na sportovce [4], byly doplněné také dvě tabulky s možností stanovit si své osobní cíle. První tabulka je určena pro cíle, kterých chce sportovec dosáhnout a druhá tabulka obsahuje informace o již dosažených výsledcích. Kromě osobních cílů bude sportovce motivovat, pokud vidí svou aktuální formu oproti jinému období. To je zajištěno grafy ve spodní části, které zpracovávají aktuální údaje z deníku (z odtrénovaných hodin). Další motivací pro sportovce je možnost porovnání svých výkonů s ostatními sportovci či přáteli (viz kapitola 6). První graf znázorňuje celou sezonu a druhý aktuální měsíc (viz obrázek 4.1). Další možností je i přechod do výpisu celého roku po měsících (viz obrázek 4.2 vlevo) nebo výpisu všech sezon (viz obrázek 4.2 vpravo). Trenér má navíc přístup do porovnávače, kde může porovnávat statistiky jednotlivých sportovců. Všechny grafy jsou interaktivní a lze si například skrýt jednotlivé kategorie po kliknutí do legendy, nebo si přiblížit určitou část.
Obrázek 4.2: Grafy jsou hlavním nástrojem pro vyhodnocování tréninků. Vpravo se nachází grafy vyhodnocující sezony. Vlevo jsou grafy vyhodnocující měsíce v dané sezoně.
4.1.2
Plán
Stránka plán umožňuje vytvářet nové plány zadáváním, či kopírováním dat do místního textového editoru (viz obrázek 4.3 na následující stránce). Dále lze zobrazovat historii plánů pro různé sezony, která je navíc rozdělena podle tréninkových skupin. Trenér může upravovat i své již nahrané plány. V jedné sezoně může být i více plánů, jako je plán pro jednotlivé tréninkové skupiny, na soustředění či individuální plán pro sportovce po nemoci apod. Čisté plány (bez okolního uživatelského rozhraní) je možné i vytisknout, či uložit do PDF. 14
Obrázek 4.3: Na obrázku je vidět pohled trenéra na plán s možností upravovat plán v editoru, nebo vyhledávat mezi už vytvořenými plány či vytvořit nový.
4.1.3
Kalendář
V kalendáři jsou specifické události, kterými jsou soustředění, závody, brigády, narozeniny, nebo soukromé události sportovců. Jednotlivé kategorie událostí jsou rozlišeny barevně, případně animací. Ke každé události lze přidat název, doplňující informaci, její kategorii a odkaz na případné výsledky, či propozice k závodům. Dále lze nastavit, zda je událost na část dne, na celý den a nebo na více dní, jako je například soustředění. Výpis jednotlivých kategorií je vedle deníku a sportovec si může navolit, které kategorie událostí chce zobrazit (viz obrázek 4.4).
Obrázek 4.4: Kalendář s několika kategoriemi, které jsou barevně zvýrazněny. Jsou vidět i události delší jak jeden den.
15
4.1.4
Deník
Stránka deník umožňuje nahrávat soubory typu Excel, zobrazovat jednotlivé deníky pro každou sezonu, či editovat jednotlivé dny. V deníku lze také přepínat mezi deníkem s časovými údaji a písemným deníkem. Oba deníky mají přichycené klíčové sloupce (datum, název dne, měsíce nebo části dne), či řádky (názvy sloupců). To zajišťuje jednoduchou identifikaci buňky i při rolování. Trenér má také přehled o tom, kdy byl deník nahrán/modifikován. Sportovec po příchodu vidí hned aktuální den plus sedm předchozích pro rychlejší vyplňování. Tato stránka nabízí možnost stáhnout deník, kde se data z databáze vyexportují zpět do původního deníku tak, aby byly zachovány funkce v jednotlivých buňkách. Sportovec v číselném deníku (viz obrázek 4.5 vlevo) vyplňuje jen základní hodnoty intenzit, zbytek mu deník dopočítává sám. Lze do něho zapisovat všechny sporty od běhu na lyžích, posilování, kola, her, běhu, plavání apod. Pro vyplnění tréninku stačí jen kliknout na patřičný řádek a vyskočí formulář pro vyplnění. Po odeslání jsou změny provedeny hned. V textovém deníku (viz obrázek 4.5 vpravo) si sportovec vede osobní poznámky o tom, jak se cítil při tréninku, kde byl, nebo jakou měl tepovou frekvenci apod. Tyto informace slouží pro upřesnění tréninků, které se využívají pro vyhodnocování, když se potřebujeme zpětně podívat, co bylo příčinou například onemocnění apod.
Obrázek 4.5: Na levé straně nalezneme číselný deník s označeným dnešním dnem. Dále si zde můžeme všimnout vyjetého menu pro export nebo smazání deníku. Uprostřed je vyhledávací formulář pro případné hledání jiného záznamu než je nabídnut. Na pravé straně je písemný deník s barevným přechodem mezi měsíci.
4.1.5
Zprávy
Zprávy jsou založeny na jednotlivých místnostech, které jsou specifické probíranými informacemi v dané místnosti. V každé místnosti lze nastavit stěžejní otázka, pro udržení tématu v konverzaci a uživatelé, kteří budou mít do dané konverzace přístup. Stěžejní otázka je vyobrazena hned pod názvem konverzace. To neplatí pro soukromé zprávy, ty tuto možnost nemají. Zprávy neslouží pro chat, ale pro zpětnou vazbu, dotazování se na hodnocení, na výpomoc na brigádě apod. Pokud uživateli přijde soukromá zpráva nebo zpráva do místnosti, do které je zapojen, je upozorněn v hlavičce notifikací pro zprávy (viz obrázek 4.6 na následující stránce). Místnosti může vytvářet pouze trenér. Každá zpráva obsahuje kromě samotné zprávy i fotku, datum a jméno pro snadnou identifikaci uživatele. Největší problém byla implementace společných místností, kde je více lidí a je zapotřebí je jednak rozlišovat, tak i detekovat nové zprávy od různých uživatelů. 16
Obrázek 4.6: Zobrazení konverzace s více uživateli a notifikace v případě nepřečtené zprávy.
4.1.6
Soubory
Na stránce soubory nalezneme souborový manažer (viz obrázek 4.7) se soubory typu: diplomy, lékařské zprávy, fotky apod. Další možností je přepínání mezi sdíleným a soukromým úložištěm. Do soukromého úložiště má přístup jen konkrétní uživatel, případně administrátor. Ve sdílené složce jsou tři kategorie adresářů, a to pro administrátora, trenéra a sportovce. Zde je nutné stanovit oprávnění s nakládáním souborů různých kategorii. Všechny kategorie lze číst, stahovat nebo do nich vkládat soubory, ale nelze v nich mazat soubory. To lze jen ve složkách kategorie do které uživatel patří, kromě administrátora. Dále je zapotřebí stanovit omezení na typy nahrávaných souborů a jejich velikost.
Obrázek 4.7: Soubory znázorňují tři hlavní soukromé složky a jednu sdílenou, kde má každá skupina (role) sdílené soubory zvlášť.
17
4.2
Nástroje
Implementace probíhá pomocí následujících jazyků, knihoven a frameworku: [HTML]1 HTML (HyperText Markup Language) v našem případě byla použita přímo verze HTML5. To je nejnovější verze tohoto značkovacího jazyka. Slouží pro tvorbu webových stránek. Mezi hlavní novinky, které přináší je podpora aplikací, které fungují i bez připojení k internetu, rozšířená podpora pro přehrávání multimédii a další. [CSS]2 CSS (Cascading Style Sheets, Kaskádové styly) je jazyk pro definování výsledného vzhledu jednotlivých elementů, které uživatel vidí. Pro definici podobných elementů využívá selektory. Při přidání stylu nějakému selektoru jsou ovlivněny všechny elementy, které této definici vyhovují. [PHP]3 PHP (Hypertextový preprocesor, dříve jako Personal Home Page) je skriptovací jazyk, který je možno volně užívat. Využívá se především k dodání dynamičnosti webovým stránkám a aplikacím. Zajišťuje určitou bezpečnost, díky způsobu překladu, kdy je zdrojový kód přeložen na straně serveru a uživatel vidí až výsledek jeho činnosti. [MySQL]4 MySQL je databázový systém, vytvořen firmou MySQL AB. Současný vlastník je Sun Microsystems, dceřiná společnost Oracle Corporation. MySQL je hojně využíváno díky bezplatné licence GPL a multiplatformnosti. Komunikace probíhá pomocí jazyku SQL se zpracováváním na straně serveru. Koncovému uživateli jsou zaslány už konkrétní informace. [XML]5 XML (eXtensible Markup Language – rozšiřitelný značkovací jazyk) je jazyk, který patří do řady značkovacích jazyků, jako je třeba právě HTML. Vyznačuje se skvělou přenositelností a jednoduchostí zápisu. Data jsou obalena do značek, které nesou informace o obalených datech. XML bylo v této práci využito pro konfigurační soubor (viz kapitola 4.4). [JavaScript - AJAX]6 JavaScript je skriptovací jazyk vhodný například pro optimalizaci webu - dopočítávání velikosti bloků. AJAX napsán v JavaScriptu nám dodává dynamičnost, protože dovoluje měnit obsah webové stránky bez znovu načtení celé stránky. JavaScript byl využit pro dynamické chování stránek (skrývání elementů, které momentálně nejsou potřeba) a efekty pro lepší uživatelské prostředí. AJAX urychluje výpis některých elementů, kde při potřebě provedení změny obsahu na stránce jsou znovu načteny jen bloky, kterých se tyto změny týkají. [Nette framework]7 Nette je plnohodnotný framework pro skriptovací jazyk PHP. Využívá model MVC - model, view, controller. Má vyřešeny některé problémy, na které si už nemusíme při implemen1
Podpora HTML5 http://www.html5.cz/ Podpora CSS http://www.w3schools.com/css/ 3 Podpora PHP https://secure.php.net/ 4 Podpora MySQL https://www.mysql.com/ 5 Podpora XML http://www.xml.com/ 6 Podpora JS https://www.javascript.com/ 7 PHP framework https://nette.org/cs/
2
18
taci dávat pozor (bezpečnost, formuláře). Umožňuje provádět diagnostiku při implementaci webu a vytváří přehled náročnosti aplikace. Důvod využití Nette frameworku viz kapitola 4.3. [Bootstrap framework]8 Bootstrap je jeden z nejvíce populárních HTML, CSS a JavaScriptový frameworků. Snaží se usnadnit práci kodérovi a dodává webové aplikaci jednotný vzhled. Zabývá se i znovupoužitelností jednotlivých elementů a responsivity webu. [Knihovna Highcharts]9 Knihovna Highcharts složí pro generování různorodých grafu v moderním vzhledu. Obsahuje širokou škálu parametrů pro vlastní úpravu grafů dle potřeby. [Knihovna PHPExcel]10 Knihovna PHPExcel byla vytvořena roku 2006. Poskytuje OOP přístup pro práci s excel soubory. Tato knihovna je uvolněna pod licencí LGPL. [Knihovna Fullcalendar]11 Tato knihovna usnadňuje práci při tvorbě kalendáře a má předdefinované některé funkce, jako jsou události při najetí myši, nebo kliknutí. Hlavní výhodou tohoto balíčku je licence MIT. [Knihovna CKEditor]12 Jeden z nejrozšířenější textových editorů. Výhodou je uvolnění pod licencí LGPL a dobrá uživatelská konfigurace. Při výběru vyhrál nad obdobným textovým editorem TinyMCE, který mě nezaujal svým vzhledem. [Knihovna elFinder]13 Je to knihovna nabízející kvalitní souborový manažer. Rozhodující parametr pro výběr je uvolnění knihovny pod licencí BSD, a že je to stále aktivní projekt, kde jsem i přiložil ruku k dílu a doplněním počeštění této aplikace a odstraněním menších chyb.
4.3
Proč byl použit Nette framework
Nette framework byl použit díky svému rozšíření a propracovanosti. Má vlastní elektronickou dokumentaci [1], v které můžeme nalézt potřebné informace pro vývoj. Také zajišťuje určitou bezpečnost. Umožňuje vytvářet znovupoužitelné komponenty. Diagnostiku stránek provádí vlastním nástrojem Tracy.14 Také zajišťuje jednodušší propojení různých projektů formou modulů. To se v našem případě dá využít (viz kapitolu 6).
4.3.1
Model MVC
Nette a tím i tato aplikace je postavena na modelu Model-View-Controller. Díky těmto třem částem jsou zdrojové kódy přehlednější. Model zajišťuje funkční stránku celé aplikace. Aplikační logika v něm zajišťuje například přihlášení nebo nahrání deníku. View, tedy pohled, používá šablonovací jazyk Latte.15 Pomocí něho vykresluje uživateli výsledný vzhled stránek. Poslední Controller zajišťuje propojení mezi modelem a pohledem. Zpracovává 8
HTML, CSS a JS framework http://getbootstrap.com/ Zobrazení dat v grafech http://www.highcharts.com/ 10 Práce PHP s Excelem https://phpexcel.codeplex.com/ 11 Kalendář http://fullcalendar.io/ 12 Textový editor http://ckeditor.com/ 13 Souborový manažer http://studio-42.github.io/elFinder/ 14 Měřící a debugovací nástroj https://tracy.nette.org/cs/ 15 Šablonovací jazyk https://latte.nette.org/cs/ 9
19
příkazy od uživatele, vyžádá si potřebná data od modelu a nakonec pošle signál pohledu pro překreslení.16
4.3.2
Bezpečnost
Cross-Site Scripting (XSS) je ošetřena metodou Context-Aware Escaping. XSS je podstrčení nebezpečného kódu například přes neošetřené vstupy. Countext-Aware Escaping tuto možnost narušení eliminuje nahrazením znaků mající nějaký význam za jinou odpovídající sekvenci. Dále umožňuje ošetřit Cross-Site Request Forgery (CSRF) přidáním jediného příkazu. CSRF je odkázání uživatele na nebezpečnou stránku, která může napadnout aplikaci, kde je zrovna uživatel přihlášen a smazat například článek, aniž by si toho všiml.17
4.3.3
Správa rolí
Nette poskytuje ACL (access control list) vrstvu pro jednoduchou správu rolí. Dále lze definovat stránky, na které je jednotlivým rolím umožněn přístup a činnost, kterou zde mohou provádět. Například v této aplikaci má trenér možnost upravovat plán, ale sportovec si ho může pouze prohlížet. Lze zde nastavit i dědění oprávnění. V našem případě administrátor může to, co trenér, který může to, co sportovec. Z toho plyne, že administrátor může to, co sportovec. Pro navržení ACL je využit use-case diagram (viz kapitola 3.3), na kterém jsou přehledně vidět jednotlivé role a jejich oprávnění.
4.4
Konfigurační soubor
Konfigurační soubor conf.neon není jediným konfiguračním souborem této aplikace. Byl vytvořen další uživatelský konfigurační soubor napsán v jazyce XML a obsahuje informace o sezonách, rolích, tréninkových skupinách, typech událostí a další. Tento typ konfiguračních souborů byl zvolen pro dobrou přenositelnost a znovupoužitelnost. Je využit i pro práci s databází, protože obsahuje klíčová data. Dále není problém ho rozšířit o další parametry bez potřeby změny funkcí s ním pracujících.
4.5
Konečné schéma základní funkčnosti aplikace
Každý uživatel sportovního deníku má vlastní účet pod kterým se přihlašuje. Přihlašování je ověřováno přes ACL vrstvu, kde je následně uživateli přidělena identita. K přidělování identity se využívá konfigurační soubor (viz kapitola 4.4), kde jsou definovány role uživatelů, tréninkové skupiny apod. Následně bude znázorněna základní funkčnost sportovního deníku (vedení deníku, vyhodnocování statistik a komunikace trenéra a sportovce). Uživatel prvně po registraci nahrává svůj starý deník Excel, kde se mu data ze starého deníku přenesou do sportovního deníku, kde jsou vloženy na správné místo v místním deníku. V dalších dnech zaznamenává své tréninky a jednou měsíčně exportuje deník zpět do formátu MS Excel pro zaslání na Svaz lyžařů ČR. Vložená data jsou ukládána do databáze a následně využívána pro výpis statistik, kde jsou některé údaje dopočítávány. Sportovec si může nechat vypsat vlastní statistiky a vidět svůj postup. Trenér má navíc přístup do porovnávače statistik, kde si může porovnat sportovce s vlastním deníkem a nebo jednotlivé sportovce mezi sebou. Získané 16 17
Model MVC https://doc.nette.org/cs/2.3/presenters Zajištění bezpečnosti v Nette https://doc.nette.org/cs/2.3/vulnerability-protection
20
informace ze statistik můžou sportovci ihned s trenéry probírat. To celé vede k zlepšení tréninkové činnosti.
Obrázek 4.8: Schéma postupu při vkládání dat do sportovního deníku a jejich vyhodnocování.
21
Kapitola 5
Nasazení a testování Nasazení se skutečnými uživateli bylo provedeno 23. března 2016. Začínalo se s registrací třech sportovců a jednoho účtu pro veřejnost. Zpětná vazba sportovců byla dobrá. Ovšem bylo zapotřebí zjišťovat nedostatky, kde mezi nejčastěji oznamované patří rozsah zadávání osobního cíle na 30 znaků. Do experimentů je zapojeno 6 sportovců a 1 trenér z domácího klubu. Po dokončení bude zapojen celý klub, který čítá 15 starších sportovců a dva trenéry. V plánu je i zapojení rodičů v rámci rozšíření (viz kapitolu 6).
5.1
Řešené problémy
Na začátku při zpracování se objevil problém u deníku Excel, který není ideálně navržen a nepočítá s přestupným rokem, který je právě letos. Z toho důvodu bylo zapotřebí ošetřit, který deník sportovec vkládá. To je provedeno načtením a kontrolováním data v deníku Excel, jestli odpovídá zvolené sezoně. Při exportování zpět do deníku Excel byl problém v zachovávání jednotlivých funkcí a vzhledu původního deníku. Tyto vlastnosti jsou vždy stejné a zpomalují výsledné generování výstupního souboru. Tento problém byl vyřešen použitím šablony vytvořené z původního deníku, kde je nastavena pouze sezona. To urychlilo vygenerování, protože nebylo nutné si pamatovat formát jednotlivých buněk.
5.2
Měření rychlosti
Po nasazení se prováděla různá měření rychlosti zadávání uživatele, ukládání do databáze nebo načítání samotného deníku. Bylo zapotřebí zrychlit aplikaci, z důvodu zlepšení podmínek pro uživatele, protože to je cílem této práce. Měření rychlosti zadávání údajů bylo provedeno na čtyřech uživatelích a zjištění, kolik ušetří času bylo provedeno následovně. Jednotliví uživatelé dostali úlohu (pevně daný trénink s disciplinami a časy). Záznamy z této úlohy měli vložit na stanovený datum do deníku Excel a poté ho doručit trenérovi. Při každém měření časy ukazovaly 3:00 - 3:20 min. To samé poté sportovci provedli i s touto aplikací, kde vyplnění trvalo 1:00 - 1:20 min. Při přepočítání na vyplňování celého soustředění se ušetří 10 - 20 minut. Čas byl ušetřen především proto, že je deník navržen intuitivně. Při přechodu do sekce s deníkem nabízí aktuální den plus sedm předchozích dnů, tudíž sportovec nemusí vždy hledat aktuální den. Deník je navržen tak, aby co nejméně zatěžoval uživatele.
22
Nahrávání deníku (365 - 366 záznamů) do databáze trvalo do 20 vteřin. Ovšem při potřebě nahrání upraveného deníku Excel trvá úprava tabulky 40 - 50 vteřin (použití příkazu update). Tento problém byl vyřešen použitím maximální délky roku (366) pro nastavení pevného rozsahu identifikátorů jednotlivých záznamů. To umožňuje záznamy deníku vždy smazat a znovu vytvořit se stejnými identifikátory. Díky tomu přehrání záznamů deníkem Excel v aktuální verzi trvá přibližně 20 vteřin.
5.3
Vyhodnocení dotazníku B
Dotazník B je tvořen otázkami sloužící k hodnocení této práce. Byl rozdán mezi uživatele po nasazení sportovního deníku. Následuje ukázka nejčastějších odpovědí (otázka - nejčastější odpověď): Jak dlouho používáte sportovní deník? - Přibližně měsíc. Baví Vás vést si nový sportovní deník? - ANO Co se Vám líbí na novém sportovním deníku? - Shrnutí v grafech a přehlednost. Co se Vám nelíbí na novém sportovním deníku? - Není nic, co by se mi nelíbilo. Jaké pro Vás přináší výhody nový sportovní deník? - Zabírá mi méně času a dost věcí dělá za mě. Ušetříte čas při vyplňování nového sportovního deníku? - Rozhodně ano. Podíleli jste se nějakým způsobem na vývoji sportovního deníku? - Na tréninku se mě autor ptal, jaké prvky by se mi líbily či vyhovovaly. Setkali jste se už s něčím podobným? - Ne ještě jsem se s něčím takovým nesetkala. Budete používat nový sportovní deník? - Určitě budu. Více odpovědí viz příloha C.2.1. Z druhého dotazníku jsem získal převážně kladnou vazbu na hodnocení mého sportovního deníku. Sportovci jsou rádi za ušetřený čas a vyplňování deníku je baví. Nejvíce oceněná funkce sportovního deníku je výpis grafů, které jsou vygenerovány na základě jejich tréninkových deníků a možnost sledování vlastního postupu.
23
Kapitola 6
Rozšíření Tento projekt nabízí do budoucna velké množství rozšíření. Je zde možnost rozšíření i pro jiné sporty než je běh na lyžích, kdy by následně došlo k menším úpravám databáze a deníku. Rozšíření konkrétně pro tento deník: Zpracovávání údajů z GPS Možnost využití moderních technologií, jako jsou chytré hodinky nebo telefony. Bylo by jistě přínosné zaznamenávat si například trasu, nebo zajištění přímého přenosu naměřených dat z tréninků do deníku. Problém by byl v zajištění rozřazení do správných sportovních aktivit. Porovnávání grafů Možnost sportovce generovat různé grafy jednoho či více kamarádů najednou a porovnávat jednotlivé údaje. To by zvýšilo motivaci sportovce. Problém je, že někteří sportovci nechtějí sdílet své údaje. Rodičovský přístup V případě malých dětí, u kterých není možné, aby si tréninkový deník vedly samy, je potřeba zachovat informovanost. V plánu je buď automatické posílání emailů s informacemi o událostech, nebo vytvořit rodičovské účty, které budou mít přístup do kalendáře, plánu a zpráv. Nejvhodnější by bylo nejspíše obojí. Správa klubu Tato práce je vytvořena jako modul v Nette tak, aby šla propojit s jinými projekty. Rád bych časem udělal správu celého klubu, aby libovolný oddíl mohl používat jednu aplikaci na celou správu svého klubu obsahující různé moduly (úprava stránek, evidence členů, přihlašování na závody, sportovní deníky . . . ). Internetové úložiště Propojení souborového manažeru s úložišti jako je Google Drive nebo Dropbox, což by přispělo k lepší práci s již uloženými soubory na úložištích. Srovnávač Možnost sportovce nahlédnout na grafy svých přátel. Bylo by nutné nastavit různá omezení vůči soukromí a zároveň možnost vést si deník v soukromém módu, takže se sám uživatel může rozhodnout, které výkony a data bude sdílet. Cílem rozšíření je motivovat sportovce k vyšším výkonům. Databáze Vytvoření databáze dokumentů, kde budou vkládány články o protahování, posilování, úprava jídelníčku při závodech, regenerace po zranění atd. Mělo by jít o rady, které sportovec může využívat. Momentální plán je nasazení sportovního deníku na domácím oddílu a testování. Dále se budou implementovat rozšíření jako databáze, internetové úložiště a rodičovský přístup. V případě úspěchu bude sportovní deník nabídnut ostatním oddílům. 24
6.1
Možná spolupráce - Svaz lyžařů České republiky
Spolupráce se svazem lyžařů není podmínkou vzniku této práce. Na počátku mé práce byl zkontaktován Svaz lyžařů ČR, a zároveň byl požádán o spolupráci, se kterou souhlasil. Komunikace se svazem lyžařů probíhala na dobré úrovni. Jelikož však v současné době probíhá změna ve vedení svazu, je nutné s další spoluprací vyčkat. Dle mého názoru by bylo vhodné udělat z této práce jeden projekt, jehož výstupem bude aplikace správy klubů. Svaz lyžařů by měl přístup k údajům z sportovních deníků zřízených ve všech klubech běžeckého lyžování.
25
Kapitola 7
Závěr Mnou vyvíjená aplikace v současné době běží na adrese www.sportdenik.eu. Pro sportovce je plně funkční a momentálně ji užívá již 10 lidí. Umožňuje jednodušší správu tréninků, která sportovci ušetří čas při vyplňování tréninků. Podařilo se ušetřit čas až o dvě třetiny. Také je sportovní deník rozšířen o promítnutí dat do grafů pro lepší vyhodnocování a ladění tréninků pro vyšší výkonnost. Zjednodušuje komunikaci mezi trenérem a sportovcem, která je zajištěna zprávami v této aplikaci. Uchovává vzpomínky na náš sport, zpětně se můžeme podívat na staré sezony, jak jsme trénovali nebo si můžeme uchovávat různé kopie lékařských zpráv, diplomů, fotografií apod. Sportovec má všechny informace na jednom místě, které je dostupné odkudkoliv. Vývoj této aplikace bude směřovat na rozšiřování nástrojů pro vyhodnocování a tvorby statistik z údajů sportovce pro zvýšení jeho výkonnosti. Jako první se implementuje možnost sportovce porovnání s jinými sportovci. V nejbližší době přijde na řadu i rozšíření pro rodičovský přístup (viz kapitola 6). Další rozšíření, která jsou plánována je podpora příslušenství jako jsou telefony nebo hodinky a rozšíření aplikace i na ostatní kluby běžeckého lyžování, kterých je 142. Nejvhodnější cesta pro toto rozšíření je přes Svaz lyžařů České republiky, u kterého by bylo vhodné vytvořit rozhraní schraňující informace ze všech klubů včetně statistik. To by vytvořilo komplexní správu všech aktivních lyžařů v ČR a pomohlo tak k jejich lepší správě a zvýšení výkonnosti.
26
Literatura [1] Grudl, D.; Škrášek, J. : Dokumentace | Nette Framework. 2016. Dostupné z:
[2] Ilavský, J.; Suk, A. : Abeceda běhu na lyžích, 1. 4. 2015, metodický dopis. Dostupné z:
[3] Korunka, V. : Jak vést správně tréninkový deník, 2015, nepublikovaný dokument. [4] Svoboda, B. Pedagogika sportu. 1. vyd. Praha: Karolinum, 2000. ISBN 80-246-0156-7.
27
Přílohy
28
Seznam příloh A Obsah CD
30
B Plakát
31
C Dotazníky C.1 Vzor dotazníku A . . . . . . . . C.1.1 Odpovědi na dotazník A C.2 Vzor dotazníku B . . . . . . . . C.2.1 Odpovědi na dotazník B
32 32 32 34 34
. . . .
. . . .
. . . .
D Video
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
36
29
Příloha A
Obsah CD Adresářová struktura CD je následovná: - aplikace Zdrojové soubory sportovního deníku - dokumenty Dokumenty - BP Text BP - dotazníky Dotazníky, které byly uloženy sportovcům - A Dotazník položen před vznikem sportovního deníku - B Dotazník položen po nasazení sportovního deníku - dokumentace Dokumentace k aplikaci sportovní deník - plakát Plakát o sportovním deníku ve formátu A1 - video Video ve formátu H264 - 1280x720 (16:9), začátek a konec - 5 vteřin shrnující slajd
30
Příloha B
Plakát
Obrázek B.1: Náhled plakátu použitý na ExcelFIT. Originál na CD.
31
Příloha C
Dotazníky C.1
Vzor dotazníku A
Obrázek C.1: Náhledy dotazníků rozdané před zahájením tvorby.
C.1.1
Odpovědi na dotazník A
(otázka - časté odpovědi) Baví Vás vést si deník MS Excel? - NE Jak často musíte vyplňovat deník MS Excel?
32
- Měla bych po každém tréninku, ale vyplňuji ho dvakrát až třikrát za čtrnáct dní. - Minimálně jednou za týden. - Po každém tréninku. (3 - 5 krát týdně) - Každý měsíc. Co se Vám líbí na deníku MS Excel? - Asi to ukotvení prvních několika řádků a sloupce, aby při rolování bylo vždy jasné, co která buňka znamená. - Sám sčítá hodiny, možnost zapsat i více sportů. - Jde tam napsat více sportů. - Sloupcové rozřazení a velký výběr možných sportovních aktivit. - Nic konkrétního. Co se Vám nelíbí na deníku MS Excel? - Hlavně je to dost nepřehledné. Z vedení deníku nic nemám. - Barevné rozložení, není přehledný. - Je nepřehledný, špatně se hledá aktuální den a celková orientace v něm je těžká. - Nepřehlednost a strohost. - Zdlouhavé a složité vyplňování. Jaké problémy jste doposud měli s deníkem MS Excel? - Když jsem ho poslala trenérovi a on ho nemohl otevřít, nebo když byl tento rok přestupný, tak mi v deníku chyběl 29. únor. - Rozhozené data kvůli přestupnému roku. - Trávila jsem nad tím moc času při vyplňování. - Já osobně žádné problémy neměla. - Občas jsem zapomínal deník poslat trenérovi a byl jsem líný ho vyplňovat, protože mě to nebavilo. Co Vám dalo vyplňování deníku MS Excel, vypisoval se nějaký výstup či přehled? - No právě, že ne. Proto mě to ani moc nebavilo. - Bohužel žádný výstup ani přehled nevypisuje. Určitě bych takovou funkci ocenila. - Nevěděla jsem moc, proč to mám vyplňovat, nic jsem z toho neměla. Kdyby existovala správa deníku ve webové podobě, co dalšího by se Vám hodilo? - Ráda bych si stanovila svůj osobní cíl, jako tomu bylo dříve u papírového deníku. - Líbilo by se mi, kdyby se odtrénované hodnoty objevily v grafu. - Třeba moje rekordy, čeho chci dosáhnout, mít u toho i plán mého trénovaní atd. - Osobní údaje a určitě nějaké přehledné grafové shrnutí. - Například grafické znázornění počtu natrénovaných hodin a jednotlivých intenzit. - Zprávy od trenéra, aby mohl pozměňovat tréninkový plán a všichni to hned viděli.
33
C.2
Vzor dotazníku B
Obrázek C.2: Náhledy dotazníků rozdané po nasazení deníku.
C.2.1
Odpovědi na dotazník B
(otázka - časté odpovědi) Jak dlouho používáte sportovní deník? - Přibližně měsíc. - Několik týdnů. - Čtrnáct dní. - Zřizuje se mi účet. Baví Vás vést si nový sportovní deník? - ANO Co se Vám líbí na novém sportovním deníku? - Shrnutí v grafech a přehlednost. - Kalendář je super - můžu si sem zapisovat důležité události. Ohledně případných nejasností v plánu, nebo deníku mohu napsat trenérovi přímo zprávu. - Je přehledný, barevný, má možnost zaznamenat více věcí (např. narozeniny, tréninkový plán, lékařské zprávy,. . . ), atd. - Určitě grafové shrnutí a přehlednost. - Líbí se mi podrobnost deníku. Zejména pak barevné grafy. Co se Vám nelíbí na novém sportovním deníku? - Není nic, co by se mi nelíbilo. 34
- Nevím. Nic mě nenapadá. Jaké pro Vás přináší výhody nový sportovní deník? - Zabírá mi méně času a dost věcí dělá za mě. - Vše je na jednom místě. Při vyplňování ušetřím něco málo času. - Neztrácím se v něm a lépe se v něm orientuje, mohu kontrolovat mé zlepšení nebo zhoršení. - Názorně vidím, jak vypadají mé odtrénované jednotky. Ušetříte čas při vyplňování nového sportovního deníku? - Ano. Podíleli jste se nějakým způsobem na vývoji sportovního deníku? - Na tréninku se mě autor ptal, jaké prvky by se mi líbily či vyhovovaly. - Ano, pomáhala jsem s barevným rozložením. - Ano, byla jsem ve zkušební skupině. - Jsem součástí oddílu, pro který se tento deník prvotně vyvíjel. Setkali jste se už s něčím podobným? - Ne ještě jsem se s něčím takovým nesetkala. - Polar Flow líbí se mi tam sdílení výkonů s přáteli. Budete používat nový sportovní deník? - Určitě budu.
35
Příloha D
Video Video, které bylo vytvořeno na ExcelFIT. Je k dispozici online na adrese https://www. youtube.com/watch?v=PNJ-7GlYUXg, nebo je součástí obsahu CD.
36