• No results found

Informace o ovládání aplikace

In document Liberec 2014 Jakub Jirouš (Page 54-61)

Veškeré informace o popisu ovládání celé aplikace jsou p ehledn zdokumentovány v nápov d . Nápov da je rozd lena do jednotlivých kapitol, kde jsou jednotlivé funkce aplikace popsány s odpovídajícím grafickým náhledem v podob snímku obrazovky.

Nápov da je dostupná již p ed samotným p ipojením k databázovému serveru, p ímo z úvodní stránky, takže si uživatel ovládání aplikace m že nastudovat ješt p ed jejím ostrým použitím. V p ípad pot eby je nápov da po p ipojení k databázovému serveru dostupná z libovolného místa aplikace.

7 Vyhodnocení ešení

Prvním funk ním ešením v aplikaci je nasazení nástroje Requirement Checker z distribuce Nette, který má na starosti otestování b hového prost edí a konfiguraci serveru. Na základ spln ní všech konfigura ních test a po tu p ípadn vzniklých chyb rozhoduje o spušt ní aplikace, nebo v opa ném p ípad vypsání všech serverových ome-zení a nedostatk , kv li kterým není možné aplikaci ádn spustit.

V p ípad , že server vyhovuje minimální nutné konfiguraci, je aplikace spušt na a uživateli je zobrazen p ihlašovací formulá pro p ipojení k databázovému serveru. Po vypln ní p ihlašovacího formulá e odpovídajícímu p ihlašovacími údaji je aplikace schopná vytvo it p ipojení ke vzdálenému databázovému serveru i serveru umíst nému lokáln . Krom b žných údaj jako je IP adresa serveru, uživatelské jméno, uživatelské heslo i jméno databáze je možné uvést i nepovinné íslo portu, na kterém se m že data-bázový server nacházet.

Na základ úsp šného p ipojení k databázovému serveru je v aplikaci možné pro-vád t editaci obsahu databáze a za použití vytvo eného rozhraní vizualizovat databázové struktury. Jako jedna z hlavních testovacích databází, na které byla ov ována funk nost celé aplikace, sloužila voln dostupná databáze SAKILA z webových stránek http://dev.mysql.com/doc/index-other.html.

Aplikace klade d raz p edevším na jednoduché a p ehledné uživatelské rozhraní s intuitivním ovládáním. Vizualizace obsahu databáze je len na do n kolika úrovní

tvo-ící hierarchickou strukturu. Od hlavní úrovn , kde jsou vypsány všechny databáze na serveru, je možné p echázet do jednotlivých podúrovní. Z hlavní úrovn je možné projít p es výpis tabulek v databázi, zobrazení struktury p íslušné tabulky až do úrovn nejnižší, kterou p edstavuje výpis všech dat z tabulky.

V nejnižší úrovni vypisující všechny data z databáze je možné využít rozši ující funkcionality v podob nastavení limitu vypisovaných dat. Dále je možné výpis dat vze-stupn nebo sevze-stupn adit dle jednotlivých sloupc .

D ležitou sou ástí aplikace vyplívající ze zásad pro vypracování je možnost editace obsahu databáze. Návrh a realizace editace obsahu databáze probíhala ve dvou sm rech.

Prvotní návrh po ítal s efektivním a rychlím zp sobem editace vypsaných dat z databá-zové tabulky p ímo v míst výpisu za využití javascriptové knihovny X-editable. Editace by vždy probíhala pouze nad jednou hodnotou. Bohužel tento návrh nevedl k pln funk -nímu ešení, proto bylo nutné zvolit alternativní zp sob.

Funk ní ešení pracuje na principu možné editace všech dat, vyskytujících se v jed-nom ádku databázové tabulky, v jeden okamžik. Tento zp sob není tolik efektivní jako prvotní navrhovaný zp sob, ale zajiš uje funk ní editaci.

V rámci editace dat je možné provád t úpravy nad všemi základními datovými typy MySQL krom binárních datových typ ze skupiny BINARY a BLOB. Možnost editace binárních hodnot není v aplikaci implementovaná z d vod zachování jednoduchosti apli-kace. Samotné ukládání binárních dat do databáze není p íliš využíváno a p ináší sebou spoustu nevýhod. V p ípad volby ukládání binárních dat do databáze dochází k celko-vému zpomalení databáze, protože operace s t mito daty nejsou zcela triviální. Dále musí být kladeny vyšší pam ové nároky na databázový server, protože ukládání binárních dat sebou nese v tší využití prost edk . Další nevýhodou je využití binárních dat uložených v databázi. Nap íklad p i n kolikanásobném zobrazení jednoho obrázku uloženého bi-nárn p ímo v databázi na webové stránce, je nutné provést i mnohonásobné dekódování binárních dat op t do podoby obrázku. Tato operace je náro ná nejen asov , ale i na serverové prost edky.

Místo ukládání surových binárních dat p ímo do databáze se využívá alternativní zp sob. Binární data jsou ukládaná p ímo na server a do databáze jsou pouze vkládané reference na tyto data. Jedná se nap íklad o absolutní cestu k umíst ní souboru, MIME typ souboru, velikost apod. Pro pot eby ukládání binárních dat do databáze je možné vy-užít alternativních nástroj jako je Adminer nebo phpMyAdmin, které touto funk ností disponují. Jejich použití lze na databázovém serveru mezi sebou nezávisle kombinovat.

Jednou z hlavních ástí celé aplikace je možnost vytvo ení vizuálního schéma kon-krétní databáze na serveru. K vytvo ení vizuálního schéma je využita javascriptová knihovna pro tvorbu diagram JointJS. Oproti existujícím ešením je ve vytvo ené apli-kaci tvorba schéma databáze realizována daleko p ehledn ji a uživatelsky p ív tiv ji.

Vykreslené tabulky lze libovoln p eskupovat. Jednoduchým zp sobem si lze vytvo it svoji vlastní podobu schéma v p ípad , že je výchozí vykreslení nevyhovující. Schéma obsahuje i vizuální zobrazení vazby mezi tabulky v p ípad , že n jaká existuje. Zobrazené vazby je možné p eskupovat, m nit jejich tvar a dráhu.

Sou ástí aplikace je i p íkazové okno, pomocí kterého je možné vykonávat p íkazy v syntaxi SQL. Pomocí p íkaz k tomu ur eným, je možné provád t editaci databázových struktur, správu a editaci obsahu databázového serveru. Lze zde realizovat všechny ostatní operace, pro které není v aplikaci vytvo eno vizuální rozhraní. Všechny vykonané p íkazy jsou ukládány do historie a je umožn na jejich zp tná editace i znovupoužití.

Pokud je k databázovému serveru p ipojen uživatel s nastaveným oprávn ním ad-ministrátora, je mu umožn no nastavovat oprávn ní jednotlivým uživatel m na jednotlivých úrovních. Pokud tomu tak není, ostatní uživatele mají k oprávn ní sice p í-stup, ale požadované provedení zm n je jim zamítnuto. V aplikaci je p id lování oprávn ní rozd leno do ty úrovní. V nejvyšší úrovni se nastavují globální oprávn ní a je zde umožn no vytvá et p ipojení k databázovému serveru i pro nové uživatele. Ve zbylých úrovních, které vytvá ejí hierarchickou strukturu, se nastavují oprávn ní pro jed-notlivé databáze. V následující úrovni se nastavuje oprávn ní pro tabulky v konkrétní databázi a v poslední úrovni oprávn ní pro jednotlivé sloupce v tabulce.

Veškeré ovládání v etn popisu jednotlivých funkcí s grafickými náhledy, pro efek-tivn jší zorientování v aplikaci, je podrobn a p ehledn zpracováno v nápov d . Nápov da je p ístupná z aplikace i v dob , kdy není p ipojena k žádnému databázovému serveru.

8 Shrnutí práce

Výsledkem práce je vytvo ená online aplikace pro správu databází s vizuálním rozhraním. Aplikace umož uje vizuáln editovat struktury v databázi, vazby mezi nimi a editovat samotný obsah databáze. Nástroj je vytvo en v podob samostatné webové aplikace bez dodate né konfigurace na stran serveru k tomu, aby mohla být aplikace spušt na.

Celá aplikace byla vytvá ena za pomocí již existujících nástroj i knihoven, které tvo í jeden ze standard p i tvorb moderních webových aplikací. Základním stavebním prvkem, na kterém celá aplikace b ží, je Nette, který úzce spolupracuje s technologií Bootstrap. Dále jsou použity rozši ující javascriptové knihovny jQuery a JointJS.

Mezi hlavní odlišnosti od ostatních existujících nástroj pat í možnost p ipojení ke vzdáleným databázovým server m s nepovinným údajem v podob ísla portu. S databá-zovým serverem je možné pracovat z více uživatelských ú t sou asn , protože aplikace podporuje p ipojení pro více uživatel z jednoho internetového prohlíže e zárove . Po-mocí knihovny JointJS aplikace disponuje intuitivn jším zpracováním vizualizace schéma databáze, které vykresluje všechny tabulky v databázi, s p ípadnými vazbami mezi nimi, p ehlednou a jednoduchou formou.

Aplikace je vytvá ena podle nejmodern jších trend v oblasti tvorby webových aplikací. Pomocí využití Bootstrap frameworku disponuje design aplikace responzivní technologií. Aplikaci je tedy možné zobrazit na mobilním telefonu, tabletu, laptopu nebo na b žném monitoru, nebo se vykreslení webové stránky automaticky p izp sobuje a p eskupuje podle daného rozlišení.

Vytvo ený nástroj zdaleka neobsahuje všechny možnosti a funkce, kterými dispo-nují existující profesionální nástroje. Naopak se snaží o jednoduchý a uživatelsky p ehledný p ístup. V budoucnu by mohla být funkcionalita aplikace zvýšena, protože je vytvo ena s d razem na rozši itelnost.

Použitá literatura

[1] Achour, Mehdi, a další. PHP: Hypertext Preprocessor. PHP: PHP Manual - Manual. [Online] 20. 11 2013. [Citace: 4. 3 2014.]

http://www.php.net/manual/en/.

[2] Grudl, David. Tv rci. Nette Framework. [Online] Nette Foundation, 2008.

[Citace: 10. 3 2014.] http://nette.org/cs/credits.

[3] Grudl, David. Seznámení s Nette Frameworkem. Nette Framework. [Online]

Nette Foundation, 2008. [Citace: 10. 3 2014.]

http://doc.nette.org/cs/2.1/getting-started.

[4] Grudl, David. Licen ní politika. Nette Framework. [Online] Nette Foundation, 2008. [Citace: 10. 3 2014.] http://nette.org/cs/license.

[5] Grudl, David. Požadavky Nette Framework. Nette Framework. [Online] Nette Foundation, 2008. [Citace: 4. 3 2014.] http://doc.nette.org/cs/2.1/requirements.

[6] Grudl, David. Za ínáme. Nette Framework. [Online] Nette Foundation, 2008.

[Citace: 10. 3 2014.] http://doc.nette.org/cs/2.1/quickstart/getting-started.

[7] Grudl, David. Auto-loading t íd. Nette Framework. [Online] Nette Foundation, 2008. [Citace: 10. 3 2014.] http://doc.nette.org/cs/2.1/auto-loading.

[8] Grudl, David. Debugování a zpracování chyb. Nette Framework. [Online]

Nette Foundation, 2008. [Citace: 1. 4 2014.]

http://doc.nette.org/cs/2.1/debugging.

[9] Grudl, David. Šablony. Nette Framework. [Online] Nette Foundation, 2008.

[Citace: 1. 4 2014.] http://doc.nette.org/cs/2.1/templating.

[10] Grudl, David. Dependency Injection. Nette Framework. [Online]

Nette Foundation, 2008. [Citace: 4. 4 2014.]

http://doc.nette.org/cs/2.1/dependency-injection.

[11] Grudl, David. MVC aplikace & presentery. Nette Framework. [Online] Nette Foundation, 2008. [Citace: 5. 4 2014.] http://doc.nette.org/cs/2.1/presenters.

[12] Nixon, Robin. Learning PHP, MySQL, JavaScript, and CSS. Sebastopol, CA : O'Reilly, 2012. str. 161.

978-1-449-31926-7.

[13] Grudl, David. Class Nette\Database\Connection. Nette Framework 2.1.0 API.

[Online] Nette Foundation, 2014. [Citace: 3. 4 2014.]

http://api.nette.org/2.1.0/Nette.Database.Connection.html#___construct.

[14] Grudl, David. Sessions. Nette Framework. [Online] Nette Foundation, 2008.

[Citace: 5. 4 2014.] http://doc.nette.org/cs/2.1/sessions.

[15] Dyer, Russell J. MySQL in a nutshell. Sebastopol, CA : O'Reilly, 2008. str. 111.

978-059-6514-334.

[16] Dyer, Russell J. MySQL in a nutshell. Sebastopol, CA : O'Reilly, 2008. str. 171.

978-059-6514-334.

[17] Dyer, Russell J. MySQL in a nutshell. Sebastopol, CA : O'Reilly, 2008.

stránky 106–107. 978-059-6514-334.

[18] Grudl, David. nette.ajax.js by Vojt ch Dobeš. Dopl ky, pluginy a komponenty.

[Online] Nette Foundation, 2008. [Citace: 8. 4 2014.]

http://addons.nette.org/cs/nette-ajax-js.

[19] Grudl, David. Píšeme komponenty. Nette Framework. [Online]

Nette Foundation, 2008. [Citace: 10. 4 2014.]

http://doc.nette.org/cs/2.1/components#toc-signal-neboli-subrequest.

[20] Mark Otto, Jacob Thornton, and Bootstrap contributors. Overview.

Bootstrap. [Online] Twitter, 2014. [Citace: 12. 4 2014.]

http://getbootstrap.com/javascript/#modals.

[21] David Durman, Roman Bruckner. Getting started. JointJS JavaScript Diagramming Library. [Online] 2014. [Citace: 13. 4 2014.]

http://www.jointjs.com/tutorial.

A Obsah p iloženého CD

In document Liberec 2014 Jakub Jirouš (Page 54-61)