M F. Analýza a tvorba groupware pro studentské projekty

Rozměr: px
Začít zobrazení ze stránky:

Download "M F. Analýza a tvorba groupware pro studentské projekty"

Transkript

1 M F K I Bc. Vojtěch Pilař Analýza a tvorba groupware pro studentské projekty M Vedoucí práce: PhDr. Petr Škyřík Brno, 2011

2 Prohlášení Prohlašuji, že tato magisterská diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně dne 26. dubna 2011 Bc. Vojtěch Pilař

3 Poděkování Chtěl bych zde poděkovat především vedoucímu práce PhDr. Petru Škyříkovi za jeho cenné rady a nápady. Dále bych chtěl poděkovat Martinu Filipovi za jeho neocenitelnou pomoc, Evě Mlynářové, Martě Pavlovské a Janě Kratochvílové za jejich podporu.

4 Bibliografický záznam PILAŘ, Vojtěch. Analýza a tvorba groupware pro studentské projekty. Brno: Masarykova univerzita, Filozofická fakulta, Kabinet informačních studií a knihovnictví, s. Vedoucí bakalářské práce PhDr. Petr Škyřík.

5 Shrnutí Magisterská diplomová práce pojmenovaná Analýza a tvorba groupware pro studentské projekty, se zabývá problematikou projektového managementu a tvorbou webové aplikace pro podporu projektového managementu s ohledem na informační architekturu, validitu, přístupnost, použitelnost a požadavky projektového managementu. Praktickým výstupem této práce je webová aplikace.

6 Abstract Thesis titled Analýza a tvorba groupware pro studentské projekty, deals with project management and creating a web application supporting project management regarding information architecture, validity, accessibility, usability and project management requirements. Final output of this thesis is a web application.

7 Klíčová slova Software, analýza, tvorba, groupware, projektovy management, projekty, CSCW, groupware, webová aplikace.

8 Keywords Software, analysis, development, groupware, project management, projects, CSCW, groupware, web application.

9 Obsah 1 Projekt a projektový management Co je to projekt a projektový management PM a epm Řízení projektu a tým Formální a virtuální týmy Výhody a nevýhody virtuálních týmů Životní cyklus projektu CSCW a Groupware Kategorizace groupware Collaborative Project management tools a Collaborative management tools Rozdíl mezi webovou a desktopovou aplikací Kritéria pro analýzu vybraných softwarových produktů Komunikace a spolupráce jako základní požadavky Přístupnost Použitelnost Validita Informační architektura Popis a analýza vybraných softwarových produktů Komerční aplikace Basecamp Popis funkcí aplikace Basecamp Analýza aplikace Basecamp Glasscubes Popis funkcí aplikace Glasscubes Analýza aplikace Glasscubes Open-source aplikace Teamlab Popis funkcí aplikace Glasscubes Analýza aplikace TeamLab dotproject Popis funkcí aplikace dotproject ix

10 Analýza aplikace dotproject Komparační tabulka a shrnutí Návrh a jádro systému Cogveo Databáze MySQL vs. PostgreSQL Databázový návrh Architektura (MVC) Controller Model View PHP a Python Django jquery Long polling, Comet Ukončení Cogveo Logo Technické požadavky Cogveo Hlavní menu Cogveo Menu konkrétního projektu Browsershots.org, validita a přístupnost InHD na Cogveo Použitá literatura Seznam obrázků x

11 Úvod Projekty a projektový management jsou v současnosti chápány jinak, než tomu bylo v minulosti. Zahrnují totiž často projekty, které jsou distribuovány na více místech zároveň. Požadavky na čas, rozpočet a kvalitu výsledného produktu jsou vzhledem ke konkurenci na trhu stále náročnější. Konkurenceschopnost člověka na trhu práce je do značné míry určena jeho schopnostmi, které by měly zahrnovat tyto základní dovednosti: Vysoký stupeň kreativity při řešení úloh, dobrou znalost angličtiny (písmem i slovem), schopnost práce v týmu a komunikační schopnosti. ¹. Cílem studentských projektů v Kabinetu informačních studií a knihovnictví realizovaných díky předmětu Aplikační seminář je zvýšit konkurenceschopnost absolventů tohoto oboru. V rámci výuky Aplikačního semináře jsou studenti vedeni ke skupinovému zpracování projektů. Díky tomu se učí spolupráci, komunikaci, práci s nástroji projektového managementu a získávají představu, jak vypadá práce projektového manažera. Studentské projekty se však odlišují od firemních projektů zjednodušením (z pohledu životního cyklu projektu), a proto by se i nástroje, které se v rámci výuky tohoto předmětu používají, měly přizpůsobit kladeným požadavkům na studenty. Téma této práce jsem si vybral, protože s nástroji projektového managementu, které jsou k dispozici v Kabinetu knihovnictví a informačních studií, pracuji již druhým rokem a spatřuji velké množství nedostatků a překážek vyskytujících se v těchto nástrojích. Dalším důvodem byla možnost uplatnění teoretických i praktických poznatků získaných za dobu studia, spolu se zkušeností s vývojem webových aplikací. Práce se nesnaží postihnout celou oblast projektového managementu, ale snaží se poukázat na význam nástrojů v projektovém managementu, zejména ve fázi, kterou se nejvíce zabývají studentské projekty. Vzhledem k tomu, že jedním z cílů této práce je též vytvořit nový nástroj pro podporu studentských projektů, akcentuji pohled programátora / vývojáře. Práce je rozčleněna na dvě hlavní části: teoretickou perspektivu a praktickou realizaci. První teoretická část se zabývá významem projektů a projektového managementu a poskytuje teoretický náhled na problematiku groupware. Dále se zabývá kritickým pohledem na 1. ČSSI-SPIS-CACIO a FIS VŠE Praha. Konkurenceschopnost absolventů IT oborů VŠ a VOŠ na trhu práce v ČR : společný projekt ČSSI-SPIS-CACIO ve spolupráci s FIS VŠE Praha. Praha : Vysoká škola ekonomická, s. Dostupné z WWW: <http://kit.vse.cz/wp-content/uploads/2009/05/zaverecna-zprava-vsev-praze-fis-informacni-technologie-mgr.pdf>. 1

12 vybrané groupware nástroje. Druhá praktická část je věnována praktickému využití znalostí získaných z kritického pohledu a zabývá se samotnou tvorbou nového nástroje. 2

13 Kapitola 1 Projekt a projektový management 1.1 Co je to projekt a projektový management Podle institutu projektového managementu je v USA na projekty vynakládáno ročně celkově přes 2,3 bilionu dolarů. Institut odhaduje, že celosvětově je takto ročně vynaloženo přibližně 10 bilionů dolarů.¹ Proto je logické, že nejdůležitějšími faktory, na které je vyvíjen tlak, jsou v současnosti především rychlost, kvalita, a také kontrola nákladů. Nástroje projektového managementu umožňují projekt kontrolovat, korigovat či včas a s minimálními náklady zastavit, a to v případě, že projekt není možné z nějakého důvodu dokončit. Tyto nástroje také přinášejí celkové snížení nákladů, zkrácení času potřebného na vývoj, zlepšení produktivity i vyšší kvalitu daného projektu.1² Projekty v současnosti mají různorodý rozsah³: Rozsah projektu Procento Místní 33 % Krajské 20 % Více krajů 28 % V rámci jedné země 28 % Více zemí 21 % Více kontinentů 15 % Tabulka 1.1: Rozsah projektů podle geografické rozlohy Z tabulky je patrné, že značné množství projektů není možné díky jejich geografickému 1. Project Management Institute. The PMI Project Management Fact Book. Second Edition. Newtown Square (Pennsylvania) : Project Management Institute, Inc., The Project, s ISBN SCHWALBE, Kathy. Řízení projektů v IT. Vyd. 1. Brno : Computer Press, Úvod do řízení projektů, s ISBN Project Management Institute. Op. cit (převzato) tabulka obsahuje více než 100%, protože respondenti měli možnost vybrat více možností. 3

14 1. P situování řešit synchronně a přímou komunikací tváří v tvář. Je u nich nutná velká koordinace a spolupráce, která není omezena časem a prostorem. Řešení přinášejí právě nástroje projektového managementu. Projekt, podle PMBOK⁴u, je: dočasné úsilí s cílem poskytnout jedinečný produkt nebo službu. ⁵ Tato definice poměrně přesně vymezuje rozdíl mezi projektem a běžně vykonávanou prací. Základní rozdíly jsou přehledně shrnuty v následující tabulce⁶: Provozní činnost Projekt Typ práce Opakovaná, nekončící Unikátní, často zahrnuje změny, sekvence kroků (navazujících úkolů Zaměření Úkony k efektivnímu plnění práce Dokončení projektu Čas Nedefinovaný počátek i konec Přesně definovaný čas určený na projekt je dočasný Cíl Nová služba, produkt nebo jiný výsledek Tabulka 1.2: Srovnání provozní činnosti a projektové práce Projektový management (také řízení projektů) je souborem nástrojů, modelů, principů a metod, které umožňují efektivní plánování a kontrolu projektu.⁷ Právě tyto metody, principy a nástroje umožňují, aby byl projekt dokončen včas, ve stanovených nákladech a splňoval všechna kritéria. V praxi je běžně v běhu několik projektů zároveň. Často dochází v různých místech k jejich vzájemnému prolínání a stejně tak jsou zaměstnanci jedné firmy mnohdy členy více různých projektů v jednom časovém okamžiku. Za těchto okolností význam projektového managementu a jeho nástrojů roste PM a epm Jak již bylo zmíněno výše, současnost klade velké nároky na projekty v časovém ohledu (například rychlost reakce na dění v projektu bez ohledu na lokaci projektu). Aby bylo možné tyto nároky splňovat, bylo nutné implementovat epm (electronic project management)⁸. 4. Project Management Institute. A Guide to the Project Management Body of Knowledge : PMBOK Guide ed edition. Newton Square (Pennsylvania) : Project Management Institute, Inc., The Project management framework, s ISBN A project is a temporary endeavor undertaken to provide a unique product or service. 6. BAKER, Sunny; BAKER, Kim. Complete Idiot s Guide to Project Management. Indianapolis : Alpha Books, Projects, Projects Everywhere, s ISBN RICHMAN, Larry. Project Management Step-by-Step. 1st edition. New York : AMACOM, Understanding the importace of project managementm s ISBN FIALA, Petr. Projektové řízení : modely, metody, analýzy. 1. vyd.. Praha : Professional Publishing, Úvod do projektového řízení, s ISBN X. 8. Česky: Elektronický projektový management 4

15 1. P Mezi zásadní výhody epm patři⁹: možnost zaměstnat pracovníky nezávisle na jejich místě možnost spolupráce stávajících zaměstnanců s dislokovanými úspora času a peněz v cestování dostupnost 24 hodin denně změny v projektu se promítají okamžitě a jsou dostupné všem účastníkům Dobrým příkladem těchto výhod je ukázka, kterou uvádí Marcus Goncalves¹⁰ ve své knize Managing Virtual Projects. Srovnává zde na příkladu zakázky jedné velké společnosti, jež má vytvořit webový portál pro celosvětový prodej, epm s PM¹¹. Díky epm se zakázku podařilo dokončit o 11 týdnů dříve, s daleko větším rozsahem portálu, který byl navíc doplněn o velké množství nadstandardních funkcí a o 40% levněji než konkurence. Ta svoji zakázku vedla klasickým projektovým managementem bez použití softwarových nástrojů Řízení projektu a tým Projektové řízení velmi úzce souvisí i s týmem. Ať se jedná o tým virtuální nebo formální (face to face)¹², oba mají společný cíl: vytvořit tým, který je schopný spolupráce a synergie. Tento je potom díky synergickému efektu schopen řešit projekt úspěšněji, než kdyby se jej pokoušel řešit každý samostatně, protože jednotliví členové týmu se ve svých schopnostech mohou doplňovat, obohacovat nebo inspirovat. Klíčovým faktorem je, aby každý člen projektového týmu věděl, jakou práci má udělat a kdy ji má udělat. 1.2 Formální a virtuální týmy Formální projektové týmy¹³, někdy také nazývané F2F (face to face) týmy, jsou tvořeny lidmi, kteří se scházejí v reálném prostředí. Formální týmy¹⁴ vznikají často ve stejné organizaci, 9. GONCALVES, Marcus. Managing Virtual Projects. 1 edition. Blacklick (Ohio) : McGraw-Hill Professional Publishing, Introduction to epm, s ISBN Tamtéž. 11. Srovnává svoji firmu (epm použili software Microsoft Enterprise Project Management) s konkurencí (PM), která pracovala na stejném projektu. 12. Česky: tváří v tvář 13. KOLAJOVÁ, Lenka. Týmová spolupráce : jak efektivně vést tým pro dosažení nejlepších výsledků. Praha : Grada Publishing, Základní charakteristiky týmu, s ISBN HAYWARD, Andres. A comparison of face-to-face and virtual software development teams. Team Performance Management : An International Journal [online]. 2002, Volume 8, Number 1/2, [cit ]. 5

16 1. P jejich členové jsou standardně vyškolení a jejich role v týmu odpovídají (jsou podobné) těm, které zastávají v pracovní pozici. Nevýhodou pro formální týmy může být sociální aspekt prosazování názorů z pozice síly. Jejich výhodou je bezesporu stálé pracovní prostředí a synchronní spolupráce nejen v čase, ale i v místě. Výhodou formálních týmů je komunikace, protože se nemusí spoléhat pouze na technologie, jež jsou bezpochyby omezenými informačními kanály. Mezi typy informačních kanálů, které jsou technologiemi přenositelné obtížně, nebo vůbec ne patří: slovní narážky mimika a pohledy gesta držení těla a fyzická blízkost Virtuální týmy definujeme jako týmy, jejichž členové bývají často z různých míst a nemusí být nutně ze stejné organizace. Členové jsou do týmu často vybráni na základě svých specifických schopností a kompetencí a jejich role v projektu se může časem měnit. Problematickým aspektem bývá důvěra mezi členy týmu a pochopitelná absence některých informačních kanálů, kterými formální tým běžně disponuje Výhody a nevýhody virtuálních týmů Virtuální týmy mají své výhody i nevýhody stejně jako týmy formální, avšak práce ve virtuálním týmu je pro účastníky náročnější, protože komunikace a spolupráce přes internet je oproti F2F rozdílná a v mnohém obtížná. Výhody: Virtuální pracovní prostředí umožňuje pracovat 24 hodin denně, 7 dní v týdnu, což přináší konkurenční výhodu a rychlejší zpracování projektu, protože týmy nejsou vázány na standardní pracovní dobu. Pracovníci netráví zbytečný čas cestováním. Virtuální prostředí rozšiřuje možnosti zapojení dalších participantů nebo týmů do projektu, a tím může zvyšovat pravděpodobnost dosažení cíle projektu. Virtuální týmy jsou flexibilnější a přizpůsobivější díky využití elektronických nástrojů. Virtuální týmy umožňují snazší zapojení handicapovaných uživatelů. Dostupný z WWW: <http://www.emeraldinsight.com/ htm>. ISSN

17 1. P Nevýhody¹⁵: Vyšší nároky na kompetenci pracovat s elektronickými nástroji a mít možnost neustálého připojení k internetu. Vyšší nároky na důvěru mezi členy týmu (spolehlivost, pravdomluvnost, kompetentnost).¹⁶ Vyšší nároky na důvěru v projektové aspekty (smysl projektu, efekt a procesy).¹⁷ Nedostatek osobního kontaktu, možnost pocitu osamocení a izolace. Riziko pocitu nedostatku vykonané práce u některých členů. Z tohoto důvodu začnou pracovat déle a může vzniknout pracovní přetížení (burn out efekt). Práce v týmu s lidmi, kteří se navzájem nikdy neviděli, může být ze sociálního hlediska obtížná a pro manažera na zvládnutí složitá. Úkoly a zodpovědnost za ně musí být jasně definovány, aby nenastala situace, kdy všichni dělají totéž, nebo naopak nikdo nedělá nic Životní cyklus projektu Každý projekt má svůj počátek a svůj konec. Mezi těmito dvěma významnými body prochází projekt různými fázemi souhrně označovanými jako životní cyklus projektu. Podle metodiky MPMM¹⁸ se životní cyklus projektu skládá ze čtyř fází:¹⁹ iniciační fáze projektu plánovací fáze projektu fáze provedení projektu fáze ukončení projektu 15. Small Business Service, Kingsgate House. The advantages and disadvantages of working in a virtual team Business Link. [cit ]. Dostupné z WWW: <http://www.businesslink.gov.uk/bdotg/action/detail?itemid= &site=181&type=resources>. 16. Snozová Martina. PARTSIP: Týmová spolupráce aneb Jak funguje virtuální tým?. Inflow: information journal [online]. 2011, roč. 4, č. 3 [cit ]. Dostupný z WWW: <http://www.inflow.cz/zprava-zeseminare-technologie-tymova-spoluprace>. ISSN Tamtéž. 18. Method 123 Project Management Methodology 19. Method 123 Ltd. Project management guidebook [online]. La Habra : Method 123 Ltd., 2003 [cit ]. Dostupné z WWW: <http://www.method123.com/free-project-management-book.php>. ISBN

18 1. P Různé metodiky fáze životního cyklu projektu pojmenovávají jinak, ale přesto je definují podobně.²⁰ Pro všechny tyto fáze projektu existují softwarové nástroje, které mají za úkol práci v projektu ulehčit a zpřehlednit. Vzhledem k zaměření této práce převážně na studentské projekty, je důležité zmínit fakt, že tyto studentské projekty jsou poněkud specifické a ačkoliv projekty prochází podobnými fázemi, jsou zjednodušeny a zpřehledněny. 20. Např. metodika RUP od firmy IBM, životní cyklus podle Allena Warrena apod. 8

19 Kapitola 2 CSCW a Groupware Pojem CSCW (Computer supported cooperative work)¹, byl poprvé použit jako název workshopu vedeného Irene Grief a Paulem Cashmanem v roce 1984.² Smyslem tohoto názvu bylo spojení počítačových systémů a jedinců kooperujících na společném projektu. Přesto toto pojetí působí poněkud široce, a proto je Paul Wilson³ definoval jako obecné pojmenování, které v sobě kombinuje chápání práce v týmech s využitím možností technologie počítačových sítí a s nimi souvisejícího hardwaru, softwaru, služeb a technik. ⁴ CSCW se podle Wilsona zabývá primárně oblastí procesu týmové spolupráce a technologickou oblastí. Obě tyto oblasti dělí do dalších 4 kategorií. V oblasti týmové spolupráce jsou to: individuální lidské vlastnosti organizační aspekty problematika návrhu týmové spolupráce dynamické aspekty týmu Technologická oblast je dělena na: komunikační mechanismy (vzdálená komunikace na geograficky neomezenou vzdálenost) sdílené pracovní prostředí (sdílená virtuální pracovní plocha) sdílené informační zdroje (elektronické informační zdroje, vlastní datové sklady a nástroje na dolování dat, stroje pro znovuzískání informací, systémy pro správu dokumentů) 1. Česky: počítačově podporovaná kooperativní práce 2. WILSON, Paul. Computer Supported Cooperative Work : An Introduction. 1st ed. Dordrecht : Kluwer Academic Publishers, What is CSCW, s ISBN Tamtéž. 4. a generic term which combines the understanding of the way people work in groups with the enabling technologies of computer networking and associated hardware, software, services and techniques. 9

20 2. CSCW G nástroje na sdílenou týmovou práci (nástroje pro správu zdrojového kódu (SVN, GitHub), workflow systémy) Pojem Groupware⁵ definuje Robert Johansen⁶, jenž tvrdí, že je to specializovaná počítačová pomůcka, která byla navržena pro užití spolupracujícími skupinami ⁷. Groupware je tvořen konkrétními nástroji pro podporu týmové práce, zefektivnění a zpřehlednění spolupráce, implementujícími metodiku CSCW. 2.1 Kategorizace groupware Groupware lze kategorizovat z více hledisek. Mnoho autorů⁸ se v současné době přiklání k základní kategorizaci dle matice času a místa (Time/Place Matrix)⁹. Stejné místo Různá místa Stejný čas Diskuze F2F Telefon Různý čas Samolepící poznámky Dopis Tabulka 2.1: Matice času a místa (Time / Space Matrix) Podle této matice CSCW lze groupware snadno rozdělit do dvou základních skupin: Synchronní jedná se o systémy pomáhající skupině jednotlivců spolupracovat ve stejném čase. Lze sem zahrnout např.: systémy DCS (Desktop conferencing systems)¹⁰ - základem této technologie je sdílení pracovní plochy pro kolaborativní činnost. V současnosti se hovoří spíše o web conferencing¹¹ systémy GDSS (Group decision support systems)¹² 5. Někdy také collaborative system (kolaborativní systémy), workgroup support systems (systémy pro podporu týmové práce), nebo group support systems (systémy pro podporu týmů) 6. JOHANSON, Robert. Groupware : Computer Support for Business Teams. Menlo Park : Macmillan, Introducing groupware, s ISBN specialized computer aids that are designed for the use of collaborative work groups 8. Např. R. Griffiths, P. Wilson, R. Johanson, R. Whitetaker, G. DeSanctis, B. Gallupe, J. Finlay, R. Beale a další 9. DIX, Alan, et al. Human-Computer Interaction. 3rd Edition. New Jersey : Prentice Hall, Groupware, s ISBN V dnešní době tyto systémy, představují systémy webové konference. 11. Např. Cisco webex umožňuje sdílení pracovní plochy, videokonferenci, kolaborativní psaní apod. Umí připojit do konference i mobilní zařízení (iphone, Blackberry, Android) 12. Česky: Systémy pro podporu skupinového rozhodování. Např. smartspeed Connect webový nástroj, který umožňuje prostřednictvím internetu brainstorming, diskuze, volby atp. 10

21 2. CSCW G videokonference chaty telefonní rozhovory Asynchronní tyto systémy podporují činnost a schopnost řešit problém napříč časem i prostorem, protože členové týmu mohou být mezi sebou vzdáleni na geograficky neomezenou vzdálenost. Spadá sem např. , verzovací systémy1, workflow systémy, nástroje pro kolaborativní psaní a jiné. Další kategorizaci uvádí Petr Škyřík¹³ ve svém příspěvku Computer Supported Cooperative Work, který přednesl na konferenci Knihovny současnosti Rozděluje je podle: Úrovně sdílení informací s jakými informacemi uživatelé pracují, jaká je jejich prezentace a práva nad nimi Objektu kooperativní činnosti na co nebo na koho je cíleno zaměření (uživatel, dokument, proces nebo pracovník) Na konferenci systémových věd ve svém příspěvku Numamaker¹⁴ se svými kolegy přednesl nový systém rozdělení do pěti hierarchických úrovní podle úrovně spolupráce. Jsou to následující stupně: komunikační (Communicative) kolektivní (Collective) kooperativní (Cooperative) koordinační (Coordinated) vzájemné shody (Concerted) Každá úroveň má vyšší vliv na týmovou produkci než předchozí (např. při porovnání úrovní kooperativní a vzájemné shody se jedná o rozdíl mezi součtem výkonů jednotlivců a součtem výkonů jednotlivců, ad hoc týmu a koordinovaného výkonu týmu). Každý projekt má svůj životní cyklus a metodiky pro jeho řešení rozebírající projekt na jednotlivé fáze a definující jednotlivé kroky. Příkladem takové metodiky je metodika Prince2¹⁵, 13. ŠKYŘÍK, Petr. Computer Supported Cooperative Work. Knihovnický zpravodaj Vysočina [online]. 2009, 10, 2, [cit ]. Dostupný z WWW: <http://kzv.kkvysociny.cz/default.aspx?id=1159>. ISSN ROMANO, Nicolas; CHEN, Fang; NUMAMAKER, Jay. Collaborative project management software. In Proceedings of the 35th Hawaii International Conference on System Sciences : [s.l.] : The computer society, ISSN /

22 2. CSCW G kterou ve svém dokumentu Guidelines for managing projects¹⁶ často doporučuje britský Ústav pro podnikání, inovace a dovednosti. Pro každou fázi projektu, definovanou touto metodikou, existují softwarové produkty, jež se snaží co nejvíce zjednodušit a ulehčit práci projektového manažera¹⁷. Vzhledem k charakteru a zaměření této práce na projekty studentské úrovně jsem se rozhodl věnovat největší pozornost dělení nástrojů na nástroje CPT (Collaborative project tools)¹⁸ a CPMT (Collaborative project management tools)¹⁹. Ačkoliv se v současnosti softwarové produkty snaží tyto dvě kategorie co nejvíce sloučit, lze je jednoznačně odlišit. Důležité je také zmínit rozdělení softwarových produktů podle těchto aspektů²⁰: řešení proprietární²¹ X řešení open-source²² řešení klient-server (desktopové) X webové 2.2 Collaborative Project management tools a Collaborative management tools Z obecného pohledu softwarové nástroje pro spolupráci poskytují platformu pro společnou práci směřující k jasně definovanému cíli. Tento prostor v sobě začleňuje nástroje pro komunikaci týmu na geograficky neomezené vzdálenosti, nástroje pro podporu společného řešení problémů, brainstorming, časové plánování, správu dokumentů a souborů, jejich verzování apod. Nástroje pro podporu projektového řízení (CPMT) a nástroje pro podporu projektové spolupráce (CMT) mají mnoho společných znaků a zahrnují v sobě výše zmíněné nástroje. Základním rozdílem mezi CMT a CPMT spočívá v jejich záběru z pohledu na životní cyklus projektu. Zatímco CPMT nástroje se zabývají co nejširší podporou projektu od jeho zahajovací fáze, přes rozpracování a tvorbu až po ukončení a předání projektu²³, nástroje CMT se zabývají spíše jednotlivou fází daného projektu. V případě studentských projektů se jedná o fázi tvorby. 16. Department of Business, Enterprise and Regulatory Reform.Guidelines for managing projects. [s.l.] : Crown, s. Dostupné z WWW: <http://www.berr.gov.uk>. 17. ZEDEK, Martin. Tvorba softwaru 2005 [online] [cit ]. SW nástroje pro podporu projektového řízení v malých a středních firmách. Dostupné z WWW: <http://formularekf.vsb.cz/formulare/f01/tsw/getfile.php?prispevekid=856>. 18. Česky: Nástroje pro podporu projektové spolupráce 19. Česky: Nástroje pro podporu projektového řízení 20. KRŮTA, Tomáš. Software pro projektové řízení. Computerworld. 2010, Ročník XXI, 20, s ISSN Takové řešení neposkytuje zdrojový kód a je komerčního charakteru. 22. Tento typ řešení naopak poskytuje zdrojové kódy a je možné za určitých podmínek tento kód měnit a dále šířit. Jedná se o nekomerční software. 23. BERR Project lifecycle 12

23 2. CSCW G Základní rozdíly mezi oběma druhy softwarových aplikací by se daly shrnout takto²⁴: Collaborative project management tools (navíc oproti CMT obsahují) Vizuální nástroje (Ganttovy diagramy, PERT diagramy ) Systémy integrace projektu Projektová dokumentace (včetně dokumentového repozitáře a verzovacích systémů) Systémy řízení projektového portfolia (meziprojektové vazby, zdroje napříč projekty) Systémy řízení a správy rizik Systémy správy zdrojů (finančních, lidských, materiálních ) Systémy pro integrovatelnost na jiné oblasti (ERP systémy²⁵) Nástroje pro monitoring projektu Nástroje pro videokonference Moduly pro uživatele, projektové manažery i akcionáři Help-desk aplikace Collaborative management tools Kalendářové aplikace Workflow systémy Sociální softwarové prvky WYSWYG aplikace pro úpravu dokumentů Systémy správy úkolů Systémy pro podporu projektového plánování Bug tracking systémy Chat Samolepící poznámky Tabulka 2.2: Porovnání funkcí CMT a CPMT aplikací V současnosti se většina softwarových aplikací snaží zastat obě role vzhledem k modulárnosti uživatelského pohledu (tj. každý typ uživatele vidí projekt odlišně). Příkladem takových komplexních nástrojů jsou IBM Rational²⁶ nebo Hewlett-Packard PPM Project Management Module.²⁷ 2.3 Rozdíl mezi webovou a desktopovou aplikací Výše zmíněné nástroje lze rozlišit i podle toho, zda se jedná o webovou nebo desktopovou aplikaci. Webové aplikace běží ve webových prohlížečích nezávisle na platformě nebo architektuře. Desktopové aplikace jsou oproti tomu vázány operačním systémem a mnohdy i architekturou (nejen 32bit a 64bit, ale i typem procesoru: ARM, x86). Lze tedy konstatovat, že webové aplikace mají z tohoto pohledu výhodu oproti aplikacím desktopovým. Další nezanedbatelnou výhodou je i jejich dostupnost. Jsou totiž přístupné odkudkoliv z internetu, bez nutnosti instalace (s čímž souvisí i možnost vyhnout se například nákaze virem). Zároveň je také zajištěno, že aplikace je vždy aktualizovaná. 24. Collaborative software. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, 26 February 2002, last modified on 8 March 2011 [cit ]. Dostupné z WWW: <http://en.wikipedia.org/wiki/collaborative_software>. ČEJKA, Jiří. Software pro řízení projektu : je nezbytným pomocníkem profesionálů. Computerworld. 2010, Ročník XXI, 16, s ISSN KRŮTA, Tomáš. Software pro projektové řízení. Computerworld. 2010, Ročník XXI, 20, s ISSN MÜLLER, Miroslav. Nástrojová podpora pro projektové řízení. Computerworld. 2008, Ročník XIX, 13, s ISSN https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp= _4000_100 13

24 2. CSCW G Na druhou stranu je nutné připomenout, že všechny webové aplikace před rokem 2000 trpěly nevýhodou v podobě nutnosti překreslení celé stránky při jakémkoliv požadavku (ať ze strany uživatele, nebo aplikace). Ke změně v této oblasti došlo v roce 2000 zavedením objektu XMLHttpRequest²⁸, který tuto nevýhodu odstranil. Další zásadním problémem webových aplikací byla jejich podstata fungování na protokolu HTTP pracujícího na principu dotaz odpověď. To neumožňuje serveru zaslat klientovi data v případě, že došlo ke změně na serveru dat bez toho, aby uživatel (aplikace) znovu žádal o data (bez ohledu na způsob). Tato nevýhoda se často řešila opakovanou žádostí o data v pravidelném časovém intervalu (tzv. heartbeat technika). Řešení, jak se zbavit této zásadní nevýhody existuje v současnosti několik. Příkladem je long polling²⁹ (comet³⁰), který funguje na principu dotazu klienta na server (comet pracuje na úrovni protokolu HTTP a Ajax techniky), který zašle nová data (pokud jsou k dispozici) a klient po přijetí okamžitě žádá o nová data (v tomto případě server nová data nemá). Avšak místo odpovědi, že žádná nová data nejsou, server čeká, dokud nová data nebudou k dispozici (popř. na vypršení času - timeout), a ta teprve pošle klientovi a celý proces se opakuje. Nejnověji se tento problém řeší technikou websockets³¹ (uvedené v HTML5). Tato umožňuje klientovi, aby se serverem navázal perzistentní spojení, jež je obousměrné a umožňuje zasílat oběma stranám data. Bohužel websockets jsou zatím ve fázi návrhu a vzhledem k bezpečnostním rizikům (Adam Barth³² předložil několik možností bezpečnostního zneužití) je nyní websockets v prohlížečích Opera i Mozilla Firefox zakázáno.³³ V současnosti webové aplikace využívají i externích programů a frameworků, které jsou v systému nainstalovány (např. Java, Adobe Flash, JavaScript apod.). Tyto aplikace umožnily vznik tzv. RIA (Rich Internet Aplication). Výhodou těchto RIA aplikací je, že se snaží smazat rozdíl mezi desktopovou a webovou aplikací jak z hlediska funkcí, tak i rozhraní a tím zvýšit komfort uživatele. Jejich funkce jim umožňují pracovat například s webkamerou, mikrofonem a omezeně umí pracovat i s 3D grafickým rozhraním (v HTML 5 existuje element canvas umožňující práci s 3D). Jediným zásadním rozdílem je fakt, že běží v prohlížeči a vyžadují připojení k internetu

25 Kapitola 3 Kritéria pro analýzu vybraných softwarových produktů 3.1 Komunikace a spolupráce jako základní požadavky Aby bylo vůbec možné hovořit o hodnocení softwarového produktu, je nutné nejprve stanovit základní funkční požadavky, které by měl daný nástroj splňovat. Martin Zedek¹ zmiňuje následující oblasti aplikací, jež by v projektu měly pomoci: sdílení a správa dokumentů elektronická komunikace systém správy úkolů Ke každé z těchto klíčových oblastí zmiňuje konkrétní nástroje splňující daný účel. Existují také nástroje, které v sobě integrují tyto vlastnosti a poskytují i další funkcionalitu. Zahrnují například následující funkce: kalendář a plánování znalostní báze sociální software a komunikační nástroje nástroje pro sdílení souborů verzovací nástroje wiki systémy nástroje pro správu úkolů Celkové hodnocení dané softwarové aplikace bude vycházet z toho, jaké má funkce, nakolik je v sobě integruje a zda umožňuje i napojení na další uživatelem používané aplikace (např. ový klient s kalendářem Mozilla Thunderbird nebo Microsoft Outlook). 1. ZEDEK, Martin. Tvorba softwaru 2005 [online] [cit ]. SW nástroje pro podporu projektového řízení v malých a středních firmách. Dostupné z WWW: <http://formularekf.vsb.cz/formulare/f01/tsw/getfile.php?prispevekid=856>. 15

26 3. K Jako základní hodnotící kritéria jsem si zvolil: přehledy projekty skupiny úkoly milníky kalendáře soubory diskuze 3.2 Přístupnost Přístupnost zahrnuji do hodnotících kritérií vybraných CMT produktů z praktického hlediska, protože přístupná webová aplikace je aplikace bezbariérová. Což znamená, že uživateli nejsou v používání takové aplikace kladeny žádné překážky. Naši potencionální členové týmu mohou mít nějakou specifickou potřebu (například zrakovou, sluchovou nebo kombinovanou). Přístupná aplikace, která jim nebude v práci překážet nebo ji dokonce znemožňovat, bude v konečném důsledku znamenat zvýšení efektivity týmu. Přístupnost však není omezena jen na uživatele se specifickými potřebami. Jedná se i o možnost používat webovou aplikaci na mobilním telefonu, jiné platformě nebo o možnost jejího ovládání pomocí klávesnice. Existuje velké množství standardů, které se zabývají přístupností webu (webových aplikací): Section 508² WAI³ WCAG 2.0⁴ Přístupností se zabývá i legislativní úprava pro weby státní správy⁵. Základním hodnotícím kritériem je zda aplikace splňuje výše zmíněné standardy. 2. Dostupný na: 3. Dostupný na: 4. Dostupný na: 5. Zákon č. 365/200Sb. Dostupný na: 16

27 3. K 3.3 Použitelnost Použitelnost je vlastností (nejen) webu, která určuje, do jaké míry je použitelný: zda se na něm uživatelé dokáží zorientovat jak snadno na něm uživatel dosáhne své cíle v jakém čase to dokáže kolik chyb uživatel učinil, než dosáhl požadovaného cíle Z technického hlediska se použitelnost zabývá mnoha aspekty, jako příklad uveďme prototypování, kognitivní procházku, uživatelské testování, rozměry stránky (pevný nebo pružný design, optimalizace pro cílové rozlišení), vizuální logiku (kontrast elementů, optický střed), kompozici obsahu (návyky uživatelů na pozice jednotlivých prvků), navigaci (globální navigace, subnavigace) nebo vyhledávání. Pro použitelnost existují následující obecné standardy: ISO/TR 16982:2002⁶ tento standard je zaměřen převážně na projektové manažery; na pochopení významu ergonomických a lidských aspektů při návrhu designu jako takového. Doplňuje ho ISO ISO 9241⁷ - tento standard je určen spíše pro techniky či vývojáře. Má mnoho částí, které se zabývají širokým spektrem ergonomie HSI⁸. Hodnotící kritéria použitelnosti vycházejí ze 113 doporučení, které uvádějí Jakob Nielsen a Marie Tahir⁹. 3.4 Validita Na validitu webu neexistuje jednoznačný názor. Ptát se anonymní online komunity na toto téma vyvolává rozporuplné názory a mnohdy i nepříjemnou diskuzi (flame). Martin Krčál ve své práci¹⁰ zmiňuje webové standardy jako důležitý prvek, zajišťující správné vykreslení webu. S jeho názorem beze zbytku souhlasím, protože nevalidní web je pro člověka totéž jako text s gramatickými chybami. Stejně jako prohlížeč si člověk umí domyslet Human - System Interaction 9. NIELSEN, Jakob; TAHIR, Marie. Použitelnost domovských stránek. Brno : Zoner Press, Doporučení pro domovské stránky, s ISBN KRČÁL, Martin. Tvorba webových stránek v prostředí vysokoškolských knihoven. Brno: Masarykova univerzita, Filozofická fakulta, Ústav české literatury a knihovnictví, Kabinet knihovnictví, s. Vedoucí diplomové práce Dr. Ing. Zdeněk Kadlec. 17

28 3. K správný význam (zobrazení) textu, ale to neznamená, že tato schopnost jedince (i prohlížeče webu) je důvodem, proč nepsat gramaticky správně tj. dle standardu českého jazyka. Častým argumentem odpůrců validity je fakt, že pokud se web zobrazí ve většině prohlížečů, nemá smysl mít stránky validní. Na první pohled se jedná o rozumný a logický argument, avšak pod pojmem většina prohlížečů si odpůrci představují trio (kvarteto) prohlížečů: Internet Explorer, Mozilla Firefox, Opera (případně Google Chrome). Ale kromě nich existuje celá řada dalších programů: Prohlížeče pro mobilní zařízení jako např.: Opera Mobile, Opera Mini, Skyfire, Doplhin HD, Aquari Browser Hlasové čtečky pro slabozraké / nevidomé např.: GB-Soft TTS Dalším často zmiňovaným argumentem je, že většina velkých webů není validní (např. Google.com, Lupa.cz, Seznam.cz). Skutečně např. Seznam i Google používají DOCTYPE html. Důvody vysvětluje Dustin Diaz ze společnosti Google na svém blogu¹¹: Opravdu neexistuje absolutně žádný důvod, proč byste potřebovali zbytek doctypu v deklaraci pokud nevalidujete kód. Navíc to ani neznamená, že by kód byl nevalidní. Pouze vaše stránky donutí prohlížeč, aby se zobrazily ve standardním módu, což je to, co se počítá. (Navíc je snadné si tuto definici zapamatovat). ¹² Další vysvětlení poskytuje i David Calhoun¹³, který říká: záleží na každém bajtu.¹⁴ Z pohledu návštěvnosti výše zmíněných webů je tento argument velmi praktický. Návštěvnost a potažmo i datový tok je velký a každý ušetřený bajt se ve velkém promítne do časového zpracování požadavku, datového toku a konečně i do celkových nákladů na provoz. Jak je tedy vidět, ani argument o validitě velkých webů není stoprocentně správný. Mimo jiné je validita také spojena s jednodušší indexací pro roboty (byť se nijak významněji nepodepisuje na pozici SERP¹⁵ (Search engine results page), jelikož roboti jsou taktéž velice benevolentní, pokud je obsah stránek zajímavý). Validita je také dobrým nástrojem pro ladění webu (například neuzavřené tagy). Konečně validní web dodržuje standard - bez standardů by si každá společnost (dokonce i jedinec) mohla vytvářet weby podle svého vlastního jazyka a využí- 11. DIAZ, Dustin. I am dustin diaz : and while you re at it... boosh. don t worry about it. [online]. Monday, November 24th, 2008 [cit ]. The Skinny on Doctypes. Dostupné z WWW: <http://themaingate.net/dev/html/all-you-need-is-doctype-html>. 12. There is really, absolutely no reason you need the rest of the doctype in your declaration unless you re validating code. Furthermore, it does not mean that your page is even invalid. In the end, it puts your webpages into standards mode, which is what really matters. (Plus it s easy to memorize ;) 13. CALHOUN, David. David s Web Development Blog : HTML, CSS, Javascript, PHP, and other assorted code [online]. Nov 29th, 2008 [cit ]. All you need is. Dostupné z WWW: <http://themaingate.net/dev/html/all-you-need-is-doctype-html>. 14. every byte matters 15. Na pozici na stránce výsledků vyhledávače (google, seznam atp.). 18

29 3. K vat k tomu vlastní přenosový protokol. Vývoj takových nástrojů však stojí nemalé zdroje, a proto je ekonomicky mnohem výhodnější spolehnout se na již vytvořené standardy. Hodnotícími kritérii validity jsou validita kódů xhtml a CSS. 3.5 Informační architektura Informační architektura je oborem, jenž se zabývá klasifikací, tříděním a organizováním informací. Jejím cílem je, aby se uživatelé na stránkách snadněji orientovali a rychleji našli informaci, kterou hledají. Velký význam informační architektury spočívá v její souvislosti s použitelností webových stránek. V dnešní době se můžeme ptát, zda vůbec existuje někdo jako informační architekt. Jesse James Garrett na IA Summit¹⁶ v roce 2008 prohlásil: Neexistuje nic takového jako informační architekt, jsou a vždy budou jen designéři uživatelské zkušenosti. ¹⁷. Dokladem toho, že má pravdu, může být i graf¹⁸ zobrazující počet vyhledávání pojmu informační architekt (červená) a vzrůst termínu uživatelská zkušenost (modrá) v letech 2004 až Obrázek 3.1: Porovnání vyhledávání v Google za roky There is no such thing as information architects - there are only and have only ever been user experience (UX) designers. 18. KLYN, Dan. A Posting for a Job That Does Not Exist : How We Might Define Information Architects in Today s Integrated Advertising Agency. Bulletin of the American Society for Information Science and Technology [online]. 2010, volume 36, number 6, [cit ]. Dostupný z WWW: <http://www.asis.org/bulletin/aug-10/index.html>. ISSN

30 3. K Zda je vhodnější raději používat pojem uživatelská zkušenost, nebo informační architektura, je otázka, kterou se v současnosti komunita informačních profesionálů zabývá. User experience je podle mého názoru vhodnější, protože se tento obor zaměřuje právě na uživatele a umožňuje lépe vystihnout povahu hodnocení z jeho pozice. Jako základní hodnotící kritéria jsem zvolil: organizace tj. jaké organizační schéma převládá (exaktní nebo víceznačné) navigace jaká je globální, lokální nebo i kontextová navigace pro uživatele vyhledávání zda vůbec umožňují systémy vyhledávat, a pokud ano, jakým způsobem, jak řadí výsledky. popisky (Labeling) jaké jsou popisky navigačního systému, nadpisy a hypertextové odkazy. 20

31 Kapitola 4 Popis a analýza vybraných softwarových produktů Na trhu existuje velké množství produktů zaměřujících se na podporu projektového řízení. K hodnocení jsem vybral dva produkty komerční a dva nekomerční. Basecamp je produkt, který využívá Kabinet informačních studií a knihovnictví již několik let, a proto se stal v tomto hodnocení logickou volbou. Glasscubes jsem vybral po své účasti na semináři PARTSIP - elektronické informační zdroje a nadstavbové nástroje. Zde jsem diskutoval o softwarových nástrojích pro projektový management s manažerkou projektu PARTSIP Mgr. Ladislavou Suchou. Ta mi sdělila, že uvažuje o produktu Glasscubes. Tento byl shledán zajímavým a zahrnut do hodnocení. Z open sourceových produktů jsem vybral Teamlab. O přechodu na něj z komerčního Basecampu uvažoval Kabinet informačních studií a knihovnictví a první reakce na něj byly velmi pozitivní. Poslední vybranou aplikací měla být aplikace Codendi. Tu jsem zvolil, protože se jedná o produkt firmy Xerox, který se chlubí kompletním pokrytím životního cyklu projektu a nabízí i možnosti komerčních nástrojů vyšší třídy. Jak se však v průběhu testu ukázalo, jedná se především o nástroj pro vývoj softwaru, jenž sice pokrývá celý životní cyklus projektu a poskytuje 3 různé úrovně zobrazení podle typu uživatele, ale není určen pro projekty studentského typu. Poslední vybranou open source aplikací se stala aplikace dotproject. 4.1 Komerční aplikace Basecamp Basecamp¹ je webová aplikace firmy 37Signals². Je poskytována formou SaaS (Software as a Service)³, není ji tedy možné hostovat na svém serveru, vše je poskytováno firmou 37Signals. Výhoda takového řešení plyne z nulových nákladů na údržbu a správu aplikace (aktualizace, zabezpečení) a hardwaru. Aktuálně je Basecamp k dispozici v pěti různých verzích. Základní plán nabízí zdarma správu pouze jednoho projektu, dvou writeboardů a 10MB úložného prostoru. Z opačného konce nabízí plán MAX neomezený počet projektů a uživatelů a 75GB úložného prostoru za cenu Česky: Aplikace jako služba. 21

32 4. P dolarů měsíčně. Basecamp nedisponuje funkcí chat. Ta je k dispozici pouze jako modul Campfire⁴, který se přikupuje za měsíční poplatek. Výhodou Basecampu je jeho modularita a velké množství externích modulů⁵. Ty je možné přikoupit a propojit s Basecampem. Tím však vzrůstají měsíční náklady na provoz tohoto systému. V případě práce s více projekty Basecamp nabízí rychlý přehled v podobě modulu Dashboard, který obsahuje přehled nadcházejících milníků, kalendář milníků a úkolů a poskytuje náhled na poslední události v projektech, ve kterých uživatel participuje. Dashboard má nevýhodu, že se stává nepřehledným v momentě, kdy uživatel má více projektů současně (4 a více projektů). Stránka se stává zbytečně dlouhou a kalendář ztratí svůj účel, protože se v něm mísí všechny události ze všech projektů. Neexistuje zde ani kolizní systém, jenž by ukazoval překrytí dvou událostí. V případě, že uživatel má pouze jeden projekt, je zbytečné jej přesměrovávat na Dashboard a nutit jej prokliknout se z něho k jedinému projektu, který má k dispozici. Z Dashboardu je možné přepnout se do jednoho z projektů. Popis funkcí aplikace Basecamp Pro konkrétní projekt Basecamp nabízí tyto moduly: Overview (přehled): Tento modul poskytuje rychlý přehled projektu. Zobrazuje kalendář milníků a úkolů a aktivitu v projektu. Obsahuje odkazy pro rychlé vytvoření nové zprávy, writeboardu, úkolů nebo nahrání nového souboru. Modul neposkytuje odkazy na úkoly, ačkoliv u writeboardů nebo zpráv je poskytuje. V pravé části se nachází seznam členů v projektu. Poněkud nelogicky jsou řazeni podle skupiny, ve které se nachází. Obrázek 4.1: Basecamp a zobrazení overview v projektu

33 4. P Messages (zprávy): Zobrazení a správa zpráv v projektu. Modul zobrazuje jako první seznam nejaktivnějších diskuzí a pod nimi seznam zpráv, řazených podle poslední přidané zprávy. Přepínač expanded a list view nemá na tuto volbu žádný vliv. A pouze přepíná v části zobrazující zprávy řazené chronologicky, zda je zobrazena poslední zpráva nebo jen odkaz na diskuzi k ní. Kategorie zpráv není možné skrýt. To-Dos (úkoly): To-Dos je modul správy úkolů a seznamů úkolů. Umožňuje vytvářet seznamy úkolů a do nich přidávat konkrétní úkoly, které lze přiřadit konkrétní osobě v projektu. V přehledu je možné řadit tyto seznamy úkolů podle přání uživatele a filtrovat. Nevýhodný je primární způsob filtrování (všechny seznamy úkolů přiřazené komukoliv). Tím může vzniknout dlouhý seznam úkolů a zpracování stránky tím trvá dlouho, ačkoliv uživatele nejčastěji zajímají vlastní úkoly. Každý úkol je možné komentovat, ale právo mazat zprávy u úkolů má jen administrátor nebo vlastník Basecamp účtu. Milestones (milníky): Správce milníků projektu dobře využívající barevného odlišení jednotlivých milníků. Zeleně jsou zobrazeny hotové, žlutě nadcházející a červeně zpožděné milníky. Modul umožňuje exportovat kalendář do formátu icalendar a importovat jej do aplikace, kterou je uživatel zvyklý používat (Apple ical nebo Mozilla Calendar ). Zásadní vadou je nemožnost k danému milníku nastavit čas a jediným řešením tohoto problému je dopsání konkrétního času do názvu milníku. Také chybí možnost označit více hotových milníků a smazat je najednou. Writeboards (tabule): Writeboard slouží jako verzovaná tabule, kterou však není možné editovat v reálném čase (kolaborativní psaní). Writeboardy jsou ve výpisu řazeny podle abecedy, nikoliv dle data vytvoření či podle aktivity. Time (správa času): Tento modul vynechávám, neboť se nepodařilo jej vhodně otestovat. Docházelo k potížím v zobrazení (některým uživatelům se zobrazoval, jiným nikoliv). Nastavení projektu neukázalo žádné související nastavení. Files (správa souborů): Správce souborů umožňující verzování. Primárně jsou soubory řazeny podle poslední aktivity (nahrání, nahrání novější verze). Je možné je řadit podle autora a kategorie. Kategorie není možné upravovat ani editovat (tuto možnost má pouze administrátor a vlastník projektu). Chybí možnost řazení podle typu souboru. Stav nahrávání souboru zobrazuje obrázek (progress bar) bez číselného zobrazení a odhadu času dokončení. Obecně lze konstatovat, že nahrávání je velmi pomalé a u větších souborů (větších než 50MB) často docházelo k zastavení nahrávání bez ohlášení chyby. Stahování souborů je velmi pomalé i na dostatečně kvalitní lince⁶ (maximální rychlost stahování, které se podařilo dosáhnout, byla 125KB/s). 6. Testovaná linka dosáhla rychlosti stahování: 59,19Mb/s; nahrávání: 73,44Mb/s; ping: 8ms podle Speedtest.net. Konkrétní výsledek testu: 23

34 4. P People (seznam členů v projektu): Tato sekce zobrazuje všechny účastníky projektu, včetně jejich kontaktů, řazené podle abecedy a rozdělené podle příslušné skupiny. Administrátoři zde mohou nastavovat tři úrovně oprávnění k projektům a přidávat nebo odebírat účastníky projektu. Search (vyhledávání): Vyhledávací políčko není k dispozici napříč moduly a je nutné se přepnout do sekce vyhledávání. Zde se nacházejí poslední vyhledávané výrazy. Vyhledávací políčko neobsahuje žádnou formu našeptávače. Nikde se v tomto modulu nenachází informace o syntaxi vyhledávání. Analýza aplikace Basecamp Projektový management Přehledy Projekty Skupiny Úkoly Poskytuje Pouze vlastník Pouze administrátoři a vlastníci Poskytuje Milníky Kalendáře Soubory Diskuze Poskytuje omezeně Poskytuje Poskytuje Poskytuje Tabulka 4.1: Analýza: Basecamp - Projektový managament Přístupnost Section 508 WCAG 2.0 Porušuje pravidla a Porušuje pravidlo 1.1 (a) Tabulka 4.2: Analýza: Basecamp - Přístupnost Použitelnost Basecamp nesplňuje několik doporučení z hlediska použitelnosti. Jako příklady lze uvést: absence odkazu na hlavní stránku aplikace zpracování data a času (kalendář začíná nedělí bez možnosti přenastavit na pondělí) většinu doporučení ohledně URL adres Validita Stránky generované aplikací Basecamp jsou naprosto nevalidní a nedodržují deklarovaný standard (XHTML 1.0 Transitional). Často se opakuje chyba v podobě několikanásobného využívání unikátního identifikátoru id. Běžně se vyskytují i chybné hodnoty 24

35 4. P atributů tagů (např. img align absmiddle) nebo neexistující atributy (div record). Basecamp pro svůj chod vyžaduje zapnutý JavaScript a odmítá bez něj fungovat. HTML CSS Nevalidní Nevalidní 70 chyb 210 chyb Tabulka 4.3: Analýza: Basecamp - Validita Informační architektura Organizační schéma je nejednoznačné, úkolově orientované, ale v některých sekcích exaktní - alfabetické. Navigace je víceúrovňová a rozložená na stránce na více místech (vpravo lokální, nahoře globální a lokální). Problém s navigací spočívá v její nekonzistenci - v případě otevření konkrétního writeboardu dochází k přesměrování na jinou doménu přes autentizační stránku, jež přesměrovává na samotný writeboard. Tento způsob znemožňuje využívat tlačítka zpět v prohlížeči (dojde k opětovnému přesměrování na writeboard) a je nutné využít odkazu v horní navigaci, který se z globálního back to dashboard mění na go back to project. Další nekonzistentnost je vidět v zobrazení writeboards a messages. Zatímco messages zobrazují počet komentářů a umožňují dostat se přímým odkazem na poslední komentář, writeboardy nic takového neumožňují, ačkoliv komentářový systém mají. Dalším rozdílem je řazení, kdy writeboardy jsou řazeny podle abecedy a messages jsou podle data poslední zprávy. V případě většího počtu writeboardů to vede k většímu zmatení uživatele. Organizace Nejednoznačné, úkolově orientované alfabetické organizační schéma Vyhledávání Základní Navigace Víceúrovňová Popisky Konzistentní, srozumitelné Tabulka 4.4: Analýza: Basecamp - Informační architektura Glasscubes Glasscubes je aplikací firmy stejného jména, založené v roce Aplikace je poskytována výhradně jako SaaS, přičemž nabízí dvě platební možnosti. Měsíční poplatky za poněkud omezené služby (počet projektů a velikost diskového prostoru) nebo enterprise verzi, kde jsou poskytované služby konfigurovatelné a platí se za uživatele (od 5 výše podle nastavení). 25

36 rozhraní. 4. P Výhodou této aplikace je česká podpora od firmy Directive⁷ nabízející Glasscubes v českém Popis funkcí aplikace Glasscubes Po přihlášení do aplikace jsou k dispozici nabídky Dashboard a Workspaces. Dashboard poskytuje přehled o jednotlivých workspaces a umožňuje jejich rychlé procházení. Další nabídky Files a Connect jsou skryty, ale je možné je povolit v administrační části nastavení Glasscubes. Files je funkčně shodný s documents ve workspace. Zajímavou sekcí je právě nabídka Connect, která obsahuje modul Opportunities. Tento modul umožňuje vést lépe přehled o prodeji, diskutovat o jeho příležitostech, odhadovat jejich pravděpodobnost a zobrazovat celkové zprávy o prodeji a příležitostech. Workspaces jsou v praxi konkrétní projekty (někdy také označované jako cubes). Při vytváření nového workspace se nastavuje název a krátký popis, poté aplikace umožňuje nastavit ty moduly, které budou využívány. K dispozici jsou následující moduly: Summary: Tento modul poskytuje rychlý přehled událostí v projektu, kde jsou jednotlivé události označeny přehledně barevně podle jejich typu. Přehled obsahuje kalendář zobrazující události od daného dne na týden dopředu a rychlé odkazy pro vytváření oznámení a ankety. Obrázek 4.2: Glasscubes a zobrazení summary Documents: V této části je možné sdílet dokumenty, vytvářet hierarchické složky a propojit je s dokumenty ze služby Google Docs. Dokumenty mají možnost nastavování oprávnění (editace, čtení, skrytí) a nastavení sdílení. Dále je možné přiřadit seznam dalších uživatelů, kteří daný dokument budou schvalovat

37 4. P Tasks: Tento modul umožňuje standardní práci s úkoly a nabízí i několik akcí navíc. Lze zde definovat odhadovaný počet hodin, které úkol zabere, a je možné vybrat i notifikaci formou SMS. Zajímavou možností je skrytí úkolu v projektu před určitým seznamem uživatelů. Dále má modul možnost úkolům přiřazovat podúkoly a řadit úkoly do kategorií. Aplikace umožňuje definovat, z kolika procent je již úkol hotov. Discussion: Diskuzní modul poskytuje velmi jednoduchou funkcionalitu vytváření zpráv, reakcí na ně a současně i tvorbu anket. Calendar & Calls: Tento modul je silnou stránkou aplikace Glasscubes, protože poskytuje velice přehledný měsíční kalendář s možností filtrování podle projektu. Umožňuje přidávat události, setkání (kdy je členům zaslána notifikace s pozvánkou) a konferenční hovory. Všechny události je možné sdílet prostřednictvím standardu ical do dalších aplikací, jež je uživatel zvyklý používat a které tento formát podporují a umí s ním pracovat. Za zmínku bezesporu stojí i fakt, že týden v této aplikaci začíná pondělím. Reports:Tento modul dovoluje jednoduchý export času stráveného prácí na projektu. Filtrovat lze pouze podle projektu nebo podle chronologického hlediska. People: Modul zabývající se skupinami osob umožňuje pozvat uživatele jednotlivě zadáním ové adresy nebo účastníky z jiného projektu zadáním jejich jména. Další možností je import uživatelů z aplikací AOL, MS Outlook, Yahoo, Gmail, Plaxo, CSV, Lotus Notes a mnoha dalších. Oprávnění je rozděleno do následujících tří úrovní: vlastník projektu (workspace owner) uživatel (contributor) přístup pouze pro čtení (read only) Analýza aplikace Glasscubes Projektový management Přehledy Projekty Skupiny Úkoly Poskytuje Poskytuje Poskytuje Poskytuje Milníky Kalendáře Soubory Diskuze Poskytuje Poskytuje Poskytuje Poskytuje Tabulka 4.5: Analýza: Glasscubes - Projektový managament 27

38 4. P Přístupnost Section 508 WCAG 2.0 Splňuje Splňuje Tabulka 4.6: Analýza: Glasscubes - Přístupnost Použitelnost Rozhraní je moderní, ale poněkud neintuitivní a uživatel musí hledat ovládací prvky (zatímco v jednom modulu jsou vpravo, v jiném jsou nahoře atd.). Ovládací prvky mají ve všech modulech jiný vzhled. Za zásadní porušení pravidel použitelnosti a přístupnosti lze považovat porušení pravidel nevtíravého skriptování⁸. Využití JavaScriptu je spíše obtěžující a matoucí (např. prvek zobrazený jako záložka je ve skutečnosti JavaScriptovým rozbalovacím menu). Při vypnutém JavaScriptu nefungují odkazy a skryté prvky se nezobrazí (např. rozbalovací menu). John Resig klade důraz na důležitý cíl: Psát kód v JavaScriptu tak, aby interakce s uživateli byla nenápadná a přirozená. ⁹ Toho není v této aplikaci vůbec dosaženo a je zřejmé, že v rámci testování, nebyly vzaty v úvahu testy zakázaného JavaScriptu nebo vypnutých kaskádových stylů (CSS). Validita Stránky generované aplikací Glasscubes jsou nevalidní a nedodržují deklarovaný standard (XHTML 1.0 Transitional). Vyskytují se i nesmyslné chyby, jako například kombinování řádkových a blokových elementů (v tagu span je uzavřen tag form a v něm tag div), obrázky nemají definován povinný parametr alt. HTML CSS Nevalidní Nevalidní 17 chyb, 2 varování 6 chyb Tabulka 4.7: Analýza: Glasscubes - Validita Informační architektura Organizační schéma je nejednoznačné, úkolově orientované. Navigace je víceúrovňová a nekonzistentní (např. na stránce dashboard není zobrazen odkaz na vytvoření nového workspace, který se nachází v opticky neaktivní záložce workspaces. Po kliknutí na tuto neaktivní záložku se zobrazí nabídka na vytvoření nového workspacu). 8. Unobtrusive tj. naprosté oddělení kódu HTML a JavaScriptu 9. RESIG, John. JavaScript a Ajax : Moderní programování webových aplikací. Vydání první. Brno : Computer Press a.s., Nevtíravé skriptování DOM, s ISBN

39 4. P Popisky používají termíny běžnému uživateli neznámé a působí matoucím dojmem. Orientaci a práci naopak usnadňuje český jazyk, který je v této aplikaci možné získat díky firmě Directive. Organizace Nejednoznačné, úkolově orientované organizační schéma Vyhledávání Základní Navigace Víceúrovňová, nekonzistentní Popisky Nejasné a matoucí Tabulka 4.8: Analýza: Glasscubes - Informační architektura 4.2 Open-source aplikace Teamlab TeamLab¹⁰ je dílem společnosti Ascensio Systém SIA z Litvy. Aplikace je dostupná ve třech formách: SaaS (Software as a Service) v tomto případě je poskytován zdarma na serverech firmy Ascensio. Omezuje velikost nahrávaných souborů na maximálně 25 MB a dostačuje pro střední firmy do počtu 300 zaměstnanců. Open source na serveru sourceforge.net je aktuální zdrojový kód aplikace k dispozici a k volné úpravě. Tyto zdrojové kódy je nutné kompilovat operačním systémem Windows s nainstalovaným Microsoft.NET Framework 3.5 SP1. Základní nevýhodou takové aplikace je potom nutnost, aby webová aplikace běžela na serveru s operačním systémem Windows.¹¹ TeamLab AMI¹² - v této formě je poskytován zdarma na modelu IAAS (Infrastructure as a Service)¹³ - virtuálním serveru firmy Amazon běžícím na cloud¹⁴ platformě (Amazon EC2¹⁵). V tomto případě je nutné platit za takový virtuální server poplatky podle toho, jak je tento virtuální server využíván (RAM, CPU, přenos dat atd.). 10. TeamLab v2.2. rev Velká většina web hostingů běží na operačním systému Linux a v případě takové aplikace je nutné řešit komplikace se spuštěním ASP aplikace na OS Linux. 12. Amazon Machine Image 13. Česky: infrastruktura jako služba 14. Jedná se o způsob poskytování služeb, programů nebo i hardware (za jejichž využívání se platí). 15. Amazon Elastic Compute Cloud - 29

40 4. P Za zmínku stojí i informace, že současná aplikace je sice poskytována zdarma, ale jen v rámci startupu a v budoucnu budou další moduly nebo služby zpoplatněny.¹⁶ Popis funkcí aplikace Glasscubes Tato aplikace se snaží poskytovat širší základnu služeb pro projektový management tím, že kombinuje sociální funkce s funkcemi softwaru projektového managementu. Rozděluje svoje služby na 4 základní části: Community Projects Documents Talk Community - tato sekce obsahuje moduly: Dashboard: Tento modul poskytuje základní přehled o událostech ve všech následujících modulech, stejně jako rychlé odkazy pro vytváření obsahu. Employees: Umožňuje vytvářet oddělení (departments) a zvát nové uživatele a rozřazovat je do jednotlivých oddělení. Events: V tomto modulu lze vytvářet události (novinky, příkazy, oznámení), které mohou vidět ostatní uživatelé. K události není možné přiřadit datum, jež by se zobrazilo v kalendáři teamlabu a je nutné vypisovat datum a čas události ručně, což v případě setkání může způsobit nepříjemné zmatení uživatele. Blogs: Každý uživatel si může vést svůj vlastní blog a ostatní uživatelé mohou číst. Forums: Poskytuje standardní funkce diskuzního fóra, včetně rozřazování do kategorií, vytváření anket, odebírání témat atp. Photos: Jedná se o jednoduché sdílení fotografií. Bookmarks: Tato funkce umožňuje mezi uživateli sdílet záložky. Wiki: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. Sekce Community obsahuje velké množství sociálních funkcí (blog, forums, photos, bookmarks), ale v praxi na jejich využívání není dostatek času a jsou nadbytečné. 16. As a startup, we want to promote TeamLab platform and company image across the world. All the modules provided free of charge at the moment will remain free in future. However, as the platform is developed, we may charge fee for the new modules released or services offered. 30

41 4. P Projects - v této sekci se nacházejí moduly pro projektovou spolupráci. Jsou jimi: Dashboard: Rychlý přehled napříč projekty. Obrázek 4.3: TeamLab a zobrazení Dashboardu Projects: V této části je k dispozici detailnější pohled na všechny projekty uživatele. My Tasks: Napříč projekty ukazuje úkoly daného uživatele. Reports: Tento modul umožňuje generovat zprávy podle zaměření (problémy, statistiky, detailní zprávy). Project templates: Tento modul umožňuje vytvořit šablonu projektu, kterou lze později při vytváření nového projektu použít a tím ušetřit čas s opětovným vytvářením milníků, úkolů nebo přiřazováním členů do projektu. V konkrétním projektu jsou k dispozici moduly pro práci v daném projektu: Overview: Jedná se o jednoduché sdílení fotografií. Milestones: Tato funkce umožňuje mezi uživateli sdílet záložky. Tasks: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. Discussions: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. Documents: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. Time Tracking: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. History: Tento modul funguje stejně jako wikipedie, dodržuje její syntax a nastavení. 31

42 4. P Tato sekce poskytuje komplexní a téměř kompletní funkcionalitu nutnou pro práci v projektu. Bezesporu splňuje nároky na práci ve studentských projektech, avšak pro firemní projekty chybí možnosti napojení na další aplikace. Jediné spojení, které Teamlab umožňuje, je import projektů, uživatelů a dat z Basecamp aplikace. Documents - sekce dokumentů poskytuje v praxi stejnou funkcionalitu jako dokumenty v konkrétním projektu. Umožňuje vytvářet vlastní dokumenty, které pak lze sdílet s vybranými uživateli (nezávisle na projektu). Je možné již vytvořené dokumenty importovat ze služeb Google Docs, Zohoo nebo Box.net. Tato možnost importovat dokumenty ze služeb třetích stran není k dispozici pro dokumenty v konkrétním projektu. Talk - Tato sekce není snadno dostupná a v globální navigaci se k ní nenachází přímý odkaz. Talk slouží jako instant messenger¹⁷ v rámci celého TeamLabu. Je postaven na technologii XMPP/Jabber a v případě, že použijeme některou z aplikací podporující tento protokol (např. Miranda, Trillian, Psi nebo Pidgin), je možné se připojit k chatu TeamLabu, i když neběží webový prohlížeč. Podporuje funkce konferenčních místnosti (chat) i standardního instant messengeru. Analýza aplikace TeamLab Projektový management Přehledy Projekty Skupiny Úkoly Poskytuje Poskytuje Poskytuje Poskytuje Milníky Kalendáře Soubory Diskuze Poskytuje Poskytuje Poskytuje Poskytuje Tabulka 4.9: Analýza: TeamLab - Projektový managament 17. Instant messager aplikace využívající služeb instant messagingu (internetová komunikační služba v reálném čase). 32

43 4. P Přístupnost Section 508 WCAG 2.0 Porušuje pravidla a Porušuje pravidlo 1.1 (a) Tabulka 4.10: Analýza: TeamLab - Přístupnost Použitelnost Obecně lze konstatovat, že přístupnost i použitelnost jsou na dobré úrovni a orientace uživatele není matena nekonzistencí rozhraní, které je naopak intuitivní a přehledné. Prohřeškem proti použitelnosti je týden začínající nedělí bez možnosti přenastavení. Jako editor je zde použit starší FCKeditor (novější verze se jmenuje CKeditor a celkově poskytuje vylepšení funkcí)¹⁸ a pro úpravu dokumentů přímo v aplikaci potom OpenOffice. Poněkud matoucím dojmem je tvrzení vývojářů, že k používání TeamLabu je zapotřebí pouze prohlížeč webu.¹⁹ Toto tvrzení je vzhledem k sekci dokumenty poněkud nepravdivé (informační panel s žádostí o instalaci se nedá vypnout). Validita Stránky generované aplikací TeamLab jsou nevalidní a nedodržují deklarovaný standard (XHTML 1.0 Transitional). Stránka obsahuje nelogicky v sekci head prvek span, neobsahuje informaci o kódování (a tím dochází k občasným problémům s českými znaky). Ve všech odkazech ve zdrojovém kódu není validně zapsán znak & (který se v url adresách zapisuje ve formátu &²⁰). HTML CSS Nevalidní Nevalidní 180 chyb, 7 varování 87 chyb Tabulka 4.11: Analýza: TeamLab - Validita Do I need to install any additional software to use TeamLab? No, you don t need to download any software in order to use TeamLab in the cloud. Your portal is 100% web-based and all you need is a webbrowser

44 Informační architektura 4. P Organizace Nejednoznačné, úkolově orientované organizační schéma Vyhledávání Základní Navigace víceúrovňová, dobře rozmístěná a rozlišená Popisky Konzistentní a srozumitelné Tabulka 4.12: Analýza: TeamLab - Informační architektura dotproject Jde o jedinou aplikaci, za níž nestojí žádná firma. Je vytvářena komunitou vývojářů, které spojuje jediný cíl vytvořit aplikaci, jež bude dostupná zdarma a bude se zaměřovat na projektový management. Zatímco výše zmíněné aplikace jsou poskytovány i ve formě SaaS, dotproject je nutné hostovat na vlastním serveru. Aplikace podporuje architektury LAMP²¹, WAMP²² i WIMP²³. Nevýhodou je, že aplikace nepodporuje jiné databáze než MySQL a je nutné vše spravovat (zabezpečení, aktualizace, zálohování atd.). Aplikace dotproject poskytuje dobrou základnu funkcionalit pro projektový management, ale za cenu absence větší podpory spolupráce nebo sociálních funkcí, nicméně i přes to, je tato aplikace dobře použitelná na studentské a firemní projekty. Správa aplikace je rozsáhlá, a není proto nejjednodušší, ale umožňuje nastavit aplikace velice detailně. K dispozici je český překlad aplikace, který sice není dokonalý a trpí některými vadami v definicích (v&scarone), ale to je dáno chybou překladatele a aplikace umožňuje všechny definice překladu upravit v administračním modulu. Výchozí šablona aplikace není moderní, ale je přehledná a je možné si ji přizpůsobit, napsat novou šablonu nebo si z domovské stránky aplikace stáhnout jiné šablony (např. moderní a přehlednou šablonu poskytuje téma amp). V administraci je také možné aktivovat nebo deaktivovat některé moduly aplikace, a tím ji přiblížit potřebám organizace. Je možné z webových stránek aplikace přejít na web, kde jsou k dispozici další moduly a úpravy aplikace od komunity. Podpora této aplikace je zajištěna manuálem ve formě wikipedie a moderovaným diskusním fórem. 21. Linux, Apache, MySQL a PHP 22. Windows, Apache, MySQL a PHP 23. Windows, IIS, MySQL a PHP 34

45 4. P Popis funkcí aplikace dotproject Po přihlášení se uživateli zobrazí denní pohled uživatele (s možností přepnutí na týdenní a měsíční pohled) spolu se stručným tříměsíčním kalendářem (minulý měsíc, aktuální měsíc a budoucí měsíc), kde se s přehlednou legendou zobrazují úkoly a události. Je možné se přepnout i do zobrazení podle projektu a na přehled událostí. Aplikace poté poskytuje následující moduly: Skupiny: Tento modul umožňuje vytvářet skupiny uživatelů, přiřazovat jim projekty a rozdělovat participanty do skupin (klient, prodejce, dodavatel, konzultant, státní správa, interní, neaplikováno). Každé skupině je možné vytvořit neomezený počet oddělení a do nich přiřazovat uživatele. Projekty: Projekty jsou vždy přiřazovány skupinám a mají velké množství nastavení. U projektu je možné nastavit plánované datum ukončení, rozpočet, cílový rozpočet, definovat webové stránky projektu, přiřadit prioritu, typ projektu a jeho status (návrh, plánovaný, právě realizovaný atd.), stejně jako vytvořit šablonu projektu a importovat úkoly z jiného projektu. Přehled projektů umožňuje filtrovat projekty podle jejich statusu a třídit podle procenta dokončení, názvu a dalších ukazatelů. Tento modul také dovoluje generovat detailní zprávy o projektu, vytvářet Ganttovy diagramy průběhu projektu atd. Úkoly: Obrázek 4.4: Zobrazení seznamu úkolů v aplikaci dotproject Celkový přehled úkolů zobrazuje všechny úkoly v projektu. Ty je možné přehledně řadit a filtrovat. Lze je definovat buď jako úkol standardní, nebo jako milník. Kromě názvu a vlastníka úkolu je povoleno nastavit prioritu, procento dokončení, předpokládanou dobu zpracování, závislosti na dalších událostech a přiřadit více lidí k jednomu úkolu. Kalendář: Je přehlednou aplikací zobrazující aktuální měsíc, s možností filtrace záznamů podle skupiny a vlastníka události. Neobsahuje možnost exportu kalendáře do standardu ical. 35

46 4. P Soubory: Jednoduchý správce souborů, umožňující nastavit verzi souboru, přiřadit jej do projektu, k úkolu a notifikovat uživatele, kterých by se soubor mohl týkat. Každému nahrávanému souboru je možné nastavit označení finální a tím znemožnit aktualizaci daného souboru další verzí. Soubory je možné rozřazovat do kategorií a nahrávat do hierarchicky seřazených složek. Kontakty: Tento modul spravuje kontakty v celé aplikaci a dovoluje snadné vyhledávání a filtrování podle abecedy. Kontakty lze importovat ve formátu vcard a zároveň exportovat ve formátu CSV. Každému kontaktu lze nastavit velké množství informací a přiřadit jej do skupiny a oddělení. Fóra: Fóra poskytují běžné funkce fóra včetně moderování a hierarchického řazení podle projektu. Témata i fóra je možné sledovat (odebírat novinky). Velmi zde chybí jakýkoliv WYSIWYG (What you see is what you get)²⁴ editor, který by umožnil jednoduché formátování vkládaného textu, nahrávání obrázků přímo do textu příspěvku a další funkce. Hlášení o problémech: Modul poskytuje funkce správce chyb (bug report). Aplikace umožňuje přidávat tickety²⁵ a definovat jejich prioritu. Odpovědná osoba v projektu potom s daným hlášením pracuje a může na ně reagovat a nastavit status zpracování. Hlášení je možné vyexportovat ve formátu PDF, pokud server, na kterém aplikace běží, má nainstalovaná potřebná rozšíření. Správa uživatelů: V této části lze spravovat uživatele, kteří mají přístup do aplikace. Je možné pozvat nové uživatele, přiřazovat je do projektů a nastavovat jim jejich typ. Další detailnější práci s uživateli umožňuje modul kontakty. Analýza aplikace dotproject Projektový management Přehledy Projekty Skupiny Úkoly Poskytuje Poskytuje Poskytuje Poskytuje Milníky Kalendáře Soubory Diskuze Poskytuje ve formě speciálního typu úkolu Poskytuje Poskytuje Poskytuje Tabulka 4.13: Analýza: dotproject - Projektový managament 24. Česky: co vidíš, to dostaneš editory jako CKeditor, poskytují podobnou funkcionalitu jako MS Word nebo jiné podobné aplikace. 25. Ticket je zvláštním druhem zprávy, který slouží převážně k ohlášení chyby v aplikaci, požadavku na přidání nebo zlepšení funkcionality. 36

47 4. P Přístupnost Section 508 WCAG 2.0 Porušuje pravidla a Porušuje pravidlo 1.1 (a) Tabulka 4.14: Analýza: dotproject - Přístupnost Použitelnost Přístupnost i použitelnost jsou na dobré úrovni a orientace uživatele není matena nekonzistencí rozhraní, které je naopak velice intuitivní, přehledné a konzistentní. České rozhraní tomuto faktu velmi napomáhá. Validita Aplikace má místy chyby ve zpracování znaku & v adresách a nedefinuje jej korektně. V kódu chybí povinná hodnota alt v tagu img. Stránky generované aplikací nejsou plně validní, ovšem obsahují méně vážných chyb než jiné výše zmíněné aplikace. HTML CSS Nevalidní Nevalidní 40 chyb 10 chyb Tabulka 4.15: Analýza: dotproject - Validita Informační architektura Organizační schéma je nejednoznačné, úkolově orientované. Navigace je víceúrovňová a nekonzistentní (např. na stránce dashboard není zobrazen odkaz na vytvoření nového workspace, který se nachází v opticky neaktivní záložce workspaces. Po kliknutí na tuto neaktivní záložku se zobrazí nabídka na vytvoření nového workspacu). Popisky používají termíny běžnému uživateli neznámé a působí matoucím dojmem. Orientaci a práci naopak usnadňuje český jazyk, který je v této aplikaci možné získat díky firmě Directive. Organizace Nejednoznačné, úkolově orientované organizační schéma Vyhledávání Základní Navigace Víceúrovňová, dobře rozmístěná a rozlišená Popisky Konzistentní a srozumitelné Tabulka 4.16: Analýza: dotproject - Informační architektura 37

48 4.3 Komparační tabulka a shrnutí 4. P Basecamp Glasscubes TeamLab dotproject Projektový management Přístupnost Použitelnost Validita Informační architektura Celkové hodnocení 2,4 3 1,8 2,6 Tabulka 4.17: Komparační tabulka a shrnutí Pro subjektivní zhodnocení aplikací je využita hodnotová řada 1-5, kde čím nižší hodnota, tím lépe jsou srovnávané nástroje hodnoceny (1 = výborně, 2 = chvalitebně, 3 = dobře, 4 = dostatečně, 5 = nedostatečně). Různé hodnoty vyjadřují nejen množství prohřešků vůči standardům a doporučením, ale také jejich závažnost. Všechny výše uvedené produkty jsou vhodnými nástroji pro práci v projektu a do jisté míry všechny napomáhají spolupráci v týmu. Každý z těchto nástrojů má své klady, ale i zápory. Aplikace Basecamp je ve svých schopnostech strohá, jednoduchá, ale dostačující. Jejím základním problémem je návrh jejích funkcí. Aplikace TeamLab ukazuje, že produkt s otevřeným zdrojovým kódem může být lepším řešením než komerční aplikace. Působí moderně a má velké množství funkcí. K jejímu záporu však patří právě i ono množství funkcí, které jsou místy spíše zbytečné, duplikují se a tím matou uživatele. Autoři aplikace Glasscubes se na první pohled zaměřili na uživatelské rozhraní. K jejich škodě je návrh rozhraní chybný a plný nejednoznačností. Funkcemi je na cestě mezi aplikacemi Basecamp a TeamLab, tedy je přesně tam, kde by měla být. Aplikace dotproject je spíše zaměřena na projektový management než na spolupráci uživatelů. Působí zastaralým dojmem, ačkoliv funkcemi mnohdy zastiňuje i TeamLab. Ideální produkt bezesporu neexistuje a vzhledem k tomu, že každý projekt je unikátní, nelze s jistotou konstatovat, který nástroj je nejblíže ideálu pro daný projekt. 38

49 Kapitola 5 Návrh a jádro systému Cogveo Jak bylo v předchozí kapitole zmíněno, ideální nástroj neexistuje, ale mým cílem je se pokusit se mu přiblížit z pohledu studentských projektů, protože jich mám za sebou již několik. Vytvořená aplikace se tedy bude zaměřovat na spolupráci uživatelů a projektový management. 5.1 Databáze MySQL vs. PostgreSQL Existuje velké množství databázových systémů, přesto jsem vybíral jen mezi MySQL, se kterým mám již dlouholeté zkušenosti, a PostgreSQL, který jsem teprve začal zkoumat. PostgreSQL disponuje např.: příkazovou řádkou kvalitně zpracovanými triggery umožňuje používat uložené procedury v jazycích Python, Ruby, PHP, Perl a další atomicita transakce¹ (obecněji ACID²) Vše jsou to vlastnosti, kterými MySQL nedisponuje, nebo je musí nějakým složitým způsobem obcházet (např. příkazovou řádku). Výborným shrnutím rozdílů a důvodů, proč si pro náročnější aplikace vybrat PostgreSQL namísto MySQL (ačkoliv je mnohem rozšířenějším databázovým systémem), poskytuje přehled od firmy EnterpriseDB³. 1. Transakce je skupinou dotazů nebo procedur, které se buď vykonají všechny nebo žádný. Nesmí dojít k tomu, že by z této skupiny byla vykonána jen určitá část. 2. Atomicity, Consistency, Isolation, Durability 3. EnterpriseDB. PostgreSQL vs. MySQL : A comparison of Enterprise Suitability. Edison : EnterpriseDB, s. Dostupné z WWW: <http://www.slideshare.net/xlight/pgsql-vs-mysql>. 39

50 5. N C Databázový návrh Kompletní obrázek databázového návrhu přesahuje rozměry možnosti této práce, a proto je k dispozici na přiloženém cd v souboru: databáze.png. Diagram ukazuje vztahy mezi jednotlivými tabulkami v databázi. Obrázky jsou zde pouze pro ilustrační náhled komplexnosti databázového návrhu aplikace Cogveo. Obrázek 5.1: První část návrhu databáze 40

51 5. N C Obrázek 5.2: Druhá část návrhu databáze 5.2 Architektura (MVC) Pojem architektura obecně označuje technické řešení, uspořádání nebo skladbu nějakého složitějšího celku.⁴ Podle výkladu⁵ ANSIIEEE Std ⁶ konsorciem OpenGroup⁷ je softwarová architektura definována jako struktura komponent programu, jejich vzájemné vazby, principy a předpisy určující jejich návrh a vývoj v průběhu času. ⁸ Stejně tak ji však lze chápat i jako architekturu složitých systémů, které mohou zahrnovat další nezávislé systémy či aplikace třetích stran. Takové systémy pak mohou být distribuovány 4. PETRÁČKOVÁ, Věra, et al. Akademický slovník cizích slov : [A-Ž]. 1. vyd. (dotisk). Praha : Academia, s. ISBN The structure of components, their interrelationships, and the principles and guidelines governing their design and evolution over time. 41

52 5. N C mezi více počítači nebo společnosti.⁹ Vzhledem k plánovanému rozsahu projektu je softwarová architektura chápana v prvním významu. Rozdělení aplikace do tří vrstev je poměrně častým řešením. Využívá ho i aplikace Cogveo.¹⁰ Ta je rozdělena na následující vrstvy: Datová je zodpovědná za načtení dat z databáze, jejich zpětné uložení a je tzv. doménovým modelem. Aplikační obsahuje logiku aplikace, pracuje s objekty a celkově provazuje jednotlivé části. Prezentační umožňuje zobrazení dat a dalších prvků uživatelského rozhraní. Výhodou takového rozdělení aplikace je, že odděluje prezentaci a interakci od dat a jakákoliv úprava v jedné vrstvě má jen minimální dopad na vrstvy ostatní. V této konkrétní aplikaci byl vybrán architektonický vzor MVC (Model, View, Controller), který přesně dodržuje výše zmíněné výhody takového návrhu. Obrázek 5.3: Obecný MVC návrh aplikace 9. SOMMERVILE, Ian. Software engineering. 9th ed. Boston : Pearson Education, s. ISBN , ISBN-13: PALETA, Petr. Co programátory ve škole neučí : aneb Softwarové inženýrství v reálné praxi. první vydání. Brno : Computer Press, Návrh struktury aplikace, s ISBN

53 5. N C Obrázek 5.4: Konkrétní MVC návrh aplikace Aplikace Cogveo je založena na tomto konkrétním návrhu. Uživatel (respektive jeho prohlížeč) komunikuje s aplikací Cogveo pomocí požadavků protokolu HTTP. Tyto požadavky přijímá server Apache a prochází mod_rewrite modulem, který má na starost blokování přístupu do určitých částí systému a zajišťuje, aby byl požadavek předán jedinému vstupnímu bodu aplikace. Výjimku tvoří pouze požadavek na faviconu. Vstupním bodem aplikace Cogveo je v tomto případě soubor main.php, který inicializuje celý systém, volá statickou metodu výstupu a volá statickou metodu třídy Page plnící funkci front controlleru (Page::processURL). 43

54 5. N C RewriteEngine On AcceptPathInfo on RewriteRule ^config / [F] RewriteRule ^core / [F] RewriteRule ^model / [F] RewriteRule ^control / [F] RewriteRule ^templates / [F] RewriteRule favicon.ico$ / [F] RewriteCond %{REQUEST_URI!^/images/favicon.png$ RewriteRule ^(.*/)?favicon\.png$ /images/favicon.png [L] RewriteCond %{REQUEST_URI!^/favicon.png$ RewriteCond %{REQUEST_URI!^/robots.txt$ RewriteCond %{REQUEST_URI!^/css/ RewriteCond %{REQUEST_URI!^/images/ RewriteCond %{REQUEST_URI!^/js RewriteCond %{REQUEST_URI!^/google.*\.html$ RewriteRule ^(.*)$ main.php?url=$1 [QSA,L] Zdrojový kód 1:.htaccess 44

55 5. N C Controller <?php public static function processurl() { if (!array_key_exists('url', $_GET)) { throw new ExceptionPageBadURL('URL not known'); $m = UrlParser::findControl($_GET['url']); $controlfile = PATH_CONTROL. '/'. $m['control']. '.inc.php'; if (!is_readable($controlfile)) { throw new ExceptionPageControlNotReadable($controlFile); require_once($controlfile); $classname = 'Control'. $m['control']; if (!class_exists($classname)) { throw new ExceptionPageControlClassNotFound($className); $control = new $classname(); if (!($control instanceof Control)) { throw new ExceptionPageControlClassIsBad($className); ExtManager::get('User', array('redirifnotlogged' =>!$m['publiccontrol']))->run(); $control->prepare($m['params'], $m['urlparams']);?> $control->run(); Zdrojový kód 2: Front controller v třídě Page 45

56 5. N C Front controller se pokusí najít controller odpovídající požadavku, který přišel od uživatele. V tomto případě jde o jednoduchý požadavek na přihlášení s údaji v poli POST a s požadavkem URL v poli GET. Front controller zavolá controller Login (požadavek na něj byl odeslán v poli GET), jenž implementuje bázovou třídu Control. <?php class ExceptionControl extends Exception { class ExceptionControlBadParams extends ExceptionControl { abstract class Control { public $doc = null; public $root = null; public function construct() { $this->doc = Page::getDoc(); $this->root = Page::getControlDataElement(); public function prepare(array $params, array $urlparams) {?> abstract public function run(); Zdrojový kód 3: Abstraktní bázová třída Control 46

57 5. N C <?php require_once './lib/phpmailer/class.phpmailer.php'; class ControlLogin extends Control { private $act_code = null; private $mail = null; public function prepare(array $params, array $urlparams) { if(!empty($urlparams)){ $this->act_code = $urlparams['act_code']; public function run() { ExtManager::get('Menu', array())->run('tasks'); Page::setTitle('Cogveo.com > Přihlašte se'); $user = new User(); if (!empty($this->act_code)){ $result = DB::$DB->users->where('activate_code', $this->act_code); $row = $result->fetch(); $user->fillfromresult($row); $user['active'] = 1; $user->save(); Page::addMessage(MSG_INFO,'Účet byl aktivován. Můžete se přihlásit'); Output::setTemplate('login'); if ((Input::get('login', T_STR, I_POST)!== false) && (Input::get('login', T_STR, I_POST)!="")!empty($_COOKIE['remember'])){ if (!empty($_cookie['remember'])){ $susenka = $_COOKIE['remember']; $p = explode(" ",$susenka); $login = mighty_strip_tags($p[0]); $password = mighty_strip_tags($p[1]); $remember = 1; Zdrojový kód 4: Controller Login 1/4 47

58 5. N C if ((Input::get('login', T_STR, I_POST)!== false) && (Input::get('login', T_STR, I_POST)!="")!empty($_COOKIE['remember'])){ if (!empty($_cookie['remember'])){ $susenka = $_COOKIE['remember']; $p = explode(" ",$susenka); $login = mighty_strip_tags($p[0]); $password = mighty_strip_tags($p[1]); $remember = 1; else{ $login = Input::get('login', T_STR, I_POST); $password = sha1(input::get('password', T_STR, I_POST)); $remember = Input::get('remember', T_STR, I_POST); if($user->login($login, $password, $remember)){ Output::Redirect('/summary/'); else{ Page::addMessage(MSG_ERROR, 'Neplatné uživatelské jméno nebo heslo. Obě pole jsou CaSeSeNsItIvE'); Output::setTemplate('login'); elseif((input::get('reg_login', T_STR, I_POST)!== false) && (Input::get('reg_login', T_STR, I_POST)!="")){ $login = Input::get('reg_login', T_STR, I_POST); $password = sha1(input::get('reg_password', T_STR, I_POST)); $password2 = sha1(input::get('reg_password2', T_STR, I_POST)); $ = Input::get('reg_ ', T_ , I_POST); $surname = Input::get('reg_surname', T_STR, I_POST); $name = Input::get('reg_name', T_STR, I_POST); if (empty ($password) OR empty ($password2) OR empty ($ ) OR empty ($name) OR empty ($surname)){ Page::addMessage(MSG_ERROR,'Všechna pole registrace musí být vyplněna.'); Output::setTemplate('login'); else{ if ($password == $password2){ $result = DB::$DB->users->where('login', $login); if (count($result) < 1) { $user['login'] = $login; $user['password'] = $password; Zdrojový kód 5: Controller Login 2/4 48

59 5. N C $user['name'] = $name; $user['surname'] = $surname; $user['active'] = 0; $user[' '] = $ ; $code = md5($surname.$password.$login); $user['activate_code'] = $code; $user->save(); $this->mail = new PHPMailer(); $this->mail->issmtp(); try{ 'Cogveo MailBot'); $this->mail->addaddress($ ,$name.' '.$surname); 'Cogveo MailBot'); $this->mail->subject = 'Aktivace vašeho účtu na Cogveo.com'; $this->mail->msghtml("děkujeme za registraci</br> <p>pro aktivaci vašeho účtu prosím klikněte na následující odkaz: <a href='http://cogveo.com/login/$code'>aktivovat účet</a> </p><br/> S pozdravem Cogveo MailBot."); $this->mail->send(); catch (phpmailerexception $e) { Page::addMessage(MSG_ERROR,'MailError:'.$e->errorMessage()); Output::setTemplate('login'); catch (Exception $e) { Page::addMessage(MSG_ERROR,'MailError:'.$e->getMessage()); Output::setTemplate('login'); Page::addMessage(MSG_INFO,'Vaše registrace je dokončena. Musíte však aktivovat účet, odkaz je ve vaší ové schránce.'); Output::setTemplate('login'); else{ Page::addMessage(MSG_ERROR,'Toto uživatelské jméno je již zabráno. Zapomněl jste heslo?'); Output::setTemplate('login'); elseif((input::get('fp_ ', T_ , I_POST)!== false) && (Input::get('fp_ ', T_ , I_POST)!="")){ $ = Input::get('fp_ ', T_ , I_POST); $result = DB::$DB->users->where(' ', $ ); $row = $result->fetch(); Zdrojový kód 6: Controller Login 3/4 49

60 5. N C?> if (count($result) == 1) { $np = md5($ .time()); $user->fillfromresult($row); $user['password'] = sha1($np); $user->save(); $name = $user['name']; $surname = $user['surname']; $this->mail = new PHPMailer(); $this->mail->issmtp(); try{ 'Cogveo MailBot'); $this->mail->addaddress($ ,$name.' '.$surname); 'Cogveo MailBot'); $this->mail->subject = 'Obnovení hesla na vašem účtu na Cogveo.com'; $this->mail->msghtml("vašeho heslo bylo změněno na dočasné.</br> <p>vaše dočasné heslo: <strong>$np</strong></p><br/> S pozdravem Cogveo MailBot."); $this->mail->send(); catch (phpmailerexception $e) { Page::addMessage(MSG_ERROR,'MailError:'.$e->errorMessage()); Output::setTemplate('login'); catch (Exception $e) { Page::addMessage(MSG_ERROR,'MailError:'.$e->getMessage()); Output::setTemplate('login'); Page::addMessage(MSG_INFO,'Heslo bylo obnoveno. Zkontrolujte si svoji ovou schránku.'); Output::setTemplate('login'); else{ Output::setTemplate('login'); Zdrojový kód 7: Controller Login 4/4 50

61 5. N C V tomto controlleru dochází při zpracování požadavku na přihlášení uživatele k několika zásadním událostem: Vytvoření instance modelu User. Volání metody login instance User. Po úspěšné autentizaci dochází k přerušení zpracování a uživatel je přesměrován do nové lokace pomocí statické metody Output::redirect Model Modely, stejně jako controllery, mají vlastní abstraktní třídu Model. Tato abstraktní třída implementuje následující společné metody: ArayAccess - tato implementace rozhraní umožňuje přistupovat k objektům, jako by byla poli.1 Getter, setter - při čtení nebo zápisu nepřístupných vlastností jsou volány právě tyto metody.2 Základní metody pro práci s primárním klíčem a prací se záznamy ArayAccess - tato implementace rozhraní umožňuje přistupovat k objektům, jako by byla poli.¹¹ Getter, setter - při čtení nebo zápisu nepřístupných vlastností jsou volány právě tyto metody.¹² Základní metody pro práci s primárním klíčem a prací se záznamy <?php class ExceptionModel extends Exception { class ExceptionModelKeyNotFound extends ExceptionModel { class ExceptionModelEntityNotFound extends ExceptionModel { class ExceptionModelToManyEntities extends ExceptionModel { class ExceptionModelNoPrimaryKey extends ExceptionModel { class ExceptionModelUnableToUnset extends ExceptionModel { class ExceptionModelTypeNotValid extends ExceptionModel { class ExceptionModelDataNotPresent extends ExceptionModel { class ExceptionModuleObjectNotLoaded extends ExceptionModel { Zdrojový kód 8: Model 1/

62 5. N C abstract public function getbindings(); abstract public function getelementname(); abstract public function gettablename(); private $pkey = null; private $doc = null; private $data = array(); public function construct($id = null) { $this->doc = Page::getDoc(); $b = $this->getbindings(); if (count($b) < 1) { throw new ExceptionModelNoPrimaryKey(); $k = array_keys($b); $this->pkey = $k[0]; if ($id!== null) { $this->loadbyid($id); else { $this->fillempty(); Zdrojový kód 9: Model 2/2 V konstruktoru bázové třídy je volána metoda getbindings. Tato metoda je definována až v konkrétní třídě a má za úkol tzv. Data Binding.¹³ Jedná se o techniku, jejímž úkolem je svázat dva datové zdroje dohromady (v tomto případě se jedná o svázání databáze PostgreSQL a proměnných v jazyce PHP). Výhoda této techniky spočívá v tom, že jakmile se změní hodnota provázané proměnné, pak se projeví ve všech s ní takto provázaných hodnotách. Metoda save() pak tyto změny ukládá do databáze, jakmile je zavolána nad instancí dané třídy. Další metody této třídy slouží k vytvoření elementu v XML stromu a jeho naplnění daty, získání primárního klíče databáze, definici geteru a seteru a metody k ukládání, nahrání a mazání dat

63 5. N C public function createelement() { $element = $this->doc->createelement($this->getelementname()); foreach ($this->getbindings() as $k => $b) { if ($b[0]!== null) { $element->setattribute($b[0], $this-> get($k)); return $element; public function getpkey() { return $this->pkey; public function get($k) { if (array_key_exists($k, $this->data)) { return $this->data[$k]; else { throw new ExceptionModelKeyNotFound($k); public function set($k, $v) { if (array_key_exists($k, $this->data)) { $b = $this->getbindings(); if (Validator::validate($v, $b[$k][1])) { $this->data[$k] = $v; else { throw new ExceptionModelTypeNotValid($k); else { throw new ExceptionModelKeyNotFound($k); public function loadbyid($id) { $result = DB::$DB->{$this->getTableName()->where($this->pkey, $id); Zdrojový kód 10: Abstraktní bázová třída Model 1/3 53

64 5. N C if (count($result) < 1) { throw new ExceptionModelEntityNotFound($id); elseif (count($result) > 1) { throw new ExceptionModelToManyEntities($id); $row = $result->fetch(); $this->fillfromresult(&$row); public function fillfromresult(&$row) { foreach ($this->getbindings() as $k => $b) { if (!isset($row[$k])) { throw new ExceptionModelDataNotPresent($k); $this->data[$k] = $row[$k]; private function fillempty() { foreach ($this->getbindings() as $k => $b) { $this->data[$k] = null; // array access public function offsetexists($o) { return array_key_exists($o, $this->data); public function offsetget($o) { return $this-> get($o); public function offsetset($o, $v) { $this-> set($o, $v); public function offsetunset($o) { throw new ExceptionModelUnableToUnset(); Zdrojový kód 11: Abstraktní bázová třída Model 2/3 54

65 5. N C public function save() { if (!empty($this->data[$this->pkey])) { // update $result = DB::$DB->{$this->getTableName()->where($this->pkey, $this->data[$this->pkey]); if (count($result) < 1) { throw new ExceptionModelEntityNotFound($id); elseif (count($result) > 1) { throw new ExceptionModelToManyEntities($id); $row = $result->fetch(); $row->update($this->data); else { // insert $data = $this->data; unset($data[$this->pkey]); $id = DB::$DB->{$this->getTableName()->insert($data, $this->getprimarysequencename()); $this->loadbyid($id); public function delete() { if (!empty($this->data[$this->pkey])) { // delete $result = DB::$DB->{$this->getTableName()-> where($this->pkey, $this->data[$this->pkey]); if (count($result) < 1) { throw new ExceptionModelEntityNotFound($id); elseif (count($result) > 1) { throw new ExceptionModelToManyEntities($id); $row = $result->fetch(); $row->delete(); else { throw new ExceptionModuleObjectNotLoaded(); Zdrojový kód 12: Abstraktní bázová třída Model 3/3 55

66 5. N C abstract class ModelSet { private $doc = null; private $objects = array(); abstract public function getsetname(); abstract public function getclassname(); public function construct() { $this->doc = Page::getDoc(); $cn = $this->getclassname(); $c = new $cn(); $this->table = DB::$DB->{$c->getTableName(); public function addfromresult(&$row) { $classname = $this->getclassname(); $class = new $classname(); $pkey = $class->getpkey(); $class->fillfromresult(&$row);?> $pkeyid = $row[$pkey]; $this->objects[$pkeyid] = $class; public function createelement() { $element = $this->doc->createelement($this->getsetname()); foreach ($this->objects as &$o) { $element->appendchild($o->createelement()); return $element; Zdrojový kód 13: Abstraktní bázová třída ModelSet Abstraktní bázová třída ModelSet je podobná třídě Model, ale s rozdílem, že pracuje se skupinami dat (sety), které se mají zpracovávat. 56

67 5. N C <?php require_once('model.inc.php'); class ExceptionModelSessionStillExists extends ExceptionModel { class User extends Model { public function getbindings() { return array ( 'users_id' => array ('users_id',t_int), // primary key 'login' => array ('login',t_text), 'password' => array ('password',t_text), 'title_before' => array ('title_before',t_text), 'password' => array ('password',t_text), 'name' => array ('name',t_text), 'surname' => array ('surname',t_text), 'title_after' => array ('title_after',t_text), 'active' => array('active',t_int), 'activate_code'=> array('activate_code',t_text), ' '=>array(' ',t_ ), ); public function getprimarysequencename() { return "users_users_id_seq"; public function getelementname() { return "User"; public function gettablename() { return "users"; public function islogged(){ if (isset($_session['islogged'])&&!empty($_session['islogged'])){ return true; else{ return false; Zdrojový kód 14: Model User 1/2 57

68 5. N C public function getusernamebyid($id){ $this->loadbyid($id); public function logout(){ if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() , $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); setcookie("remember",'', time()-42000, "/login/"); session_destroy(); return true; public function login ($login, $password, $remember){ $result = DB::$DB->users->where('login', $login)->where('password', $password); if (count($result) < 1) { return false; else{ $row = $result->fetch(); $_SESSION['user_id'] = $row['users_id']; $_SESSION['login'] = $row['login']; $_SESSION['fn'] = $row['name']." ".$row['surname']; $_SESSION['isLogged'] = "1"; if ($remember==1){ setcookie ("remember",$login." ".$password,time()+7*24*3600); return true;?> Zdrojový kód 15: Model User 2/2 V Modelu User je implementována samotná metoda, která má na starosti autentizaci uživatele. V případě, že je jeho jméno a heslo nalezeno v databázi, dojde k autentizaci a uložení 58

69 5. N C klíčových údajů do session. Ověřování probíhá později kontrolou session, a pokud jsou zde nalezeny platné údaje, dochází k přesměrování na přihlašovací stránku (jako jediná část aplikace nevyžaduje autentizaci). Přihlašování je poměrně specifický příklad, protože po autentizaci dochází k přesměrování (Output::redirect) uživatele na novou stránku. Samotné přesměrování probíhá přes HTTP kód 302 Found a je zpracován požadavek na novou stránku. Zpracování probíhá stejně, jako je tomu u požadavku na přihlášení, jen není zpracování přerušeno přesměrováním, ale dochází k vytvoření XML stromu, který je předán View View View je vrstva zodpovědná za transformaci1 XML stromu vytvořeného během zpracování požadavku na HTML dokument. <?xml version="1.0" encoding="utf-8"?> <page debugweb="t"> <header><title>cogveo.com > Nastavení</title> <messages/> <cssset/> <jsset/> </header> <extdata> <User userid="2" login="pilar" fn="vojtěch Pilař"/> <Menu> <item title="projekty" href="/projects/" active="f" class="dropdown"/> <item title="přehled" href="/summary/" active="f"/> <item title="úkoly" href="/tasks/" active="f"/> <item title="kalendáře" href="/calendars/" active="f"/> <item title="diskuze" href="/discussions/" active="f"/> <item title="soubory" href="/files/" active="f"/> <item title="komunikace" href="/communication/" active="f"/> <item title="uživatelé" href="/users/" active="f"/> <item title="moduly" href="/modules/" active="f"/> </Menu> <Dropdown> <dropdownitem title="testovací projekt 1" href="switch/2" active="t"/> <dropdownitem title="foo" href="switch/1" active="f"/> Zdrojový kód 16: XML strom dat předávaný XSLT procesoru 1/2 59

70 5. N C </extdata> <controldata> <User users_id="2" login="pilar" title_before="bc." active="1" title_after="" password="c80eeb9a01cbb6581a94dccba8ef41d32815d63c" activate_code="0" name="vojtěch" surname="pilař" <ContactSet> <Contact contact_id="1" users_id="2" contact_type_id="1" contact=" " auto="" txt_contact_type=" "/> <Contact contact_id="2" users_id="2" contact_type_id="2" contact=" " auto="" txt_contact_type="jabber"/> </ContactSet> </controldata> </page> Zdrojový kód 17: XML strom dat předávaný XSLT procesoru 2/2 Takto vypadá jednoduchý XML strom generovaný po přihlášení uživatele. Obsahuje všechna potřebná data i strukturu, která se předává společně s odpovídající šablonou XSLT¹⁴ procesoru. <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:include href="inc/global.xsl"/> <xsl:template match="controldata"> <div id="tabs" class="box"> <ul class="box"> <li><a href="#tabs-1">moje nastavení</a></li> <li><a href="#tabs-2">moje kontakty</a></li> <li><a href="#tabs-3">moje nastavení systému</a></li> </ul> <div id="tabs-1"> <p><xsl:apply-templates select="user"/></p> </div> <div id="tabs-2"> <p><xsl:apply-templates select="contactset"/></p> Zdrojový kód 18: Šablona pro XSL transformaci XML do HTML 1/3 14. extensible Stylesheet Language Transformations 60

71 5. N C </div> <div id="tabs-3"> <p><xsl:apply-templates select="systemsettings"/></p> </div> </div> </xsl:template> <xsl:template match="user"> <form action="#" method="post" id="form-01"> <fieldset> <legend>systémové údaje</legend> <table> <tr> <th>vaše jméno:</th> <td><input type="text" size="60" class="input-text" name="" disabled="disabled" </td> </tr> <tr> <th>přihlašovací jméno:</th> <td><input type="text" size="60" class="input-text" name="login" disabled="disabled" <span class="smaller low">váš login do systému</span> </td> </tr> <tr> <th>systémový </th> <td><input type="text" size="60" name=" " class="input-text required " id="inp-02" /> <span class="smaller low">slouží pouze ke správě účtu, ostatní uživatelé jej neuvidí, pokud ho nepřidáte do kontaktních údajů</span> </td> </tr> <tr> <th>současné heslo:</th> <td><input type="password" size="60" class="input-text" name="old_password" /> <span class="smaller low"> Vyplňte pouze pokud chcete změnit Vaše současné heslo</span> Zdrojový kód 19: Šablona pro XSL transformaci XML do HTML 2/3 61

72 5. N C </td> </tr> <tr> <th>nové heslo:</th> <td><input type="password" size="60" class="input-text" name="old_password" /> <span class="smaller low">nové heslo k~vašemu účtu</span> </td> </tr> <tr> <th>titul před jménem:</th> <td><input type="text" size="60" class="input-text" name="title_before" /> <span class="smaller low">nepovinná informace</span> </td> </tr> <tr> <th>titul za jménem:</th> <td><input type ="text" size="60" class="input-text" name="title_after" /> <span class="smaller low">nepovinná informace</span> </td> </tr> <tr> <td></td> <td><input type="submit" value="uložit změny" class="input-submit" /> <input type="hidden" name="action" value="user_settings" /> </td> </tr> </table> </fieldset> </form> </xsl:template> <xsl:template match = "ContactSet"> </xsl:template> </xsl:stylesheet> Zdrojový kód 20: Šablona pro XSL transformaci XML do HTML 3/3 62

73 5. N C XSLT procesor je část aplikace, která díky XSL šabloně zpracuje XML dokument a vytvoří z něj jiný typ dokumentu (například SQL). U této aplikace se vždy jedná o HTML dokument, ale XSLT procesor umí transformovat i do dokumentu typu XSLT-FO¹⁵. Ten lze zpracovat procesory FO¹⁶. Tyto procesory umí vytvořit z XSLT-FO dokumentu dokumenty typu PDF, PostScript nebo RTF. 5.3 PHP a Python PHP i Python jsou kvalitní programovací jazyky. Zatímco PHP se primárně orientuje na web a vývoj aplikací pro něj, Python je jazyk obecně určený pro jakýkoliv typ aplikace. Oba jazyky jsou interpretačními jazyky¹⁷, jsou open-source a je možné je rozšířit moduly napsanými v jazycích C, C++ nebo JAVA.¹⁸ Mezi zajímavé vlastnosti jazyků patří: PHP je jazyk, který je svou syntaxí podobný jazykům C nebo Perl, má ternární operátory¹⁹, reference²⁰, modifikátory pro metody i vlastnosti objektů²¹. Python je naproti tomu jazykem mající stručnou a jasnou syntax, lambda funkce²², vláknění²³, objektovou práci se soubory. V průběhu tvorby aplikace jsem došel k názoru, že ačkoliv jde vývoj správným směrem a plní svůj účel (výše zmíněné jádro), trvá příliš dlouho a nebylo by možné stihnout vytvořit funkční prototyp aplikace včas. Při hledání alternativy jsem narazil na jazyk Python a webový framework Django²⁴. Možnost vyvíjet aplikace mnohem rychleji mne zaujala, a proto jsem se rozhodl jádro aplikace v jazyce PHP odložit na pozdější dokončení (vzhledem k rozšířenosti webhostingů poskytující možnost provozovat skripty v jazyce PHP v porovnání s jazykem Python) a začít pracovat v Pythonu s frameworkem Django. Jádro systému PHP je všeobecně napsané a lze ho použít na jakékoliv aplikace v jazyce PHP. 15. XSLT-Formatting Objects 16. Např. XEP nebo FOP 17. Zdrojové kódy nejsou překládány do spustitelné podoby, ale využívají služeb interpretačního programu. 18. Python vs. Php. In Webware for Python Wiki [online]. Ian Bicking, 23 Nov 2001, last modified on 23 Jan 2010 [cit ]. Dostupné z WWW: <http://wiki.w4py.org/python-vs-php.html>. 19. Jedná se o operátory, které v jazyce PHP převážně zkracují vyhodnocovací kód např. ($i % 2 == 0? sudé číslo : liché číslo ) 20. Reference umožňují řetězit proměnné, tj. nedocházelo ke kopírování, ale odkazování. 21. Z hlediska objektově orientovaného programování se jedná o zapouzdření a ochranu objektů nastavením vlastnosti public, protected nebo private. 22. Výhodou lambda (někdy anonymních) funkcí je, že odpadá nutnost definovat název funkce a lze tím zkrátit kód. Např. soucet = lambda a, b: a+b 23. Threading Python umožňuje pracovat s více vlákny programu a podporuje více procesorů

74 5. N C 5.4 Django Django je webový framework napsaný v jazyce Python. Podobně jako jiné frameworky se snaží usnadnit práci programátora tím, že poskytuje předdefinovaný systém, s jehož pomocí je mnohem snadnější psát aplikace, jelikož se tak lze vyhnout monotónní práci. Mezi zásadní vlastnosti tohoto frameworku patří: DRY (Don t repeat yourself) je velice praktická vlastnost, jejímž úkolem je zabránit rutinnímu psaní stejného kódu vícekrát v aplikaci. MVC / MTV (Model View Controller) rozvržení aplikace do tří vrstev, které již bylo zmíněno dříve. ORM (Object-relation mapping) technika návrhu propojení jinak nepropojitelných systémů. V tomto případě je databáze namapována na virtuální objekty, přes něž je možno k databázi přistupovat. Django pak práci s objekty převádí na dotazy do databáze a snaží se tyto dotazy optimalizovat. KISS (Keep it short and simple) opět praktická vlastnost umožňující, aby kód byl krátký, jednoduchý a přehledný. Tato vlastnost obecně patří jazyku Python. Architektura MVC je v podání Django prezentována jako architektura MTV. Model, Template, View. Jak oficiální dokumentace uvádí, pojmenování jednotlivých vrstev je diskutabilní a nabízí vlastní vysvětlení²⁵: V naší interpretaci MVC, view popisuje data, která jsou prezentována uživateli. Není to nutně to, jak data vypadají, ale která data jsou prezentována. View popisuje, která data uvidíte, ne jak je uvidíte. ²⁶ Lze tedy konstatovat, že View a Django spolu tvoří Controller aplikace. Model je podobný modelu, který byl v jádře PHP. Na rozdíl od něj drží definici databázové struktury (a tím pádem odpadá i definice data bindingů) a doménovou logiku aplikace. from django.db import models from django.contrib.auth.models import User from django.db.models import Q from django.core.exceptions import ObjectDoesNotExist Zdrojový kód 21: Model aplikace Account 1/ In our interpretation of MVC, the view describes the data that gets presented to the user. It s not necessarily how the data looks, but which data is presented. The view describes which data you see, not how you see it. 64

75 5. N C from cogveo.project.models import Project class UserProfile(models.Model): user = models.foreignkey(user, unique=true) title_before = models.charfield(max_length=16, blank=true, verbose_name='titul před jménem') title_after = models.charfield(max_length=64, blank=true, verbose_name='titul za jménem') def get_fullname(self): fn = self.title_before if self.user.first_name: if fn: fn = fn + " " fn = fn + self.user.first_name if self.user.last_name: if fn: fn = fn + " " fn = fn + self.user.last_name if self.title_after: if fn: fn = fn + ", " fn = fn + self.title_after return fn def get_projects(self): try: return self._projects except: pass self._projects = Project.objects.filter( Q(created_by=self.user) Q(assignment user=self.user) ).distinct() return self._projects class ContactType(models.Model): name = models.charfield(max_length=64, unique=true, verbose_name="název typu kontaktu") regex = models.textfield(blank=true, verbose_name="regulární výraz pro typ kontaktu") def unicode (self): return self.name Zdrojový kód 22: Model aplikace Account 2/3 65

76 5. N C class Contact(models.Model): user = models.foreignkey(user) type = models.foreignkey(contacttype, verbose_name="typ kontaktu") contact = models.charfield(max_length=255, verbose_name="kontakt") def user_unicode(self): try: return "%s (%s)" % (self.get_profile().get_fullname(), self.username) except ObjectDoesNotExist: return "(%s)" % (self.username) User. unicode = user_unicode Zdrojový kód 23: Model aplikace Account 3/3 Definice struktury databáze v třídě UserProfile pak má za následek při spuštění příkazu syncdb následující SQL příkaz: CREATE TABLE cogveo_ UserProfile ( "id" serial NOT NULL PRIMARY KEY, "title_before" varchar(16), "title_after" varchar(64) ); Zdrojový kód 24: SQL příkaz spuštěný při neexistenci tabulky UserProfile příkazem syncdb Template je část, která se stará o vlastní zobrazení, tedy jak data uživatel uvidí. K tomuto účelu Django přichází s vlastní sadou tagů a filtrů²⁷. Nicméně je možné nadefinovat i vlastní tagy a filtry, které Django zpracuje při vytváření HTML dokumentu

77 5. N C {% extends "common/inc/outside.html" % {% block title %Přihlašte se{% endblock % {% block head %Přihlašte se{% endblock % {% block content % <div id="login"> <form method="post" action="{% url django.contrib.auth.views.login %"> {% csrf_token % <table> {{ form.as_table </table> <p> <input type="submit" value="login" /> <input type="hidden" name="next" value="{{ next " /> </p> </form> </div> {% endblock % Zdrojový kód 25: Ukázka template přihlašování Další užitečnou vlastností architektury aplikace postavené na frameworku Django je rozdělení celé aplikace na další samostatné aplikace. Ty jsou rozděleny na výše zmíněné tři vrstvy. Uvedené aplikace je možné použít později i v jiném projektu nebo ve více projektech zároveň, protože databázový návrh je uložen v modelu konkrétní aplikace. INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'cogveo.common', 'cogveo.account', 'cogveo.project', 'cogveo.task', 'cogveo.summary', 'cogveo.group', ) Zdrojový kód 26: Setting.py nastavení aplikací 67

78 5. N C Architektura aplikace zůstala podobná jádru napsaném v jazyce PHP tedy rozdělení do tří nezávislých vrstev. Obrázek 5.5: Architektura MVC v podání Django 68

79 Pro úplnost uvádím i kompletní přehled architektury (převzato²⁸). 5. N C Obrázek 5.6: Kompletní workflow v Django 28. STACEY, J-P. Django internal architecture: a nice PDF Graceful Exits [online] [cit ]. Graceful Exits. Dostupné z WWW: <http://www.jpstacey.info/blog/2009/06/15/django-internalarchitecture-a-nice-pdf>. 69

80 5. N C Ukázka přihlašování uživatele se díky Djangu zkrátí na pouhou definici v urls.py (URL- Conf), protože Django obsahuje mimo jiné zabudovaný systém autentifikace uživatelů.²⁹ from django.conf.urls.defaults import patterns urlpatterns = patterns('', (r'^login$', 'django.contrib.auth.views.login', {'template_name': 'account/login.html'), ) Zdrojový kód 27: Přihlašování uživatele v Django 5.5 jquery jquery je JavaScriptová knihovna, která umožňuje jednoduché zpracování událostí, animací a ajaxové interakce. Výhodou jquery je jeho velikost (přibližně 29KB při maximální kompresi Gzip a minifikaci), výborná podpora napříč prohlížeči³⁰ a schopnost pracovat s kaskádovými styly (selektory) ve verzích 1 až 3. Využívá ji velké množství společností a aplikací. I společnost Microsoft se rozhodla zabudovat ji jako nedílnou součást do Visual Studia.³¹ jquery umí pracovat s objekty DOM (document object model)³², událostmi, kaskádovými styly (CSS), selektory a poskytuje základní funkcionalitu XPath. Dokáže vytvářet animace a efekty díky předdefinovaným kódům. Je rozšiřitelná pomocí pluginů a poskytuje velké množství dalších užitečných funkcí. Dalším důvodem, proč je v aplikaci Cogveo použita právě tato knihovna, je její vlastnost tzv. nevtíravého skriptování DOM (unobtrusive JavaScript). Díky této vlastnosti je zajištěno, že i při vypnutém JavaScriptu je aplikace stále použitelná a funkčně se nespoléhá na zapnutý JavaScript Internet Explorer 6.0 a novější, Mozilla Firefox 2.0 a novější, Opera 9.0 a novější 31. GUTHRIE, Scott. ScottGu s Blog [online] [cit ]. JQuery and Microsoft. Dostupné z WWW: <http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx>. 32. Česky: objektový model dokumentu umožňuje pracovat s dokumentem jako se stromem XML. Díky tomu je možné pracovat s obsahem, strukturou dokumentu pomocí tohoto rozhraní (API). 70

81 5. N C Příkladem takového použití je mazání kontaktních údajů z profilu uživatele. <a class="contactdelbutton" href="/account/contactdel/19"> </a> <img alt="odstranit" src="/media/images/mini/delete.png"> Odstranit Zdrojový kód 28: Mazání kontaktů - uživatel Na tento odkaz je navázán (skrze definici třídy) tento kód: $('a.contactdelbutton').live('click', function() { var url = $(this).attr('href'); $('#dialog').html(''); $('#dialog').attr('title', 'Odebrat kontakt'); $('#dialog').dialog({ autoopen: true, width: 350, modal: true, ); $.get(url, function(data) { $('#dialog').html($(data).find('#contactdelform')); $('#contactdelform form').cform('#contactdelform', '#dialog', '#contactlist'); ); ); return false; Zdrojový kód 29: Mazání kontaktů - funkce Návratová hodnota tohoto skriptu je false, a tím je zajištěno, že nedojde k přesměrování na stránku ve vlastnosti tref, ačkoliv uživatel klikl na standardní odkaz <a>. 71

82 5. N C Obrázek 5.7: jquery a potvrzovací dialog mazání kontaktu Pokud by byl JavaScript vypnutý, nedojde k navázání události a uživatel je přesměrován na novou stránku umožňující tutéž funkcionalitu s tím rozdílem, že je nutné nahrát obsah stránky. Knihovny jquery je využito i při validaci dat, zadávání datových údajů atp. Základní snahou bylo, aby knihovna jquery zpříjemnila participantovi práci v aplikaci Cogveo na projektu. 5.6 Long polling, Comet Jak již bylo v této práci zmíněno, technika long pollingu je v současnosti velmi využívanou v mnoha webových aplikacích. Vzhledem k tomu, že se jedná o techniku ověřenou, využívá ji i aplikace Cogveo. Této metodě server push se v případě webových aplikací využívajících ajaxu říká Comet³³. 33. Comet (programming). In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, 8 July 2006, last modified on 11 March 2011 [cit ]. Dostupné z WWW: <http://en.wikipedia.org/wiki/comet_%28programming%29>. 72

83 5. N C Obrázek 5.8: Průběh komunikace aplikace použitím Comet Z obrázku je patrné, že komunikace POST event posílá serveru změny, které se staly na straně klienta (v tomto případě editace tabule). Následuje GET updates, kdy server místo prázdné odpovědi drží spojení (v obrázku je vidět 15 vteřin, ale v praxi je spojení udržováno i déle) a čeká na data, jež by mohl klientovi zaslat. Data jsou zasílána ve formátu JSON (JavaScript Object Notation)³⁴, což snižuje objem zasílaných dat oproti formátu XML. Na straně serveru se jedná o propojení django s aplikacemi: gevent³⁵, greenlet³⁶ a libevent.³⁷ Na straně klienta se o vše stará jquery (s pluginy editabletext³⁸, uuid³⁹ a cookie⁴⁰) skrze jednoduchou implementaci. 34. Česky: JavaScriptový zápis objektů provos/libevent/ 38. https://github.com/valums/editabletext

Tvorba internetových aplikací s využitím framework jquery

Tvorba internetových aplikací s využitím framework jquery Tvorba internetových aplikací s využitím framework jquery Autor Michal Oktábec Vedoucí práce PaedDr. Petr Pexa Školní rok: 2009-10 Abstrakt Tato práce se zabývá využití frameworku jquery pro vytváření

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

CZ.1.07/1.5.00/34.0527

CZ.1.07/1.5.00/34.0527 Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Optimalizace pro vyhledavače a přístupnost webu

Optimalizace pro vyhledavače a přístupnost webu Optimalizace pro vyhledavače a přístupnost webu Autor Jan Rückl Vedoucí práce Paeddr. Petr Pexa Školní rok: 2008-09 Abstrakt Tato práce se zabývá tvorbou internetové prezentace a vhodným využitím některých

Více

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně vyhledávat informace,

Více

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

X36SIN: Softwarové inženýrství. Životní cyklus a plánování X36SIN: Softwarové inženýrství Životní cyklus a plánování 1 Kontext Minule jsme si řekli, co to je deklarace záměru, odborný článek, katalog požadavků, seznam aktérů a seznam událostí. Seznam aktérů a

Více

Návrh stránek 4IZ228 tvorba webových stránek a aplikací

Návrh stránek 4IZ228 tvorba webových stránek a aplikací 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2013/12/12 20:40:58 $ Obsah Úvod... 3 Recept na dobré webové stránky... 4 Použitelnost... 5 Jak se pozná použitelný web...

Více

Olga Rudikova 2. ročník APIN

Olga Rudikova 2. ročník APIN Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová

Více

Webová grafika, struktura webu a navigace, použitelnost a přístupnost

Webová grafika, struktura webu a navigace, použitelnost a přístupnost Webová grafika, struktura webu a navigace, použitelnost a přístupnost Martin Kuna martin.kuna@seznam.cz Obsah Webová grafika Rozvržení stránky Typografické zásady Nejčastější chyby Struktura webu a navigace

Více

GOOGLE APPS FOR WORK. TCL DigiTrade - 22.10.2015

GOOGLE APPS FOR WORK. TCL DigiTrade - 22.10.2015 GOOGLE APPS FOR WORK TCL DigiTrade - 22.10.2015 Seminář 22.10.2015 9.00-9.25 Co jsou Google Apps for Work (Stanislav Marszalek - TCL DigiTrade) 9.30 9.55 Praktické příklady použití Google Apps ve firmě

Více

Metodologie řízení projektů

Metodologie řízení projektů Metodologie řízení projektů Petr Smetana Vedoucí práce PhDr. Milan Novák, Ph.D. Školní rok: 2008-09 Abstrakt Metodologie řízení projektů se zabývá studiem způsobů řešení problémů a hledání odpovědí v rámci

Více

E-learningovýsystém Moodle

E-learningovýsystém Moodle E-learningovýsystém Moodle Jan Povolný Název projektu: Věda pro život, život pro vědu Registrační číslo: CZ.1.07/2.3.00/45.0029 Co je to Moodle? - systém pro tvorbu a správu elektronických výukových kurzů

Více

Dobrý SHOP Popis produktu a jeho rozšíření

Dobrý SHOP Popis produktu a jeho rozšíření Dobrý SHOP Popis produktu a jeho rozšíření 501M012.N01 11/11/2011 www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní y...3 3.3 Doplňkové

Více

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

Více

Tomáš Kantůrek. IT Evangelist, Microsoft

Tomáš Kantůrek. IT Evangelist, Microsoft Tomáš Kantůrek IT Evangelist, Microsoft Správa a zabezpečení PC kdekoliv Jednoduchá webová konzole pro správu Správa mobilních pracovníků To nejlepší z Windows Windows7 Enterprise a další nástroje Cena

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

KOMPLEXNÍ NÁSTROJ NA SPRÁVU SOCIÁLNÍCH SÍTÍ

KOMPLEXNÍ NÁSTROJ NA SPRÁVU SOCIÁLNÍCH SÍTÍ KOMPLEXNÍ NÁSTROJ NA SPRÁVU SOCIÁLNÍCH SÍTÍ Dashboard ZoomSphere nabízí možnost vytvoření přehledných Workspaces, které je možné sdílet napříč firmou nebo s agenturou Každý Workspace má svůj Dashboard

Více

Použití analyzátoru paketů bezdrátových sítí Wireshark

Použití analyzátoru paketů bezdrátových sítí Wireshark Použití analyzátoru paketů bezdrátových sítí Wireshark Ladislav Sirový Ing. Ladislav Beránek, Csc. Školní rok: 2008-2009 Abstrakt Analýza sítí se zabývá sledováním a vyhodnocováním provozu počítačových

Více

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 MIS Manažerský informační systém pro Ekonomický informační systém EIS JASU CS Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 Poslední aktualizace dne 5.8.2014 MÚZO Praha s.r.o. je certifikováno

Více

Situace v dalším vzdělávání v kraji Vysočina s důrazem na malé a střední podniky. Vítězslav Šeda, OHK Jihlava

Situace v dalším vzdělávání v kraji Vysočina s důrazem na malé a střední podniky. Vítězslav Šeda, OHK Jihlava Situace v dalším vzdělávání v kraji Vysočina s důrazem na malé a střední podniky Vítězslav Šeda, OHK Jihlava Možnosti vzdělávání se zejména v kategorii dalšího vzdělávání v kraji Vysočina rozšířily zejména

Více

Česká zemědělská univerzita v Praze

Česká zemědělská univerzita v Praze Česká zemědělská univerzita v Praze Provozně ekonomická fakulta Katedra informačních technologií Teze diplomové práce Operační systém Google Android Petr Koula 2011 ČZU v Praze Souhrn Diplomová práce zahrnuje

Více

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně

Management informačních systémů. Název Information systems management Způsob ukončení * přednášek týdně Identifikační karta modulu v. 4 Kód modulu Typ modulu profilující Jazyk výuky čeština v jazyce výuky Management informačních systémů česky Management informačních systémů anglicky Information systems management

Více

SYLABUS IT V. Jiří Kubica. Ostrava 2011

SYLABUS IT V. Jiří Kubica. Ostrava 2011 P MODULU SYLABUS IT V DÍLČÍ ČÁST PROGRAMOVÁNÍ BUSINESS APLIKACÍ PODNIKU Bronislav Heryán Jiří Kubica Ostrava 20 : Autoři: Vydání: Počet stran: Tisk: Vydala: Sylabus modulu IT v podniku Programování business

Více

Bibliografických manažerů je celá řada. Tento materiál popisuje práci s nástrojem zvaným EndNote Basic.

Bibliografických manažerů je celá řada. Tento materiál popisuje práci s nástrojem zvaným EndNote Basic. ENDNOTE BASIC Bibliografické, nazývané také citační nebo referenční, manažery jsou užitečné nástroje sloužící k vytváření osobních bibliografií, a to především pomocí jednoduchého stažení vybraných záznamů

Více

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií Česká zemědělská univerzita v Praze Provozně ekonomická fakulta Katedra informačních technologií Teze diplomové práce Analýza a návrh informačního systému Miloš Rajdl 2012 ČZU v Praze 1 Souhrn Diplomová

Více

19.5.2010 16:16. Datum: 14.5.2010 Zpracoval: Ing. Richard Ruibar

19.5.2010 16:16. Datum: 14.5.2010 Zpracoval: Ing. Richard Ruibar Datum: 14.5.2010 Zpracoval: Ing. Richard Ruibar Kvalita Vzhled v různých prohlížečích Podrobná kontrola vzhledu a funkčnosti v prohlížečích s podílem nad 1% Podrobná kontrola vzhledu a funkčnosti ve vybraných

Více

DATAMINING SEWEBAR CMS

DATAMINING SEWEBAR CMS DATAMINING SEWEBAR CMS POUŽÍVANÉ NÁSTROJE Dolování z dat LISp-Miner Tvorba analytických zpráv Softwarová podpora projektem SEWEBAR Podporované prohlížeče Mozilla Firefox 11 či novější Google Chrome Většina

Více

Tvoříme PŘÍSTUPNÉ STRÁNKY. webové. Připraveno s ohledem na novelu Zákona č. 365/2000 Sb., o informačních systémech veřejné správy.

Tvoříme PŘÍSTUPNÉ STRÁNKY. webové. Připraveno s ohledem na novelu Zákona č. 365/2000 Sb., o informačních systémech veřejné správy. Tvoříme PŘÍSTUPNÉ STRÁNKY webové Připraveno s ohledem na novelu Zákona č. 365/2000 Sb., o informačních systémech veřejné správy David Špinar Tvoříme přístupné webové stránky Autor: David Špinar Copyright

Více

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií VY_32_INOVACE_33_02 Škola Název projektu, reg. č. Vzdělávací oblast Vzdělávací obor Tematický okruh Téma Tematická oblast Název Autor Vytvořeno, pro obor, ročník Anotace Přínos/cílové kompetence Střední

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Projektová dokumentace pro tvorbu internetových aplikací

Projektová dokumentace pro tvorbu internetových aplikací Projektová dokumentace pro tvorbu internetových aplikací Tomáš Kuthan PhDr. Milan Novák, Ph.D. Školní rok: 2008-09 Abstrakt Bakalářská práce stanovuje vzor pro vytváření projektové dokumentace internetových

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

1 Příručka používání Google Apps

1 Příručka používání Google Apps 1 Příručka používání Google Apps Tento manuál vznikl pro účel seznámení se základní funkčností balíku Google Apps a má za úkol Vás seznámit s principy používání jednotlivých služeb (Gmail, Kalendáře, Disk).

Více

Není nic staršího než včerejší web

Není nic staršího než včerejší web Není nic staršího než včerejší web Jan Ondrák Technická správa komunikací Praha René Zahradník IBM Lotus Software 2007 IBM Corporation Technická správa komunikací Praha Tradice od roku 1963, od roku 1996

Více

CSS. SEO Search Engine Optimization (optimalizace pro vyhledávače)

CSS. SEO Search Engine Optimization (optimalizace pro vyhledávače) CSS SEO Search Engine Optimization (optimalizace pro vyhledávače) Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Marek Čechák. Financováno z ESF a státního rozpočtu ČR. Název školy

Více

Projektový management a fundraising

Projektový management a fundraising Projektový management a fundraising Modul 5 Ukončení a vyhodnocení projektu Výukový materiál vzdělávacích kurzů v rámci projektu Zvýšení adaptability zaměstnanců organizací působících v sekci kultura Tento

Více

Vývoj informačních systémů. Obecně o IS

Vývoj informačních systémů. Obecně o IS Vývoj informačních systémů Obecně o IS Informační systém Informační systém je propojení informačních technologií a lidských aktivit směřující k zajištění podpory procesů v organizaci. V širším slova smyslu

Více

DATABÁZE MS ACCESS 2010

DATABÁZE MS ACCESS 2010 DATABÁZE MS ACCESS 2010 KAPITOLA 5 PRAKTICKÁ ČÁST TABULKY POPIS PROSTŘEDÍ Spuštění MS Access nadefinovat název databáze a cestu k uložení databáze POPIS PROSTŘEDÍ Nahoře záložky: Soubor (k uložení souboru,

Více

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa

Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Individuální projekt z předmětu webových stránek 2012/2013 - Anketa Daniel Beznoskov, 2 IT A Skupina 1 Úvod Prohlášení o autorství Prohlašuji, že jsem individuální projekt z předmětu webových stránek na

Více

KIV/PIA 2012 Ing. Jan Tichava

KIV/PIA 2012 Ing. Jan Tichava KIV/PIA 2012 Ing. Jan Tichava Opera Mini Zobrazených stránek za měsíc 90 G 80 G 70 G 60 G 50 G 40 G 30 G 20 G 10 G 0 G January 2011 May 2011 September 2011 January 2012 May 2012 September 2012 State of

Více

Mapa Česka: www.mapa-ceska.cz

Mapa Česka: www.mapa-ceska.cz Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

Google Apps. Administrace

Google Apps. Administrace Google Apps Administrace Radim Turoň 2015 Administrátorská konzole Google Apps Místo, ve kterém se nacházejí administrační nástroje pro správu vašeho Google Apps Administrátorská konzole - kde ji naleznete

Více

Standardy projektového řízení

Standardy projektového řízení Standardy projektového řízení Project Management Body of Knowledge Aktuálně pátá verze Zaštítěn Project Management Institute (PMI) V ČR Česká komora PMI Partner Studentského klub projektového řízení Rozšířen

Více

OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY

OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY OBJEDNÁVACÍ A INFORMAČNÍ SYSTÉMY STAkis-W STAkis-S Již dnes k dispozici všem zákazníkům společnosti Stahlgruber bez výjimky! www.stahlgruber.cz STAkis-W OBJEDNÁVACÍ SYSTÉM BEZ NUTNOSTI INSTALACE Jako výchozí

Více

WWW. Petr Jarolímek, DiS. Školní rok: 2008-09

WWW. Petr Jarolímek, DiS. Školní rok: 2008-09 WWW prezentace firmy v ASP.NET Petr Jarolímek, DiS PaedDr. Petr Pexa Školní rok: 2008-09 Abstrakt Nastudovat, porovnat, vyhodnotit problematiku modulárních systémů, vyhodnotit výhody a nevýhody. Dále naprogramovat

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

Dobrý CMS Popis produktu a jeho rozšíření

Dobrý CMS Popis produktu a jeho rozšíření Dobrý CMS Popis produktu a jeho rozšíření 503M012.N01 11/09/2012 www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní y...3 3.3 Doplňkové

Více

Projektové řízení jako základ řízení organizace

Projektové řízení jako základ řízení organizace Projektové řízení jako základ řízení organizace Aleš Chudý, ředitel divize IW ales.chudy@microsoft.com Technický seminář Bratislava 6.10.2008 Obsah Potřeby byznysu a IT Řešení EPM Microsoft EPM Optimalizační

Více

Možnosti reportingu v produktech řady EPM

Možnosti reportingu v produktech řady EPM Možnosti reportingu v produktech řady EPM Martin Répal Senior konzultant/manager EPM MCITP, MCP, MOS, MCTS, vtsp, Prince II martin.repal@autocont.cz 1 Jak je to s reportingem? Má SW produkt reporty? Tak

Více

Systém JSR představuje kompletní řešení pro webové stránky malého a středního rozsahu.

Systém JSR představuje kompletní řešení pro webové stránky malého a středního rozsahu. Redakční systém JSR Systém pro správu obsahu webových stránek Řešení pro soukromé i firemní webové stránky Systém JSR představuje kompletní řešení pro webové stránky malého a středního rozsahu. Je plně

Více

Nové přístupy tvorby web site. Doc. Ing. Zdeněk Havlíček, CSc. KIT PEF CZU - 13/11/2001

Nové přístupy tvorby web site. Doc. Ing. Zdeněk Havlíček, CSc. KIT PEF CZU - 13/11/2001 Nové přístupy tvorby web site Doc. Ing. Zdeněk Havlíček, CSc. KIT PEF CZU - 13/11/2001 Osnova Úvod Web site - jasný cíl Technologie - dynamický web Forma - vyšší interaktivita Obsah - stálá aktualizace

Více

P r e z e n t a c e p r o j e k t u. Přílohy k prezentaci

P r e z e n t a c e p r o j e k t u. Přílohy k prezentaci P r e z e n t a c e p r o j e k t u Přílohy k prezentaci 1. M o d u l Základní pojmy informačních a komunikačních technologií (ICT) Pochopení hlavních pojmů a základní znalost různých částí počítače. Pochopit,

Více

Copyright 2001, COM PLUS CZ a.s., Praha

Copyright 2001, COM PLUS CZ a.s., Praha Základní informace: CP Call je CTI (Computer Telephony Integration) aplikace. Jedná se tedy o vzájemné propojení osobního počítače a telefonního přístroje. Je vytvořena podle standardu CSTA (Computer Supported

Více

Studijní průvodce e-learningovými kurzy

Studijní průvodce e-learningovými kurzy Studijní průvodce e-learningovými kurzy Obsah průvodce: 1. METODICKÝ PRŮVODCE... 2 1.1. PRŮBĚŽNÉ TESTY - AUTOTESTY... 2 1.2. ZÁVĚREČNÝ TEST... 2 2. PRŮVODCE OVLÁDÁNÍM UŽIVATELSKÉHO PROSTŘEDÍ... 3 2.1.

Více

Studijní průvodce e-learningovým kurzem. STRUKTURÁLNÍ FONDY A PROJEKTY v období 2007-2013

Studijní průvodce e-learningovým kurzem. STRUKTURÁLNÍ FONDY A PROJEKTY v období 2007-2013 Studijní průvodce e-learningovým kurzem STRUKTURÁLNÍ FONDY A PROJEKTY v období 2007-2013 Obsah průvodce: 1. METODICKÝ PRŮVODCE... 2 2. PRŮVODCE OVLÁDÁNÍM UŽIVATELSKÉHO PROSTŘEDÍ... 4 3. TECHNICKÝ PRŮVODCE...

Více

Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362

Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Stránka 1 z 21 Obsah 1. Co je systém HELPdesk?... 2 2. Možnosti využití systému HELPdesk:... 2 3.

Více

7. SEO Nástroje pro analýzu úspěšnosti. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

7. SEO Nástroje pro analýzu úspěšnosti. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008) 7. SEO Nástroje pro analýzu úspěšnosti Web pro kodéry (Petr Kosnar, ČVUT, Obsah Terminologie Fáze SEO Strategie SEO Key Performance Indicator Analýza klíčových slov AdWords Google Analytics Google Webmaster

Více

Internetové služby isenzor

Internetové služby isenzor Internetové služby isenzor Aktuální snímek z webové kamery nebo aktuální teplota umístěná na vašich stránkách představují překvapivě účinný a neotřelý způsob, jak na vaše stránky přilákat nové a zejména

Více

================================================================================ =====

================================================================================ ===== Název: VY_32_INOVACE_PG4101 Základní struktura HTML stránky Datum vytvoření: 01 / 2012 Anotace: DUM seznamuje se základní strukturou a členěním HTML stránky, s jednotlivými složkami - HTML, CSS, externí

Více

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace

HLEDEJCENY.mobi. Obsah. Mobilní verze e-shopu. Důvody instalace Obsah HLEDEJCENY.mobi Mezi Vodami 1952/9 e-mail: info@hledejceny.cz HLEDEJCENY.mobi... 1 Mobilní verze e-shopu... 1 Důvody instalace... 1 Výhody... 2 Co je k mobilní verzi potřeba... 2 Objednávka služby...

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

IntraVUE 2.0.3 Co je nového

IntraVUE 2.0.3 Co je nového IntraVUE 2.0.3 Co je nového Michal Tauchman Pantek (CS) s.r.o. Červen 2008 Strana 2/8 Úvod IntraVUE je diagnostický a podpůrný softwarový nástroj pro řešení komunikačních problémů, vizualizaci a dokumentaci

Více

Registr práv a povinností

Registr práv a povinností Registr práv a povinností Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP v4.0

Více

Možnosti využití ve školství

Možnosti využití ve školství Možnosti využití ve školství V předmětu ICT v edukačním procesu, moderní didaktické teorie se jedná pouze o stručný úvod do problematiky. Jaké jsou v současnosti používané metody elektronické komunikace

Více

Sísyfos Systém evidence činností

Sísyfos Systém evidence činností Sísyfos Systém evidence Sísyfos : Evidence pracovních Systém Sísyfos je firemní aplikace zaměřená na sledování pracovních úkonů jednotlivých zaměstnanců firmy. Umožňuje sledovat pracovní činnosti na různých

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová Databáze MS-Access Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová Obsah Principy a možnosti databází. Uložení dat v databázi, formáty dat, pole, záznamy, tabulky, vazby mezi záznamy. Objekty databáze

Více

Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Datové služby sdružení CESNET http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY Jakub Šesták 5. 12. 2014 1. ročník navazujícího

Více

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY Internet World Wide Web FTP, fulltext e-mail, IP adresa webový prohlížeč a vyhledávač CÍLE KAPITOLY Pochopit, co je Internet

Více

Od videokonference k telepresenci

Od videokonference k telepresenci Od videokonference k telepresenci Tomáš Tesař Business Development Manager, tesar@atlantis.cz Distributor Polycom technologie v ČR a SK Agenda Přínos videokonferenční komunikace Faktory umožňující rozmach

Více

Informace k e-learningu

Informace k e-learningu Informace k e-learningu Příprava na testy bude probíhat samostatně formou e-learningových školení přístupných způsobem popsaným níže. Zkušební testy, pomocí kterých se budete připravovat na závěrečný test,

Více

Marketingové využití internetu

Marketingové využití internetu Marketingové využití internetu Obsah dnešní přednášky Internet, web 2.0 Dlouhý chvost, reputační systémy Využití internetu pro marketingové účely Webové prohlížeče a optimalizace stránek Typy reklamy Facebook

Více

Novell Identity Management. Jaromír Látal Datron, a.s.

Novell Identity Management. Jaromír Látal Datron, a.s. Novell Identity Management Jaromír Látal Datron, a.s. 19.4.2012 1 Identity management základní vlastnosti Jednoduché a rychlé poskytování uživatelských účtů Samoobslužné funkce pro uživatele Snadný návrh

Více

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA Obsah Obsah... 4 Pinya CMS... 5 Přihlášení do systému... 6 Položky v menu administrace... 7 Uživatelé... 8 Správa uživatelů... 8 Nový uživatel... 9 Role... 10 Vytvoření

Více

Znalostní systém nad ontologií ve formátu Topic Maps

Znalostní systém nad ontologií ve formátu Topic Maps Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:

Více

Vzorový audit webové stránky podle

Vzorový audit webové stránky podle Vzorový audit webové stránky podle Web Content Accessibility Guidelines Autor: Tomáš Drn Vedoucí práce: PaedDr. Petr Pexa Školní rok: 2009-10 Abstrakt Tato práce se zabývá hodnocením správnosti provedení

Více

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend Lotus Quickr - ECM Integrace s LD/LN aplikacemi Ing. Josef Homolka VUMS Legend Lotus Symposium 2010 Co nám přinesl systém ISDS?? Informační Systém Datových Schránek 2 Otázku Kam s ním? 3 Ptáte se s čím?

Více

Průměrná měsíční návštěvnost dosahuje přes 2 milióny unikátních uživatelů*.

Průměrná měsíční návštěvnost dosahuje přes 2 milióny unikátních uživatelů*. Produktový list O službě Firmy.cz je katalogová služba, která kombinuje hledání na klíčová slova, oborové kategorie a lokalitu uživatele při hledání v největší databázi firem na českém internetu. Firmy.cz

Více

Strom funkcí Lenovo Solution Center: Systémové nástroje (System)

Strom funkcí Lenovo Solution Center: Systémové nástroje (System) Solution Center funguje jako jednotné centrum, které sleduje stav počítače, hlásí případné problémy a pomůže s jejich řešením (proto Solution Center centrum řešení). Aplikace je mnohem přívětivější pro

Více

Prezentace navrhované struktury internetových stránek

Prezentace navrhované struktury internetových stránek Prezentace navrhované struktury internetových stránek Petr SUNEGA petr.sunega@soc.cas.cz Telefon: 221 183 225 http://seb.soc.cas.cz Oddělení ekonomické sociologie, tým socioekonomie bydlení Cíle prezentace

Více

Základní informace: vysoce komfortnímu prostředí je možné se systémem CP Recorder efektivně pracovat prakticky okamžitě po krátké zaškolení.

Základní informace: vysoce komfortnímu prostředí je možné se systémem CP Recorder efektivně pracovat prakticky okamžitě po krátké zaškolení. Základní informace: CP Recorder je v Čechách vyvíjený systém pro sofistikované zaznamenávání telefonních hovorů. V prvé řadě je určen pro optimalizaci služeb, které poskytují u nás stále více populární

Více

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009 Compatibility List Verze 3.60.5 8.4.2009 GORDIC spol. s r. o. Copyright 1993-2009 1 Obsah Obsah 1 2 3 4 5 6 7 8 9 3.1 3.2 Úvodní informace Podporované databázové systémy Klientské prostředí Tlustý klient...

Více

Komunikace na Googlu. Využití nástrojů Google při práci v knihovně. mraz@firemnifoto.cz

Komunikace na Googlu. Využití nástrojů Google při práci v knihovně. mraz@firemnifoto.cz Komunikace na Googlu Využití nástrojů Google při práci v knihovně 1 mraz@firemnifoto.cz Evoluce sociální komunikace 2 mraz@firemnifoto.cz Proč komunikovat na Googlu Služba Moje firma na Googlu je rychlý

Více

JRV.CZ s.r.o. Bulharská 4 612 00 Brno www.rosadata.cz. RosaData TM DEVELOPERSKÝ PROJEKT

JRV.CZ s.r.o. Bulharská 4 612 00 Brno www.rosadata.cz. RosaData TM DEVELOPERSKÝ PROJEKT RosaData TM DEVELOPERSKÝ PROJEKT OBSAH Úvod... 4 Developerský projekt... 5 Seznam developerských projektů... 5 Základní údaje... 6 Popis... 7 Technické detaily... 8 Reality... 11 Foto... 13 Obchodní případ...

Více

ZŠ a MŠ, Brno, Horníkova 1 - Školní vzdělávací program

ZŠ a MŠ, Brno, Horníkova 1 - Školní vzdělávací program 4.3. Informační a komunikační technologie Charakteristika předmětu Vzdělávací oblast je realizována prostřednictvím vyučovacího předmětu Informatika. Informatika je zařazena do ŠVP jako povinný předmět

Více

Leady & MERK Integrace Microsoft Dynamics CRM s aplikacemi Leady a MERK

Leady & MERK Integrace Microsoft Dynamics CRM s aplikacemi Leady a MERK Integrace Microsoft Dynamics CRM s aplikacemi Leady a MERK Strana 1 z 12 Obsah 1. Leady... 3 a. Shrnutí... 3 b. Popis modulu... 3 c. Technické podrobnosti o modulu... 5 2. MERK... 6 a. Shrnutí... 6 b.

Více

Návrh webové prezentace. Internetové publikování

Návrh webové prezentace. Internetové publikování Návrh webové prezentace Internetové publikování 1 Co je webdesign? Jedna z definic Návrh webových stránek nebo webových aplikací s využitím různých technologií Řemeslo, věda nebo umění? Různí autoři se

Více

Dobrý FOTO Popis produktu a jeho rozšíření

Dobrý FOTO Popis produktu a jeho rozšíření Dobrý FOTO Popis produktu a jeho rozšíření 502M012.N00 11/11/2011 www.dobry-foto.cz www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní

Více

Telelogic Focal Point využití pro řízení a optimalizaci projektového portfolia Verze 1.0

Telelogic Focal Point využití pro řízení a optimalizaci projektového portfolia Verze 1.0 DISTRIBUTOR White Paper Verze 1.0 Ing. Jiří Gryc 26.4.2007 Tento dokument ve stručnosti představuje možnost využití špičkového Telelogic Focal Point pro řízení a optimalizaci projektového portfolia. Další

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Vzdálený přístup k počítačům

Vzdálený přístup k počítačům Vzdálený přístup k počítačům jedna z nejstarších služeb vzdálený přístup k sálovým počítačům nejprve vzdálené terminály později terminálová emulace jako jedna ze služeb počítačové sítě současnost využíváno

Více

Úvod do programovacího jazyka Python

Úvod do programovacího jazyka Python Úvod do programovacího jazyka Python Co je to Python? Python je objektově orientovaný programovací jazyk, který se může využít v mnoha oblastech vývoje softwaru. Nabízí významnou podporu k integraci s

Více