České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Redakční systém pro komunitní centra Jan Havela
Vedoucí práce: Ing. Ondřej Macek
Studijní program: Elektrotechnika a informatika, dobíhající, Bakalářský Obor: Výpočetní technika 25. května 2010
iv
v
Poděkování Chtěl bych poděkovat vedoucímu bakalářské práce Ing. Ondřeji Mackovi za metodické vedení, připomínky a užitečné rady. Také bych chtěl poděkovat své rodině a svým přátelům, kteří mi byli oporou při studiu a podíleli se na vzniku této bakalářské práce.
vi
vii
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 15. 5. 2010
.............................................................
viii
Abstract The main focus of this thesis was to find an acceptable content management system, which would have covered requirements of community centres. An analysis of requirements was made and an acceptable content management system was chosen. Usability of this application was approved by case study and user tests. The application was partly translated to czech and an instalation guide and an user guide were created. This application allows community centres to manage and publish their created pages.
Abstrakt Cílem této práce bylo najít vhodný nástroj pro správu obsahu, který by splňoval požadavky komunitních center. Byla provedena analýza těchto požadavků a výběr vhodného nástroje správy obsahu. Vhodnost aplikace byla ověřena modelovým příkladem a uživatelskými testy. Samotná aplikace byla z větší části přeložena do češtiny a byla vytvořena instalační a uživatelská příručka. Tato aplikace tedy poslouží komunitním centrům pro snadnou a rychlou správu a publikaci svých vlastních webových stránek.
ix
x
Obsah 1 Úvod 1.1 Komunitní centrum . . . . . . . . . . . . . . . . 1.2 Hierarchie komunitních center . . . . . . . . . . 1.3 Skautský oddíl . . . . . . . . . . . . . . . . . . 1.4 Content Management System . . . . . . . . . . 1.4.1 Co je to Content Management System? 1.4.2 Web Content Management System . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
9 9 9 10 12 12 12
2 Požadavky na CMS 2.1 Funkční požadavky . . . . . . . . . . . . . . . . . 2.1.1 Zobrazení stránek . . . . . . . . . . . . . . 2.1.2 Administrace . . . . . . . . . . . . . . . . 2.1.3 Řízení uživatelů podle rolí . . . . . . . . . 2.1.4 Možnost spravovat obsah, role a uživatele 2.1.5 Textový a obrázkový obsah . . . . . . . . 2.1.6 Blog . . . . . . . . . . . . . . . . . . . . . 2.1.7 Diksuzní fórum . . . . . . . . . . . . . . . 2.1.8 Kalendář akcí . . . . . . . . . . . . . . . . 2.1.9 Statistika návštěvnosti . . . . . . . . . . . 2.1.10 Formulář pro odeslání e-mailu . . . . . . . 2.1.11 Upload souborů . . . . . . . . . . . . . . . 2.1.12 Galerie multimédií . . . . . . . . . . . . . 2.2 Nefunkční požadavky . . . . . . . . . . . . . . . . 2.2.1 Požadavky na systém . . . . . . . . . . . 2.2.2 Požadavky na uživatelské rozhraní . . . . 2.2.3 Další požadavky . . . . . . . . . . . . . . 2.3 Případy užití . . . . . . . . . . . . . . . . . . . . 2.3.1 Systémové role . . . . . . . . . . . . . . . 2.3.2 Registrovaný uživatel . . . . . . . . . . . . 2.3.3 Správce obsahu . . . . . . . . . . . . . . . 2.3.4 Správce rolí . . . . . . . . . . . . . . . . . 2.3.5 Administrátor . . . . . . . . . . . . . . . . 2.4 Doménový model . . . . . . . . . . . . . . . . . . 2.5 Pokrytí případů užití dostupnými moduly CMS . 2.6 Srovnání technologií PHP a ASP.NET . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
13 13 13 13 13 14 14 14 14 15 15 15 15 16 16 16 16 16 17 17 17 18 19 20 21 22 23
1
2
OBSAH
2.7
2.6.1 Kód a jeho členění . . . . . . . 2.6.2 Vybavení . . . . . . . . . . . . 2.6.3 Výsledné zhodnocení . . . . . . Porovnání CMS v ASP.NET . . . . . . 2.7.1 Kritéria při volbě CMS . . . . . 2.7.2 ASP.NET . . . . . . . . . . . . 2.7.3 Průzkum volně šířitelných CMS 2.7.3.1 DotNetNuke.com . . . 2.7.3.2 Umbraco CMS . . . . 2.7.3.3 mojoPortal . . . . . . 2.7.4 Výběr správného CMS . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pro .NET . . . . . . . . . . . . . . . . . . . . . . . .
3 mojoPortal 3.1 Popis . . . . . . . . . . . . . . . . . . . . 3.2 Dostupné moduly . . . . . . . . . . . . . 3.2.1 HTML . . . . . . . . . . . . . . . 3.2.2 Blog . . . . . . . . . . . . . . . . 3.2.3 Fórum . . . . . . . . . . . . . . . 3.2.4 Kalendář událostí . . . . . . . . . 3.2.5 Sdílené soubory . . . . . . . . . . 3.2.6 Statistika . . . . . . . . . . . . . 3.2.7 Kontaktní formulář . . . . . . . . 3.2.8 Galerie . . . . . . . . . . . . . . . 3.3 ASP.NET Webhosting . . . . . . . . . . 3.3.1 Kritéria při výběru hostingu . . . 3.3.2 Průzkum dostupných hostingů . 3.3.3 Výběr vyhovujícího webhostingu 3.4 Case Study . . . . . . . . . . . . . . . . 3.4.1 Skauting . . . . . . . . . . . . . . 3.4.2 Co je skauting? . . . . . . . . . . 3.4.3 Oddíly . . . . . . . . . . . . . . . 3.4.4 Vlčata . . . . . . . . . . . . . . . 3.4.5 Členové oddílu Vlčata . . . . . . 3.4.6 Galerie oddílu Vlčata . . . . . . . 3.4.7 Kronika oddílu Vlčata . . . . . . 3.4.8 Kalendář oddílu Vlčata . . . . . 3.4.9 Diskuzní fórum . . . . . . . . . . 3.4.10 Stáhněte si . . . . . . . . . . . . 3.4.11 Soukromé . . . . . . . . . . . . . 3.4.12 Statistika . . . . . . . . . . . . . 3.4.13 Kontakty . . . . . . . . . . . . . 3.5 Lokalizace . . . . . . . . . . . . . . . . . 3.6 Příručky . . . . . . . . . . . . . . . . . . 3.6.1 Instalační příručka . . . . . . . . 3.6.2 Uživatelská příručka . . . . . . . 3.7 Uživatelské testy . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
23 23 24 25 25 25 26 26 27 28 29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 31 32 32 32 33 33 33 33 34 34 35 35 35 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 44 45 46
OBSAH
3
3.7.1 3.7.2 3.7.3
Profil uživatelů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Úlohy testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Výsledky testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4 Závěr 49 4.1 Zhodnocení práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Budoucí práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3 Závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Literatura
51
A Obsah přiloženého CD
53
4
OBSAH
Seznam obrázků 1.1 1.2
Obecná hierarchie komunitních center . . . . . . . . . . . . . . . . . . . . . . 10 Hierarchie skautského oddílu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 2.2 2.3 2.4 2.5 2.6 2.7
Uživatelské role v systému Registrovaný uživatel . . . Správce obsahu . . . . . . Správce rolí . . . . . . . . Administrátor . . . . . . . Doménový model . . . . . Funkční schéma ASP.NET
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
17 17 18 19 20 21 26
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13
Rozcestník na podstránky . . . . . . . . . . . . . . . . . Stránka Co je skauting? . . . . . . . . . . . . . . . . . . Stránka Oddíly . . . . . . . . . . . . . . . . . . . . . . . Stránka oddílu Vlčata . . . . . . . . . . . . . . . . . . . Stránka se členy oddílu Vlčata . . . . . . . . . . . . . . . Stránka s galerií oddílu Vlčata . . . . . . . . . . . . . . . Stránka s kronikou oddílu Vlčata . . . . . . . . . . . . . Stránka s kalendářem oddílu Vlčata . . . . . . . . . . . . Stránka s diskuzním fórem . . . . . . . . . . . . . . . . . Stránka se stažitelnými soubory . . . . . . . . . . . . . . Stránka se stažitelnými soubory pro přihlášené uživatele Stránka se statistikou . . . . . . . . . . . . . . . . . . . . Stránka s kontakty a kontaktním formulářem . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
37 38 38 39 39 40 40 41 41 42 42 43 43
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
5
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
6
SEZNAM OBRÁZKŮ
Seznam tabulek 2.1 2.2
Tabulka standardních funkcí systému . . . . . . . . . . . . . . . . . . . . . . . 22 Tabulka pokrytí požadavků dostupnými moduly . . . . . . . . . . . . . . . . . 22
3.1 3.2
Tabulka hostingů se základními informacemi . . . . . . . . . . . . . . . . . . . 35 Tabulka hostingů s popisem variant . . . . . . . . . . . . . . . . . . . . . . . . 36
7
8
SEZNAM TABULEK
Kapitola 1
Úvod 1.1
Komunitní centrum
Komunita znamená společenství. Z toho jsou pak odvozena komunitní centra, která si zakládají na sdružování lidí. Nabízejí obci či městské části místo setkávání, při kterém je např. postaráno o starší lidi, o postižené či děti a mládež. Posláním těchto komunitních center je snaha o rozvoj místní komunity - kluby pro děti a mládež, jazykové kurzy, knihovny atd. Komunitní centra si v dnešní době vystaví informace o sobě na internet, přidají si na web několik fotek z akcí a mohou mít třeba návštěvní knihu pro diskuzi. Tyto weby bývají často dost jednoduché. Buďto je vytvořil někdo se základními znalostmi programování v HTML nebo si komunitní centrum jednorázově zaplatilo naprogramování webu a dále se o něj moc nestarají. Zde je tedy velký prostor na zlepšení podpory těchto činností a komunitních center celkově. Optimální řešení by bylo ve formě webové aplikace, která by byla jednoduchá na obsluhu a zároveň obsáhlá svou funkčností, aby pokryla složitější hierarchie komunitních center a aby umožnila komunitním centrům rychlou a bezproblémovou publikaci činností.
1.2
Hierarchie komunitních center
Každé komunitní centrum může mít svou vlastní koncepci, zaměření a určitou rozmanitost v rámci celého modelu komunitního centra. Avšak základní kostra hierarchie komunitních center je stejná.
9
10
KAPITOLA 1. ÚVOD
Obrázek 1.1: Obecná hierarchie komunitních center Typicky bývá jedno vedení celého komunitního centra, kdy je v čele předseda či více osob. Vedení komunitního centra má pak obvykle jednoho či více asistentů. Tento počáteční model „vedoucí-asistent“ by se dal aplikovat na všechna komunitní centra. Další úrovně hierarchie se mohou dosti lišit od zaměření konkrétního komunitního centra. Všeobecně se tedy pomyslná třetí úroveň hierarchie může rozpadat na různé části komunitního centra, jakými jsou oddíly, kurzy, kruhy a další. Tyto části komunitního centra mají obvykle svého vedoucího, např. učitel jazykového kurzu. Tento vedoucí má pak pod sebou účastníky dané činnosti, např. zapsaní žáci do jazykového kurzu.
1.3
Skautský oddíl
Jedním typickým příkladem komunitního centra je skautský oddíl, takže jsem si ho zvolil jako vzor při konkretizaci některých činností a prezentaci aplikace. Cílem takového skautského oddílu je výchova a sebevýchova lidí všech věkových kategori. Jeho členové se jmenují skauti a jejich cílem je příprava jedince k plnění povinností k sobě samému a lidskému společenství. Hierarchie takového skautského oddílu může vypadat následovně.
1.3. SKAUTSKÝ ODDÍL
11
Obrázek 1.2: Hierarchie skautského oddílu Vedení skautského oddílu „Sněm tří ohniváků“ má celkem tři členy, kde první dva jsou předsedové oddílu a třetí je jejich asistent. Na další úrovni je vedení všech dílčích oddílů „Dozorčí hlídka“. Ta má jednoho vedoucího a dva asistenty. Toto vedení dohlíží na chod všech dílčích oddílů a jejich vedoucích. Takže na poslední úrovni jsou jednotlivé oddíly „Brlohy“, které mají svého vedoucího a jsou rozděleny např. podle věkové kategorie účastníků. Tyto jednotlivé oddíly, resp. jejich členové dostanou vlastní pojmenování (Jezevci, Skokani...).
12
1.4 1.4.1
KAPITOLA 1. ÚVOD
Content Management System Co je to Content Management System?
Content Management System (CMS) je balík nejrůznějších funkcí a procedur pro řízení uživatelských činností. Jeho funkce jsou směřovány na kontrolu přístupů k datům pomocí uživatelských rolí, dále na velký počet uživatelů spravujících svá vlastní data a jejich publikaci, na zlepšení a zjednodušení vytváření vlastních dat a zlepšení komunikace mezi uživateli. V CMS jsou pak data definována nejrůznějšími způsoby - dokumenty, multimédia, vědecká data atd. CMS najde využítí zejména pro ukládání, kontrolu, opravy a zveřejňování dokumentů.
1.4.2
Web Content Management System
Jedním z několika druhů CMS je i Web CMS (WCMS), což je software implementovaný jako webová aplikace pro vytváření a spravování HTML obsahu. Je používána ke spravování velkých, dynamických balíků webového materiálu (HTML dokumenty a jejich přidružená multimédia). Tento software nabízí takové nástroje, aby tvorbu HTML obsahu zvládli i uživatelé bez programátorských znalostí. Většina těchto webových aplikací používá databáze nebo XML soubory pro ukládání obsahu. Prezentační vrstva pak zobrazuje návštěvníkům obsah založený na vytvořených šablonách (skinech). Tyto šablony mohou být soubory transformací XSLT nebo kaskádových stylů CSS. Narozdíl od aplikací sloužících k psaní webových stránek, je WCMS určeno pro neznalejší uživatele. Takže si uživatelé mohou vytvářet své vlastní stránky a obsahy jakmile projdou základním úvodem do aplikace. Na druhou stranu je potřeba zkušenějšího uživatele pro prvotní nastavení aplikace, jejích modulů a řešení uživatelských problémů. V ostatních případech je ale zacílení WCMS na technicky slabší uživatele. Mezi nejčastější funkce a vymoženosti WCMS patří přednastavené šablony vzhledu, snadno editovatelný obsah pomocí WYSIWYG editorů, možnost rozšiřovat funkce aplikace pomocí přídavných modulů, časté aktualizace, řízení publikací uživatelů (workflow), řízení uživatelských akcí pomocí systémových rolí a oprávnění, správu dokumentů, distribuci obsahu pomocí RSS kanálů a informování uživatelů různými infomaily. Naším snažením bude najít webový CMS. Nejsme omezeni platformou a přístup na internet je v dnešní době samozřejmostí. Správa a používání takového CMS pak vyžaduje pouze nainstalovaný webový prohlížeč, který je standardní součástí operačních systémů. Pokud bychom našli takový WCMS, který by splňoval všechny naše požadavky, mohli bychom ho využít. Jeho možnosti a uživatelskou přívětivost bychom si ověřili pomocí uživatelských testů. Pokud by vše proběhlo bez vážnějších problémů, nebyla by nutná implementace vlastního CMS.
Kapitola 2
Požadavky na CMS 2.1 2.1.1
Funkční požadavky Zobrazení stránek
Systém bude umožňovat zobrazit vytvořené stránky s přídavným obsahem pomocí textových odkazů ve formě menu a mapy stránek. Vyplývající požadavky UC1 Zobrazení vytvořené stránky UC2 Zobrazení obsahu stránky UC3 Zobrazení odkazu stránku
2.1.2
Administrace
V systému bude dostatečný prostor pro správu celé aplikace. Budou zde nastavení jako volba vzhledu, rozšiřující nastavení aplikace, výpis systémových hlášení a chyb, přehled o vytvořených stránkách s obsahy a přehled všech registrovaných uživatelů. Vyplývající požadavky UC4 Nastavení vzhledu portálu UC5 Nastavení funkcí portálu
2.1.3
Řízení uživatelů podle rolí
Systém bude umožňovat rozšířenou správu uživatelů a jejich rolí. Komunitní centrum se skládá z několika částí (oddílů, kurzů, kruhů). Každá část má určitý počet členů a nějaké vedení, popř. zástupce (asistenty) vedení. Členové komunitního cetra mají určitou roli v rámci např. svého kurzu, jinou roli v rámci celého komunitního centra a třeba žádnou roli v rámci jiného kurzu. U vedení je to podobné. Vedoucí má větší práva v rámci svého kurzu, ale v rámci komunitního centra má práva menší. Může nastat i případ, kdy jeden vedoucí má nastarost dva a více kurzů. Systém tedy bude schopný přiřadit jednomu uživateli více rolí a pomocí rolí pak definovat jeho akce v systému.
13
14
KAPITOLA 2. POŽADAVKY NA CMS
Vyplývající požadavky UC6 Nastavení oprávnění rolím
2.1.4
Možnost spravovat obsah, role a uživatele
Uživatelské rozhraní bude obsahovat prostor pro správu uživatelů, rolí, stránek a obsahu. Možnost zakládat nové uživatele, měnit údaje stávajícím uživatelům, vytvářet nové systémové role a přidávat do nich uživatele, mít přehled o vytvořených stránkách, možnost editovat tyto stránky včetně jejich obsahu a oprávnění v rámci uživatelských rolí. Vyplývající požadavky UC7 Vytváření, editace a smazání uživatele UC8 Vytváření, editace a smazání role UC9 Vytváření, editace jejich nastavení a smazání stránky UC10 Vytváření, editace jejich nastavení a smazání obsahy
2.1.5
Textový a obrázkový obsah
Systém bude umožňovat vytváření informací z našeho komunitního centra v textové podobě včetně obrázků, nastylovaného písma, odkazů či různých tabulek. K tomu bude sloužit jednoduchý editor. Složitost editoru bude na takové úrovni, aby stačilo mít základní zkušennosti např. s MS Word či podobným textovým editorem. Vyplývající požadavky UC11 Vytváření textového a obrázkového obsahu pomocí editoru
2.1.6
Blog
Blog bude sloužit jako kronika - kronikové zápisy z akcí komunitního centra (schůzky, výpravy, tábory, soutěže, zájezdy atd.). Bude mít opět jednoduchý editor na vytváření popisů akcí, kalendář pro filtrování období, možnost založit kategorie pro zápisy a přehled zápisů s náhledem textu popisu akce. Vyplývající požadavky UC12 Vytváření, editace a smazání příspěvku UC13 Vytváření, editace a smazání kategorie pro příspěvky
2.1.7
Diksuzní fórum
Diskuzní fórum bude sloužit jako místo pro diskuzi v jednotlivých částech komunitního centra. Každý se zde bude moct svobodně vyjádřit k vedení komunitního centra, k akcím a k čemukoliv, co se týká našeho komunitního centra. Bude zde i prostor pro vyjádření veřejnosti - co se jim na našem komunitním centru líbí nebo naopak nelíbí, co by si přáli změnit nebo co jim u nás chybí. Psaní příspěvků do fóra bude pomocí jednoduchého formuláře či editoru. Diskuzní fóra budou rozdělena do kategorií a v kategoriích bude možnost vytvářet témata, do kterých se budou psát příspěvky.
2.1. FUNKČNÍ POŽADAVKY
15
Vyplývající požadavky UC14 Vytváření, editace a smazání diskuze UC15 Přispívání do diskuzního fóra
2.1.8
Kalendář akcí
Kalendář akcí bude mít formu tabulky. Tabulka bude ve výchozím nastavení zobrazovat aktuální měsíc, kde sloupce tabulky definují dny v týdnu a počet řádků tabulky závisí na počtu týdnů v daném měsící. Aktuální den a víkendy budou barevně odlišeny. Ke každému dni bude možnost přidat jednu či více akcí, ve které bude možné definovat čas začátku akce, délku trvání, datum a lokaci. Kalendář bude sloužit pro přehled budoucích a minulých akcí komunitního centra. Vyplývající požadavky UC16 Vytváření, editace a smazání akce v kalendáři
2.1.9
Statistika návštěvnosti
Statistika bude sloužit pro přehled návštěvnosti na našich stránkách a také, aby přihlášení uživatelé viděli, kdo další je s nimi na stránkách online. Bude mít formu jednoduché tabulky s počty přihlášených a registrovaných uživatelů, dále informace o denní a měsíční návštěvnosti a přihlášeným uživatelům se zobrazí výpis jmen dalších aktuálně přihlášených uživatelů. Vyplývající požadavky UC17 Vytváření, editace a smazání statistiky na stránkách
2.1.10
Formulář pro odeslání e-mailu
Tato funkce bude obsahovat jednoduchý formulář či editor pro napsání zprávy a předmětu. Dále zde bude pole pro vyplnění e-mailu a jednoduchý anti-spamový ochraný mechanizmus. Po odeslání formuláře příjde zpráva na zadaný systémový e-mail. Vyplývající požadavky UC18 Odesílání e-mailu s dotazy na uvedenou adresu
2.1.11
Upload souborů
Systém bude umožňovat upload souborů. Příslušní uživatelé budou moci nahrávat soubory na web a budou moci stahovat nahrané soubory k sobě do počítače. Funkce bude umožňovat nahrání více souborů najednou a vytvářet složky, do kterých se soubory budou dát kategorizovat. Dále bude umožňovat mazání, přejmenování a přesun souborů mezi složkami. Vyplývající požadavky UC19 Nahrávání, editace a smazání souboru UC20 Vytváření, editace a smazání složky pro soubory
16
2.1.12
KAPITOLA 2. POŽADAVKY NA CMS
Galerie multimédií
Galerie bude umožňovat náhledy (thumbnaily) na jednotlivé obrázky či videa a při rozkliknutí obrázku bude jednoduché GUI, pomocí kterého se bude dát listovat mezi fotkami v plné velikosti. Do galerie se budou moci nahrávat i hromadně celé složky obrázků či videí. Ke každému multimédiu bude možné napsat popis a titulek pomocí jednoduchého formuláře nebo editoru. Vyplývající požadavky UC21 Nahrávání, editace a smazání obrázku v galerii
2.2 2.2.1
Nefunkční požadavky Požadavky na systém
Webová aplikace poběží na běžně dostupných veřejných hostitelských serverech. Implementace aplikace v libovolném jazyce (PHP, Pearl, ASP) bude za použití libovolné databáze (MySQL, MS SQL, PostgreSQL). Webová aplikace bude použitelná v běžně dostupném prohlížeči Internet Explorer, ale i v dalších prohlížečích jako je Mozilla Firefox, Konqueror, Safari či Opera.
2.2.2
Požadavky na uživatelské rozhraní
Systém bude natolik jednoduchý, aby s ním dokázali pracovat lidé různých věkových kategorií, lidé s postižením a lidé s různým dosaženým vzděláním. S tím souvisí fakt, že systém bude podporovat českou lokalizaci.
2.2.3
Další požadavky
Cena systému nebo provozu systému musí být co nejnižší.
2.3. PŘÍPADY UŽITÍ
2.3 2.3.1
17
Případy užití Systémové role
V systému budou existovat čtyři základní neměnné role - registrovaný uživatel, správce obsahu, správce rolí a administrátor. Role budou definovány podle následujícího diagramu.
Obrázek 2.1: Uživatelské role v systému
2.3.2
Registrovaný uživatel
Registrovaný uživatel smí pouze zobrazovat vytvořené stránky s jejich obsahy. Tuto roli bude mít každý zaregistrovaný uživatel v systému a role bude automaticky přidělována každému nově vytvořenému uživateli.
Obrázek 2.2: Registrovaný uživatel
18
2.3.3
KAPITOLA 2. POŽADAVKY NA CMS
Správce obsahu
Uživatel s touto rolí smí vytvářet nové prázdné stránky, editovat jejich nastavení a nebo již vytvořené stránky mazat. K vytvořeným stránkám smí přidávat obsah, měnit nastavení obsahu a nebo obsahy ze stránek odebírat. Z důvodu zjednodušení diagramu jsou funkční požadavky UC10 až UC21 popsány balíčkem Správa obsahu, jelikož se zmíněné funkční požadavky týkají právě přídavného obsahu. Balíček Správa stránky odpovídá funkčnímu požadavku UC9.
Obrázek 2.3: Správce obsahu
2.3. PŘÍPADY UŽITÍ
2.3.4
19
Správce rolí
Uživateli s touto rolí bude zpřístupněna možnost vytvářet nové systémové role a nebo role ze systému odebírat. Také smí měnit názvy rolí a nastavovat role registrovaným uživatelům. Balíček Spravovat role odpovídá funkčnímu požadavku UC8.
Obrázek 2.4: Správce rolí
20
2.3.5
KAPITOLA 2. POŽADAVKY NA CMS
Administrátor
Uživatel s rolí administrátora smí dělat v systému prakticky vše. Má možnost přidávat ručně nové uživatele, měnit jim přihlašovací údaje a nebo odebírat stávající uživatele ze systému. Dále má možnost měnit nastavení celého portálu. Smí tedy měnit vzhled webu, jméno webu, měnit nastavení webu a smí také definovat, co mohou jednotlivé role v systému dělat. Balíček Správa uživatele odpovídá požadavku UC7.
Obrázek 2.5: Administrátor
2.4. DOMÉNOVÝ MODEL
2.4
21
Doménový model
Provázanost jednolivých entit v systému je znázorněna následujícím doménovým modelem.
Obrázek 2.6: Doménový model Balíček Uživatel obsahuje čtyři třídy odlišené atributem role, které dědí vlastnosti po obecné třídě Osoba. Třída Předseda a Zástupce/Asistent se váží na třídu Komunitní centrum, jelikož představují uživatele spravující celé komunitní centrum. Třídy Vedoucí a Člen se váží na třídu Družina/Kruh/Oddíl, která představuje dílčí skupinu komunitního centra. Balíček Organizace obsahuje dvě již zmíněné třídy. Třídu Komunitní centrum určenou atributem nazev a třídu Družina/Kruh/Oddíl, která je ve vztahu n:1 s třídou Komunitní centrum. Sama třída Družina/Kruh/Oddíl je reflexivně asociována, takže může vytvářet další úrovně hierarchie komunitního centra. Balíček Přídavný obsah popisuje provázanost tříd související s přídavným obsahem do stránek.
22
2.5
KAPITOLA 2. POŽADAVKY NA CMS
Pokrytí případů užití dostupnými moduly CMS
Po výčtu funkčních požadavků je třeba ukázat jejich úplné pokrytí. Ze zkušenosti s různými redakčními systémy budu hledat takové řešení, které je ralizováno přídavnými moduly. Ideálně tedy co funkční požadavek, to určitý přídavný modul. Funkční požadavky se dají rozdělit na standardní funkce v systému, nerealizované žádným přídavným modulem, a na požadavky realizované přídavnými moduly. Tabulka 2.1: Tabulka standardních funkcí systému Funkční požadavek Typ funkce UC1 standardní UC2 standardní UC3 standardní UC4 administrační UC5 administrační UC6 administrační UC7 administrační UC8 řízená rolí UC9 řízená rolí UC10 řízená rolí
Tabulka 2.2: Tabulka pokrytí požadavků dostupnými moduly Funkční požadavek Přídavný modul Pokrytí UC11 HTML ano UC12 Blog ano UC13 Blog ano UC14 Diskuzní fórum ano UC15 Diskuzní fórum ano UC16 Kalendář událostí ano UC17 Statistika ano UC18 Kontaktní formulář ano UC19 Sdílené soubory ano UC20 Sdílené soubory ano UC21 Galerie ano
2.6. SROVNÁNÍ TECHNOLOGIÍ PHP A ASP.NET
2.6
23
Srovnání technologií PHP a ASP.NET
Jako webovou technologii pro náš CMS jsem zvolil moderní technologii ASP.NET. Myslím si, že existuje již spousta CMS napsaných v PHP (Joomla [8], Drupal [3], CMS Made Simple [4], OpenPHPNuke [7], Guppy [12] a další), které si drží své čestné místo na poli redakčních systémů a o CMS pod ASP.NET není tolik slyšet. Dále ze zkušenosti při programování aplikací v PHP a ASP.NET mohu říci, že ASP.NET je pro mě daleko přijatelnější technologií. V následujících odstavcích se pokusím zdůvodnit proč.
2.6.1
Kód a jeho členění
ASP.NET přináší velmi zajímavý programovací model založený na serverových ovládacích prvcích. Tyto prvky jsou zapisovány deklarativně a samy určují, jak bude generován jejich výstup. Reagují na události a umožňují tedy událostmi řízené programování. Dále umožňují oddělení skriptu od HTML kódu. „Skript“ se tak stává spíše plnohodnotným objektově orientovaným programem, než-li skriptem v tradičním slova smyslu. To má velký vliv např. na udržovatelnost kódu, na podporu ve vývojových prostředích nebo na způsob řešení daného problému. PHP naproti tomu používá model „spaghetti code“, tedy míchání HTML kódu se serverovými vsuvkami. Hlavní výhodou tohoto přístupu je dokonalá kontrola nad generovaným výstupem, což může být v některých případech užitečné. Obecně je ale tento model považován spíše za problém, především kvůli obtížné čitelnosti a udržovatelnosti. Co se týče syntaxe samotné, také zde najdeme propastný rozdíl. PHP je skriptováním v pravém slova smyslu. Najdeme zde tedy přímočaré funkce pro řešení problémů, výstup je možno generovat pomocí jednoduchého příkazu echo atd. Syntaxi PHP a základní úkony se lze tedy naučit doslova za odpoledne. Do verze 5 byla navíc přidána solidní podpora OOP a vývojář má tedy na výběr. ASP.NET je naopak „opravdovým“ objektově orientovaným programováním. Dobré zvládnutí ASP.NET je tak otázkou výrazně delšího času, už jen proto, že je potřeba se nejdříve seznámit s .NET Frameworkem jako takovým.
2.6.2
Vybavení
Co se týče typických problémů řešených při vývoji webových aplikací, jsou ASP.NET i PHP podobně vybavené. Technologie se však většinou liší v přístupu. PHP se mi jeví jako naprosto účelovou technologií, jakýmsi „quick & dirty“ nástrojem. Je potřeba vyřešit nějaký problém? Tady je příslušná funkce. ASP.NET na mě působí daleko ucelenějším dojmem. Je potřeba vyřešit nějaký problém? Tady je odpovídající technologie. Pro datové zdroje zde nenajdeme pouze funkce pro připojení k Oracle a nějaké další funkce pro vykonání dotazu, ale máme zde pokročilé API jménem ADO.NET. Pro práci s XML zde nemáme jednoduchou knihovnu, která umí XML elegantně načíst a zpracovat, ale celý jmenný prostor System.Xml, který je plně integrovaný do .NET Frameworku jako celku. U webových služeb je to podobné. V PHP je rozšíření pro práci se SOAP, v ASP.NET je to hluboká integrace do .NET Frameworku. Technologie se prostě liší
24
KAPITOLA 2. POŽADAVKY NA CMS
svou filosofií. Co se týče konfigurace, tak není v PHP nijak systémově řešená. Snad jen několik konfiguračních direktiv v souboru php.ini. V ASP.NET je konfigurace velmi dobře vyřešena pomocí hierarchicky uspořádaných XML souborů. ASP.NET je také oproti PHP velmi snadno rozšiřitelné a s Visual Studiem asi nelze srovnávat žádné vývojové prostředí pro PHP. PHP má ale i své silné stránky. Především se jedná o otevřenou technologii (open source). Je tedy možné pozměnit funkčnost, snadno lze opravit nalezené chyby, atd. Především má PHP skvělou podporu různých platforem. Prakticky se dá říct, že ho lze rozběhnout úplně všude. Naopak vázanost ASP.NET na platformu Windows + IIS je jeho hlavní nevýhodou. Jednak je to platforma podléhající licenčním poplatkům a také není úplně jisté, že je platforma pro prostředí internetu dostatečně zabezpečená.
2.6.3
Výsledné zhodnocení
Myslím si, že ASP.NET za tu řadu let prokázalo, že se jedná o kvalitní technologii. Měla by dostat přednost s výjimkou několika případů, kdy bude PHP vhodnější. Např. aplikace musí běžet na více platformách, respektive jinde než na platformě Windows. Nebo aplikaci bude chtít vytvořit někdo, kdo není dostatečně seznámen s OOP a dává přednost jednoduchému jazyku PHP. Dalším rozhodujícím faktorem při výběru bude cena hostingu. Pro PHP jsou v současnosti hostingy o dost levnější a lze najít daleko více freehostingů než pro ASP.NET. Ačkoliv tedy PHP v celé řadě věcí za ASP.NET zaostává, stále může nabízet dvě, pro uživatele rozhodující, vlastnosti - platformovou nezávislost a jednoduchost. Myslím si, že PHP zůstane ještě dlouho oblíbené, ačkoliv celkově považuji ASP.NET za technologii vyspělejší.
2.7. POROVNÁNÍ CMS V ASP.NET
2.7 2.7.1
25
Porovnání CMS v ASP.NET Kritéria při volbě CMS
Je třeba najít takový CMS, který spolehlivě pokryje požadavky. V první řadě je třeba se zaměřit na správu uživatelů, jejich rolí a oprávnění v systému. Také by byla vhodná rozšiřitelnost systému přídavnými moduly z toho důvodu, že pokud by chyběla nějaká požadovaná funkce (např. diskuzní fórum), aby se dala tato funkce případně naimplementovat. Z toho důvodu je snaha se ubírat směrem k volně šířitelným projektům, které jsou podporovány komunitou, jejich zdrojové kódy jsou volně k dispozici a jejich rozšíření by nebylo v rozporu s žádnými licenčními ustanoveními.
2.7.2
ASP.NET
Základní komponentou je Microsoft .NET Framework, prostředí potřebné pro běh aplikací a nabízející jak spouštěcí rozhraní, tak potřebné knihovny. ASP.NET je součást .NET Frameworku pro tvorbu webových aplikací a služeb. Je nástupcem technologie ASP (Active Server Pages) a přímým konkurentem JSP (Java Server Pages). ASP.NET je založen na CLR (Common Language Runtime), který je sdílen všemi aplikacemi postavenými na .NET Frameworku. Programátoři tak mohou realizovat své projekty v jakémkoliv jazyce podporujícím CLR, např. Visual Basic.NET, JScript.NET, C#, Managed C++, ale i mutace Perlu, Pythonu a další. Aplikace založené na ASP.NET jsou také rychlejší, neboť jsou předkompilovány do jednoho či několika málo DLL souborů, na rozdíl od ryze skriptovacích jazyků, kde jsou stránky při každém přístupu znovu a znovu parsovány. Koncept ASP.NET WebForms ulehčuje programátorům přechod od programování klasických aplikací pro Windows do prostředí webu: stránky jsou poskládány z objektů, ovládacích prvků (Controls), které jsou protějškem ovládacích prvků ve Windows. Při tvorbě webových stránek je tedy možné používat ovládací prvky jako tlačítko (Button), nápis (Label) a další. Těmto prvkům lze přiřazovat určité vlastnosti, zachytávat na nich události, atd. Tak, jako se ovládací prvky pro Windows samy kreslí do formulářů na obrazovku, webové ovládací prvky produkují HTML kód, který tvoří část výsledné stránky poslané do klientova prohlížeče.
26
KAPITOLA 2. POŽADAVKY NA CMS
Obrázek 2.7: Funkční schéma ASP.NET
2.7.3
Průzkum volně šířitelných CMS pro .NET
Následuje přehled několika .NET CMS. Každý je stručně popsán, jsou vyzdviženy jeho klady a zápory a každý je na závěr zhodnocen jako vyhovující či nevyhovující. 2.7.3.1
DotNetNuke.com
DotNetNuke [5] je open source systém vhodný pro vytváření a nasazování webových projektů jako jsou například komerční webové stránky, korporátní intranety a extranety a online publikační systémy a portály. DotNetNuke je poskytován jako open source software sířený pod licenčním ujednáním typu BSD. Obecně tato licence davá právo získat software bez jakýchkoliv poplatků. Kromě toho dává tato licence uživatelům právo nakládat s tímto software libovolně a to jak v případě komerčního tak nekomerčního využití, a to s jedinou podmínkou, aby uživatelé napomáhali rozvoji komunity kolem projektu DotNetNuke. DotNetNuke je postaven na platformě Microsoft ASP.NET (VB.NET) a lze jej velmi snadno instalovat a spravovat. Díký rostoucí komunitě (dnes již přes 340.000 registrovaných uživatelů) a skupině vývojářů, kteří jsou základní vývojářskou skupinou DotNetNuke, je podpora pro DotNetNuke prakticky okamžitě dostupná. Instalace K instalaci je zapotřebí alespoň Visual Studio 2003 s .NET Frameworkem 2.0 a AJAX. Jako databáze je defaultně použitá MS SQL Express. Projekt stačí jen zkompilovat ve Visual Studiu, spustit a wizard už pak člověka provede zbytkem instalace. Klady DotNetNuke má oproti ostatním CMS velice nadstandardní design a rozšířené možnosti
2.7. POROVNÁNÍ CMS V ASP.NET
27
úpravy vzhledu webu podle uživatelových potřeb. Při spravování stránek a jejich obsahu nabízí velký komfort v podobě přehledných odkazů a WYSIWYG editoru. Dalším velkým kladem je podpora rozsáhlé komunity, která se stará o zlepšování produktu a rozšiřování o další funkce. Dále umožňuje v jedné instanci vytvořit více portálů, administrační menu obsahuje spoustu zajímavých nastavení jako je např. definování „superusera“, který může nastavovat samotné portály, databáze, atd. - nastavení, která by se jinak musela řešit přes konzole či jiné nástroje. Samotná instalace je velmi rychlá a intuitivní díky vestavěnému průvodci. A nakonec velkou výhodou je jeho rozšiřitelnost o přídavné moduly. Zápory Při instalaci je nutné mít Visual Studio či jiný kompilátor pro .NET. Jeho „free“ verze je osekána o uživatelská práva a role. Poplatek za professional verzi je přes 1000 dolarů ročně, což činí z jinak výborného DotNetNuke komerční software. Hodnocení Kdyby DotNetNuke neměl professional verzi s rozšířeným nastavením uživatelských rolí a měl je poskytnuté už ve volně šířitelné verzi, byl by tou nejlepší volbou nástroje pro vytváření a spravování webových stránek a portálů. Jeho komerční část se tak stává jeho největší slabinou. I přes všechny možné přídavné moduly (od blogů, přes wiki, fóra, galerie až po předpovědi počasí) s ním není možné pracovat na našem projektu. 2.7.3.2
Umbraco CMS
Umbraco CMS [14] je publikační systém pro správu obsahu webových stránek. Je vhodným nástrojem při vytváření a úpravě webových stránek, portálů, firemních sítí i publikačních serverů. Tento redakční systém umožňuje snadné a rychlé zařazení stanoveného textu do vybrané webové stránky včetně multimediálních prvků. K tomu všemu není nutné mít znalosti HTML ani dalších internetových technologií. Redakční a publikační systém Umbraco CMS je zaměřen na uživatelskou přívětivost při každodenním použití. Pomocí vestavěného WYSIWYG editoru lze vkládat obsah webové stránky přímo do prezentace i bez znalosti jazyka HTML. Redakční systém Umbraco CMS se umí postarat také o optimalizaci stránek pro vyhledávače. Instalace K rozběhnutí aplikace je potřeba alespoň .NET Framework 2.0, AJAX a nějaký webový server. Jako web server jsem zvolil open source projekt - UltiDev Cassini 2.0 [13]. Stáhne se instalátor, nainstaluje se do systému a spustí se jeho webové rozhraní. Přes něj je možné přímo do web serveru natáhnout celý projekt s Umbraco CMS. Až se tak stane, spustí se wizard Umraco CMS a provede nás krok za krokem úvodním nastavením systému včetně možnosti ihned dotáhnout nějaké přídavky. Klady Na naučení a pochopení způsobu, se kterým se s Umbraco CMS pracuje, je tento systém velmi jednoduchý. Umbraco CMS je čistě open source projekt a je podporován rozsáhlou komunitou a jeho dokumentace jsou často ve formě tutoriálových videí. Na spuštění není třeba žádný kompilátor, není tedy nutnost vlastnit jakýkoliv vývojový nástroj (Visual Studio).
28
KAPITOLA 2. POŽADAVKY NA CMS
Obsahuje hodně možností při nastavování uživatelských práv. Jeho instalace je velmi rychlá a intuitivní opět pomocí vestavěného průvodce. A nakonec opět nechybí možnost rozšiřit systém o přídavné moduly. Zápory Jediným a kritickým nedostatkem, na který jsem při seznamování se s Umraco CMS přišel, je nemožnost přiřadit jednomu uživateli více jak jednu roli v systému. Hodnocení Na první pohled je Umbraco CMS velice výkonný a schopný CMS nástroj. Na druhou stranu co se týče uživatelských omezení a správcování, nenabízí kýžené funkce. Z toho důvodu ho nemůžeme využít na náš projekt. 2.7.3.3
mojoPortal
MojoPortal [2] je redakční a publikační nástroj pro vytváření a správu webových stránek. V základní verzi obsahuje spoustu modulů a funkcí, které lze od kvalitně vyvíjeného CMS, očekávat. Mezi základní moduly patří např. blog, diskuzní fórum, kalendář událostí a galerie multimédií. Tento systém podporuje až pět různých databází, skinovatelný vzhled webu a další zajímavé funkce. Narozdíl od jiných CMS obsahuje široké možnosti v nastavení uživatelských rolí a oprávnění. Instalace K rozběhnutí aplikace je potřeba alespoň .NET Framework 2.0, AJAX a nějaký webový server. Jako web server jsem zvolil open source projekt - UltiDev Cassini 2.0. Stáhne se instalátor, nainstaluje se do systému a spustí se jeho webové rozhraní. Přes něj je možné přímo do web serveru natáhnout celý projekt s mojoPortalem. Až se tak stane, spustí se jeho defaultní stránka, kde se provede nezbytná instalace a inicializace. Poté je možné se pomocí odkazu přesunout na hlavní stránku webu. Klady Velice uživatelsky přívětivý a jednoduchý systém, který má velice rozšířené možností při nastavování uživatelských práv. Obsahuje již spoustu modulů v základní verzi, takže po instalaci není nutné cokoliv dalšího stahovat. K samotné instalaci, která je mimochodem opravdu rychlá, není vyžadován jakýkoliv kompilátor či vývojový nástroj (Visual Studio). MojoPortal je také čistě open source projekt s podporou rozsáhlé komunity. Každý měsíc vychází nové verze s novými funkcemi či odstraněnými chybami. Jako každý open source projekt je rozšiřitelný o přídavné moduly a je nabízen ve 4 verzích - pro různé typy databází. Zápory Systém by mohl alespoň jednoduchými hláškami potvrzovat uživatelovu činnost (stránka uložena apod.) Hodnocení MojoPortal je velice kvalitní, komplexní a jednoduchý CMS nástroj. Umožňuje velice rozsáhlou správu uživatelských rolí a jejich oprávnění v systému. Základní balíček obsahuje spoustu
2.7. POROVNÁNÍ CMS V ASP.NET
29
features, které jsou snadno implementovatelné do vlastního obsahu webu. Na náš projekt se tento CMS nástroj hodí nejvíce.
2.7.4
Výběr správného CMS
Z průzkumu a se zkušenostmi se třemi různými CMS pro technologii .NET jsem zvolil jako nejvhodnější projekt mojoPortal. Splňuje všechny naše požadavky, má přívětivý vzhled, jednoduchou obsluhu a hlavně rozsáhlou správu uživatelů, o kterou nám v první řadě jde nejvíce.
30
KAPITOLA 2. POŽADAVKY NA CMS
Kapitola 3
mojoPortal 3.1
Popis
MojoPortal je nástroj pro správu obsahů (content management system - CMS). Je napsán v jazyce C# a běží pod ASP.NET na operačních systémech Windows nebo pod emulátorem na Linuxu nebo Macu. I když je CMS spjat s produkty Windows, byl vyvíjen pod open source licencí - the General Public Licence (GPL). Takže pro ty, jež chtějí využít např. MySQL databázi, projekt mojoPortal vydal balík mojoPortal Data Library pro MySQL pod licensí GPL, který používá MySQL Connector pro .NET. MojoPortal obsahuje v základu spoustu modulů, funkcí a nastavení, které lze, od mladého, ale kvalitně vyvíjeného CMS, očekávat. Ve zkratce se dají vyjmenovat např. blog, diskuzní fórum, kalendář událostí, galerie multimédií, podpora až pěti různých databází, skinovatelný vzhled a další a další funkce. Všechny důležité funkce jsou přístupné přes administrátorské menu, ve kterém jsou všechny důležité odkazy. Velkou roli pak v systému hrají nejrůznější role. Na samotném vrcholu hierarchie stojí administrátoři, kteří smí a vidí naprosto vše. Od nich se pak odvíjejí další role. V systému tedy můžou být správci obsahů, správci rolí, editoři stránek a další role, které se dají ušít na míru. Tyto role se zejména využijí při spravování obsahu a vytváření stránek. Celkově tento proces je velmi jenoduchý. Vždy se nejprve musí vytvořit prázdná stránka na kterou se po sléze umístí libovolný obsah do jednoho ze tří umístění na vytvořené stránce. Pak si stačí vytvořenou stránku s obsahem zobrazit a samotný obsah spravovat v rámci stránky.
31
32
3.2
KAPITOLA 3. MOJOPORTAL
Dostupné moduly
MojoPortal obsahuje přibližně 20 různých přídavných modulů. Některé z nich jsou pouze informativního charakteru (propojeni s Twitterem, zasílání mailů s novinkami - newsletter), další pak jsou plnohodnotné obsahy na stránky, kde většina těchto modulů pracuje přímo s databází (blog, fórum, anketa, kalendář událostí). Pro účely komunitního centra si však vystačíme s polovinou nabízených modulů.
3.2.1
HTML
Modul HTML obsahuje WYSIWYG (What You See Is What You Get) editor, ve kterém se pohodlně edituje obsah stránky ať už v textové či v obrázkové podobě. Editor obsahuje všechny důležité nástroje pro formátování textu, tisk textu, vkládání multimédií do textu, odkazů, speciálních znaků, tabulek a dokonce umožňuje i přepnout zobrazení na HTML kód. V nastavení tohoto modulu jsou pak spíše možnosti úprav vzhledu samotného editoru. Jako taková zajímavost je pak nastavení slideshow prvků vytvořeného obsahu pomocí technologie Flash. Tento modul pokrývá požadavky na základní část webu a tím je vytváření textových stránek s odkazy a multimédii.
3.2.2
Blog
Modul blogu obsahuje všechny standardní funkce. Obsahuje kalendář, pomocí kterého je možné filtrovat články na úroveň dnů či měsíců, dále jsou články děleny do kategorií, pro starší články tu existuje archív a nakonec je tu statistika s celkovým počtem článků a komentářů. Psaní článků je opět v intuitivním WYSIWYG editoru. Autor článku pak může rozhodnout, zda povolit komentáře či hodnocení ke svým článkům. Nastavení tohoho modulu skýtá velkou spoustu možností, které obyčejný uživatel nikdy nevyužije. Mezi ty užitečnější se dá přiřadit formátování náhledu článku, počet zobrazených článků na stránku, volit viditelnost kalendáře či kategorií a možnost zasílání infomailu autorovi v případě, že někdo vloží komentář k článku. Vzhledem k možnosti filtrovat články pomocí kalendáře či kategorií, poslouží tento modul jako zápisník komunitního centra.
3.2. DOSTUPNÉ MODULY
3.2.3
33
Fórum
Modul fóra se nijak nevymyká obvyklému konceptu diskuzního fóra. V nejvyšší úrovni se vytvářejí kategorie a v jednotlivých kategoriích pak o úroveň níž samotné diskuze, do kterých uživatelé přidávají své příspěvky. Psaní příspěvků do fóra je opět přes WYSIWYG editor. Ověřeným uživatelům může být adminy schváleno přidání podpisu do svých příspěvků a uživatelé si mohou na zvláštní profilové stránce měnit své údaje a avatary. Dále fórum umožňuje zasílání infomailů, pokud do diskuze přibyl nový příspěvěk. V nastavení modulu pak najdeme pouze možnost zapnout anti-spamovou ochranu a zapnout možnosti RSS kanálů pro kategorie nebo diskuze. Tento modul tedy poslouží jako diskuzní fórum komunitního centra.
3.2.4
Kalendář událostí
Modul kalendáře událostí vloží do stránky kalendář nastavený na aktuální měsíc s barevně rozlišenými víkendy, aktuálním dnem a dny zasahujícími do předchozího a následujícího měsíce. Mezi měsíci je samozřejmě možnost listovat. Každý den má svou vlastní buňku, kde je možné vidět naplánované akce již na první pohled. Na název akce je pak možné kliknout a přesunout se tak na stránku s podrobnostmi akce. Akcí je na stránce tolik, kolik jich je na vybraný den naplánováno. Při zakládání nové akce se používá opět WYSIWYG editor, kde je možné napsat nějaký text či vložit obrázky k akci. Dále se vyplňuje název akce, datum, časové rozmězí a místo konání. Nastavení tohoto modulu obsahuje takřka pouze nastavení mapy s lokací akce. Mapy jsou ale aktivní pouze po nastavení administrátory globálně v systému. Tento modul pokryje požadavek kalendáře akcí komunitního centra.
3.2.5
Sdílené soubory
Modul sdílené soubory obsahuje zjednodušený file manager, do kterého uživatelé nahrávají své soubory. Soubory je možné nahrávat do vytvořených složek. Nahraný soubor pak lze přejmenovat, smazat, změnit jeho umístění ve stromové struktuře file managera či vložit místo něj soubor jiný. Při kliknutí na informační odkaz se uživatel přesune na stránku s informacemi o souboru. Vidí zde např. datum a čas nahrání souboru, kdo soubor nahrál, jakou má velikost, umístění ve file manageru a další. Velkou výhodou tohoto modulu je hromadné nahrávání souborů. V nastavení modulu pak je pouze možnost uchovávání historie souborů, v případě, že uživatel nahraje více souborů stejného názvu. Tento modul nám svou funkčností poslouží pro upload souborů v komunitním centru.
3.2.6
Statistika
Modul statistiky vloží na stránku informace o uživatelích v rámci celého webu. Zobrazuje statistiku nově registrovaných uživatelů, online přihlášených uživatelů i návštěvníků a pokud je uživatel přihlášený, vidí i seznam ostatních přihlášených uživatelů. V rámci modulu je možnost si zapnout i graf, ve kterém je vidět návštěvnost v několikaletém měřítku. Tato možnost a možnost ovlivnit, jaké statistiky se na stránce zobrazí, se nastavují v nastavení modulu. Tento modul se tedy hodí pro sledování návštěvnosti stránek komunitního centra.
34
3.2.7
KAPITOLA 3. MOJOPORTAL
Kontaktní formulář
Modul kontaktní formulář umožňuje adminovi poslat zprávu prostřednictvím webového formuláře. Pokud je uživatel přihlášený, je automaticky ve formuláři vyplněn jeho mail a jméno. Uživatel pak vypíše předmět a zprávu. Aby bylo možné předcházet spamům, je odeslání chráněno CAPTCHA kódem, který se musí nejprve vyplnit. Tato ochrana se zapíná v nastavení modulu. Nastavení pak dále umožňuje upravit velikost editoru či nechat si poslat se zprávou i IP uživatele. Tento modul poslouží jako dotazník k vedení komunitního centra.
3.2.8
Galerie
Modul galerie umožňuje přidávat do stránky multimédia. Nahrané soubory jsou pak ve formě náhledů (thumbnailů) zobrazeny na stránce a po rozkliknutí je spuštěna prezentace, kde je možné přecházet mezi nahranými soubory v jejich plné velikosti. V nastavení modulu lze i nastavit, aby se nahrané soubory sami prezentovaly pomocí Silverlight prezentace. Soubory do galerie lze nahrávat po jednom či hromadně a každému souboru lze přiřadit popis. V nastavení modulu pak můžeme měnit velikost náhledů nebo si více přizpůsobit Silverlight prezentaci. Tento modul přesně splňuje požadavky na galerii fotografií a videí z různých akcí komunitního centra.
3.3. ASP.NET WEBHOSTING
3.3 3.3.1
35
ASP.NET Webhosting Kritéria při výběru hostingu
Při výběru správného hostingu nás zajímá verze .NET Frameworku, dále pak podporovaná databáze a samozřejmě cena. MojoPortal vyžaduje ASP.NET 3.5 SP1 nebo vyšší a vhodnou databázi. Upřednostňujeme Microsoft SQL Server 2005/2008, ale mojoPortal umožňuje pracovat s 5 různými databázemi - MSSQL/SQLExpress, MySQL, PostgreSQL, Firebird SQL, a SQLite. Dalším výběrovým kritériem by mohla být velikost nabízeného prostoru. MojoPortal po rozbalení instalačního balíku zabírá přes 50MB. Pokud bychom chtěli využít některý freehosting, měl by nabízet dostatečný prostor.
3.3.2
Průzkum dostupných hostingů
Provedl jsem průzkum českých ASP.NET hostingů, který jsem dále zúžil na šest vybraných hostingů. Hlavním rozhodovacím faktem pro mě byla podpora MS SQL serveru a velikost nabízeného prostoru pro web. Vytvořil jsem pro porovnání dvě tabulky, kde první tabulka obsahuje porovnání jednotlivých hostingů se zaměřením na cenu a prostor. Druhá tabulka obsahuje stručný popis jednotlivých variant vybraných hostingů. Úmyslně jsem se nesnažil hledat zahraniční hostingy. Pokud by nastal případ, že by komunitní centrum mělo potíže s vybraným hostingem, který by nebyl tuzemský, mohlo by mít komplikace při domluvě a řešení problému. Takže tedy hlavně z důvodu zákaznické podpory jsem se zaměřil na české hostingy. Tabulka 3.1: Tabulka hostingů se základními Provozovatel Varianta Prostor Aspone Developer 1000MB Dotnethosting.cz Basic 400MB Intellisoft Elegant 450MB Mujhost.cz Osobni L 500MB Quantasoft Mini 2000MB Webglobalt ASP.NET 1000MB
informacemi Cena 150 Kč 99 Kč 300 Kč 150 Kč 50 Kč 150 Kč
36
KAPITOLA 3. MOJOPORTAL
Tabulka 3.2: Tabulka hostingů s popisem variant Provozovatel Varianta Popis Aspone Developer Podpora WINDOWS SERVER 2008, MS SQL 2008, ASP.NET 3.5, IIS 7, AJAX,... Přístup přes FTP, neomezený počet emailů, neomezený přenos dat, neomezený počet subdomén, doménové aliasy, pravidelné zálohování, 24/7 technická podpora a mnoho dalšího. Dotnethosting.cz Basic vhodné pro dynamické prezentace, obsahuje skriptování ASP a ASP.NET, databázi MS SQL. Intellisoft Elegant varianta vhodná pro dynamickou prezentaci, ASP/ASP.NET, provoz databáze MS Access nebo MS SQL Server Mujhost.cz Osobni L Tarif pro pokročilé s ASP/PHP, s možností .NET, databázemi včetně možnosti MS SQL + COM zdarma Quantasoft Mini základní varianta s MS SQL databází o velikosti 100MB, se službou zálohování dat, podporou .NET Framework 3.5 / ASP.NET 3.5 a emailovým prostorem Webglobalt ASP.NET provoz vlastní domény II.řádu (vašedoména.cz, .com, .net, .org ...), neomezený počet e-mailových schránek, neomezený přenos dat, podpora ASP.NET 3.5, databáze MSSQL 2005, neomezený FTP přístup
3.3.3
Výběr vyhovujícího webhostingu
Jelikož většina freehostingů má omezený prostor pro stránky (většinou do 50MB), nedá se tedy uvažovat o nasazení na freehosting. Jako prozatimní řešení je nasazení mojoPortalu na localhost. Pro testovací účely jsem si však bez problémů vystačil se systémem nainstalovaným
3.4. CASE STUDY
37
na localhostu, kde jsem využil školní license MSDNAA a nainstaloval CMS s podporou MS SQL Serveru 2008. Pokud bych však měl volit mezi placenými webhostingy, určitě bych zvolil Quantasoft kvůli jeho poměru cena/služby. Za malý peníz nabízí velký prostor pro data.
3.4
Case Study
Mojí snahou v této sekci bude předvést, jak by mohlo vypadat nastavení webu konkrétního komunitního centra. Jako vzor si beru opět skautský oddíl, který má poměrně širokou strukturu, která je znázorněná v kapitole 1.2 Hierarchie komunitních center. Může mít n dílčích oddílů, kde každý oddíl má pod sebou nějaké své stránky, jako je kronika oddílu, galerie, informace o oddílu či kalendář akcí. Na hlavní stránce pak mohou být sekce jako diskuzní fórum, kontakty na skautský oddíl, informace o skautském oddílu apod. Celý tento příklad je možné zobrazit online na stránkách http://komunitnicentra.aspone.cz/. Ovšem z důvodu malé kapacity ASPONE.CZ freehostingu, byly z aplikace odstraněny téměř všechny skiny. Z důvodu nedostatku místa je tedy možné, že se při práci s mojoPortalem vyskytnou chybové hlášky. Tyto hlášky jsou pouze informativního charakteru a nijak neovlivňují chod aplikace. Pouze může nastat případ, že nepůjdou např. nahrát nové obrázky nebo vytvořit nové stránky. Do aplikace je možné se přihlásit jako administrátor pod přihlašovacím jménem
[email protected] s heslem admin nebo jako registrovaný uživatel
[email protected] s heslem honza. Následuje ukázka několika stránek z výše zmíněné adresy. Postupy na vytváření stránek a jejich nastavení jsou detailněji popsány v uživatelské příručce.
3.4.1
Skauting
Základem webu jsou klasické textové stránky s případnými obrázky. Takže např. stránka s informacemi o skautském oddílu a skautu jako takovém. Řekněme, že stránka Skauting bude obsahovat dvě podstránky Historie skautingu a Co je skauting?. Jelikož stránka Skauting má pouze funkci rozcestníku, můžeme na stránku umístit mapu podstránek odkazy na jednotlivé podstránky. Není nutné do této stránky vkládat jakýkoliv obsah.
Obrázek 3.1: Rozcestník na podstránky
38
3.4.2
KAPITOLA 3. MOJOPORTAL
Co je skauting?
Do jednotlivých podstránek už ale obsah musí být přidán. V případě klasického textu a případných obrázků pouslouží obsah typu HTML na stránce Co je skauting?.
Obrázek 3.2: Stránka Co je skauting?
3.4.3
Oddíly
Hlavní část stránky Oddíly může obsahovat pouze rozcestník na dílčí oddíly a jejich podstránky a v pravé části mohou být informace o jednotlivých odílech napsané v modulu HTML.
Obrázek 3.3: Stránka Oddíly
3.4. CASE STUDY
3.4.4
39
Vlčata
Stránka dílčího oddílu, např. Vlčata, může v sobě mít zase rozcestník na své podstránky a také v ní může být umístěn HTML obsah s informacemi o konkrétním oddíle.
Obrázek 3.4: Stránka oddílu Vlčata
3.4.5
Členové oddílu Vlčata
Podstránka oddílu Vlčat se členy oddílu může mít např. obrázkovou podobu ve formě tabulky s případnými informacemi o členech. Na její realizaci postačí modul HTML.
Obrázek 3.5: Stránka se členy oddílu Vlčata
40
3.4.6
KAPITOLA 3. MOJOPORTAL
Galerie oddílu Vlčata
Další podstránkou oddílu Vlčata je Galerie oddílu. Je přehlednější, pokud tato stránka má opět několik podstránek, které mají obsah Galerie multimédií. Tyto podstránky pak mohou být nazvány podle příslušné akce a obsahují nahraná mutimédia. U modulu Galerie je pak možné nastavit např. Silverlight prezentaci prvků.
Obrázek 3.6: Stránka s galerií oddílu Vlčata
3.4.7
Kronika oddílu Vlčata
Oddíl Vlčat si také vede svou vlastní kroniku, ve které vedou zápisy z různých akcí či schůzek. Do stránky Kronika oddílu je umístěn obsah Blog a do tohoto blogu se pak píší jednotlivé příspěvky. Stránka s obsahem obsahuje také kalendář pro filtrování období, statistiky příspěvků, kategorie příspěvků a ikony odkazů pro přidání příspěvků do vlastních stránek.
Obrázek 3.7: Stránka s kronikou oddílu Vlčata
3.4. CASE STUDY
3.4.8
41
Kalendář oddílu Vlčata
A jako poslední věc, která by mohla být specifická pro každý oddíl, je kalendář akcí daného oddílu. Na stránce Kalendář oddílu je umístěn obsah Kalendář událostí a jsou zde vypsané nejrůznější akce od výletů až po informativní schůzky.
Obrázek 3.8: Stránka s kalendářem oddílu Vlčata
3.4.9
Diskuzní fórum
V rámci celého komunitního centra - skautského oddílu - je pak umístěná stránka Diskuzní fórum s obsahem Fórum pro diskuzi mezi dílčími oddíly nebo pro diskuzi veřejnosti, jejich dotazů na komunitní centrum apod. Jedno z možných nastavení je takové, že diskuze mající prefix s názvem komunitního centra, budou veřejnosti nepřípustné a nepřihlášení uživatelé tak mohou přispívat pouze do veřejných diskuzí.
Obrázek 3.9: Stránka s diskuzním fórem
42
3.4.10
KAPITOLA 3. MOJOPORTAL
Stáhněte si
Obdobnou funkci, jako diskuzní fórum, může mít stránka Stáhněte si. Ta je realizována modulem Sdílené soubory a přihlášení uživatelé do ní mohou nahrávat své vlastní soubory, které jsou veřejnosti dostupné.
Obrázek 3.10: Stránka se stažitelnými soubory
3.4.11
Soukromé
Stránka Soukromé je ale veřejnosti nepřístupná a vidět ji mohou pouze přihlášení uživatelé. Tato stránka má tedy nastavené oprávnění pro zobrazení pouze přihlášeným uživatelům.
Obrázek 3.11: Stránka se stažitelnými soubory pro přihlášené uživatele
3.4. CASE STUDY
3.4.12
43
Statistika
Na stránce Statistika je možné zobrazit uživatelům přehled o tom, kdo další je s nimi online, kolik uživatelů je v systému zaregistrovaných apod. Stránka je realizována pouze pomocí modulu Statistika.
Obrázek 3.12: Stránka se statistikou
3.4.13
Kontakty
Nakonec by na webu měla být stránka Kontaky s kontakty na komunitní centrum a kontaktním formulářem. V hlavní části může být umístěn formulář pro odeslání emailu komunitnímu centru a v pravém sloupci vypsané kontakty na jednotlivé zaměstnance komunitního centra.
Obrázek 3.13: Stránka s kontakty a kontaktním formulářem
44
3.5
KAPITOLA 3. MOJOPORTAL
Lokalizace
Při realizaci modelového příkladu jsem si uvědomil, že angličtina může být pro určitý okruh uživatelů velkou překážkou u vytváření vlastního obsahu a publikace stránek na webu. Z toho důvodu jsem se jednoznačně rozhodl pro překlad aplikace. Důležité dokumentace, jako instalační příručka, používání modulů a mojoPortalu, nejsou v češtině, takže jsem udělal jejich český překlad s trochou vlastních úprav a zjednodušení. Používání aplikace a jejích modulů jsem sepsal ve formě uživatelské příručky, která je součástí přílohy. Dále následuje instalační příručka, ve které je popsán hlavní průchod instalací a nejčastější chyby. Instalační příručka je také součástí přílohy. Česká lokalizace v originálním balíku je velmi stručná. MojoPortal obsahuje spoustu textu k přeložení a s každou novou verzí mojoPortalu texty přibývají. Vzhledem k tomu, že jsem se soustředil jen na důležitá nastavení, která obyčejný uživatel pravděpodobně využije, přeložil jsem do češtiny pouze texty s nimi úzce spojené. V hlavní aplikaci to jsou tedy např. nastavení celého webu, správa stránek a obsahů, správa uživatelů, rolí a oprávnění. Dále jsou přeloženy veškeré texty v přídavných modulech jako je HTML, blog, forum, kalendář událostí a sdílené soubory. U těchto modulů zase není taková pravděpodobnost, že by do nich přibývaly nové texty s každou novou verzí mojoPortalu. Prakticky je tedy přeloženo vše, co lze najít v uživatelské příručce. Tato moje práce na lokalizaci do češtiny byla předána dne 19.05.2010 autorovi mojoPortalu - Joe Audetteovi. Jeho reakce na zaslanou lokalizaci byla kladná. V tuto chvíli tedy ještě stále není přeložený kompletní balík textů projektu mojoPortal a všechny dostupné dokumentace, je však přeloženo minimálně dvakrát tolik textu, než bylo v původním balíku.
3.6
Příručky
Jak jsem zmínil v předchozí kapitole, vytvořil jsem dvě české příručky, které by měli začínajícím uživatelům pomoci v začátcích používání aplikace. Obě příručky jsou součástí přílohy na přiloženém CD. Jelikož je mojoPortál stále vyvíjen a každým měsícem vznikají nové verze, nemohu zaručit aktuálnost příruček na CD. Příručky jsou vytvořené pro verzi mojoPortalu 2.3.3.0.
3.6.1
Instalační příručka
Instalační příručka obsahuje postup instalace a nastavení mojoPortalu. Předpokládá se, že prvotní nastavení aplikace bude provádět zkušený uživatel. V této přiručce je uvedeno, které soubory jsou nutné editovat a co v těchto souborech změnit. Dále jsou uvedené i nejčastější chyby při instalaci. Instalační příručka obsahuje na začátku jednoduchý několikabodový postup, který zkušenějšímu
3.6. PŘÍRUČKY
45
uživateli úplně postačí k nastavení aplikace a propojení aplikace s databází. Jednotlivé body jsou pak dále trochu víc rozepsány. Je uveden příklad, jak by měl vypadat connection string do databáze a je i uveden příklad jak nastavit češtinu v aplikaci. Po těchto základních nastaveních následují dvě nejčastější chyby při nastavení aplikace. První nejčastější chybou mohou být nenastavená práva pro zápis do složky Data, ve které se vytvářejí nové stránky a uživatelé do ní nahrávají vlastní soubory. Druhou nejčastější chybou je nastavení aplikace na správnou úroveň zabezpečení. Výchozí nastavení zabezpeční mojoPortalu je na úplné důvěřování (full trust). Avšak některé servery mají úplné důvěřování zakázáno a je nutné mojoPortal nastavit na střední důveřování (medium trust). V úplném závěru instalační příručky je řečeno, jak spustit inicializaci mojoPortalu a spuštění samotného webu.
3.6.2
Uživatelská příručka
Uživatelská příručka obsahuje všechny důležité postupy v nastavování webu. Od popisu úvodní obrazovky po nastavení oprávnění ke stránkám. Obsahuje celkem šest kapitol, které pomohou začínajícím uživatelům v pochopení principu vytváření stránek, obsahu atd. Vše je vysvětleno na obrázcích s popisem a se zvýrazněním důležitých nastavení. První kapitola příručky je čistě o seznámení s prostředím. Rozdělení hlavní části obrazovky, přihlášení do aplikace, registrace a zaslání zapomenutého hesla. Druhá kapitola je orientována na administrátorské menu. Je ukázáno, jak se úvodní obrazovka změní po přihlášení, jsou popsány administrátorské odkazy a jsou rozebrány nejdůležitější části administrátorského menu. Třetí kapitola se zabývá vytvořením nových stránek. Co vše při vytváření stránek vyplnit a na co si dát pozor. Čtvrtá kapitola je o přidávání obsahu do stránek. Je ukázáno, jak vložit obsah do stránky a jaké jsou typy přídavných obsahů. Je také ukázáno, jaké nastavení mají jednotlivé moduly obsahů. Pátá kapitola obsahuje popis několika způsobů, jak zobrazit vytvořené stránky. Šestá kapitola se zabývá detailnějším nastavením stránek, oprávněním ke stránkám a modulům obsahů.
46
3.7
KAPITOLA 3. MOJOPORTAL
Uživatelské testy
Testování probíhalo od půlky ledna do půlky února 2010. Bylo testováno s celkem osmi uživateli různého věku, různého dosaženého vzdělání a s různými zkušenostmi s prací na počítači. MojoPortal byl pro uživatele připravený na localhostu a uživatelé dostali jednu ze dvou variant testovacího scénaře. Zkušenější uživatelé dostali variantu s prvotním nastavením aplikace. Ostaní pak testovali v již připravené a nastavené aplikaci. Nikdo z testovaných uživatelů neměl žádné předchozí zkušenosti s používáním mojoPortalu.
3.7.1
Profil uživatelů
Bylo testováno celkem 8 uživatelů. Z nichž 2 dívky a 6 chlapců. Obě dívky, ve věku 20 a 21 studují ekonomickou školu, jedna se zaměřením na hotelnictví a druhá se zaměřením na obchod a marketing. Obě dívky mají pouze základní zkušenosti s používáním počítače kancelářský software, internet. Obě dívky nemají žádné předchozí zkušennosti s CMS. Zbylí chlapci jsou ve věku 22 až 24. První studuje ekonomickou školu se zaměřením na podnikovou ekonomiku, nemá předchozí zkušenosti s CMS a má mírně pokročilé zkušenosti s používáním počítače - základní administrace OS. Druhý studuje též ekonomickou školu se zaměřením na informační systémy. Dříve se již setkal s některými CMS napsanými v PHP. Jeho zkušenosti s počítačem jsou pokročilé - zná vyšší programovací jazyky a webové technologie. Třetí je studentem elektrotechnické fakulty v oboru výpočetní technika, nikdy se nesetkal s CMS a má taktéž pokročilé zkušenosti s počítačem. Čtvrtý a pátý jsou studenty fakulty aplikovaných věd, jeden se zaměřením na systémové programování a druhý na kybernetiku. Oba mají pokročilé zkušenosti s počítačem a znalost některch CMS v PHP. Poslední, šestý chlapec vystudoval navazující program na matematicko-fyzikální fakultě, obor informatika a jeho zkušenosti s počítačem jsou pokročilé bez předchozích znalostí CMS. Podrobnější informace o testovaných uživatelích jsou v dotaznících, které jsou součástí přílohy.
3.7.2
Úlohy testu
Jak bylo řečeno, testovalo se se dvěma testovacími scénáři. Složitější varianta testovacího scénáře obsahuje počáteční nastavení aplikace. Uživatel musel nastavit připojení do databáze MS SQL pomocí connection stringu v souboru web.config a dále nastavit český jazyk v aplikaci v tomtéž souboru. Dále měl za úkol spustit setup aplikace, ve kterém se provedla automaticky inicializace tabulek v databázi a resetovala se všechna nastavení v aplikaci. Tento uživatel pak pokračoval základní variantou, kterou dostali ostatní uživatelé hned od začátku. Základní varianta měla za úkol pojmout co nejšírší a zároveň nejběžněji používanou oblast při práci s aplikací. Uživatel si tedy vyzkoušel přihlášení do aplikace, změnu svých údajů, vytvoření nového uživatele, přidávání stránek, přidávání obsahu - 5 základních modulů (HTML, blog, fórum, sdílené soubory a galerii), dále si vyzkoušel základní nastavení stránek, změnu vzhledu a vytvořil nové role, které pak aplikoval v nastavení stránek a obsahů. Při práci s moduly si uživatel vyzkoušel psaní a přidávání obrázků do jednoduché HTML stránky, založil nové příspěvky do blogu, vytvořil vlastní diskuzní fóra, nahrál soubory na web a vyzk-
3.7. UŽIVATELSKÉ TESTY
47
oušel si nahrávání fotek do galerie. Na závěr pak uživatel měl za úkol po sobě vše vytvořené smazat. Tyto testovací scénáře jsou přiloženy jako příloha.
3.7.3
Výsledky testování
Testovacími scénáři úspěšně prošli všichni uživatelé. Něktěří trochu pomaleji než ostatní, ale nakonec vždy úspěšně dorazili k cíli. Většina testovaných uživatelů měla pokročilejší zkušennosti s užíváním počítače. To podle mého názoru ale vůbec není rozhodujícím kritériem, protože v jednom případě uživatel se základní znalostí počítače byl s testováním hotov mnohem dříve, než někteří z jeho zkušennějších kolegů. V konečném hodnocení své práce s aplikací se pak uživatelé dosti lišili ve svých názorech. Dá se říct, že všem uživatelům trvalo delší dobu, než si na obsluhu aplikace zvykli. Naštěstí se ale nakonec všichni shodli, že po delší době používání aplikace už byla obsluha snažší. Jeden uživatel si dokonce stěžoval na zdlouhavé zadání testovacího scénáře. Pět uživatelů zhodnotilo svou práci s aplikací jako bezproblémovou a jednoduchou. Těchto pět uživatelů by také sáhlo po mojoPortalu v případě, že by si chtěli vytvořit nějakou vlastní webovou prezentaci. Od jednoho uživatele pak byla výtka na uživatelskou přívětivost aplikace, kdy se mu nelíbilo, že aplikace nemá potrvrzovací hlášky u některých akcí, jako např. vytvoření a uložení stránky či obsahu. Dále dva z uživatelů měli připomínky na administrační menu. Uvítali by ho více přehlednější či úplně oddělené od vlastního webu. Také byla jedna připomínka na skinovatelnost webu. Tento uživatel by rád měl v rámci aplikace více možností ohledně nastavení vzhledu, než jen výběr skinu (předem vytvořeného souboru css a obrázků). Při testování vznikl jeden zásadní problém, když uživatelé měli za úkol změnit vzhled webu. Snažil jsem se uživatele zmást a nejdříve je nechal pracovat čistě s textovými odkazy a poté měli změnit vzhled webu a z odkazů se staly ikony. To zmátlo drtivou většinu uživatelů. Výsledek byl takový, že všichni chtěli své textové odkazy zpátky. Je tedy rozhodně lepší uživatele naučit na jednu variantu a té se držet. Hodnocení uživatelské a instalační příručky bylo kladné. Na jednu stranu pět uživatelů téměř nepotřebovalo uživatelskou příručku a pokud ano, vždy v ní našli správný postup při řešení svého úkolu. Za celou dobu testování jsem uživatelskou příručku jen jednou pozměnil a to tak, že jsem přidal popis nahrání obrázku do HTML, který se zdál pro některé uživatele dosti matoucí. Jeden uživatel si zkusil práci s mojoPortalem v anglickém jazykce, bez uživatelské příručky a také neměl žádné problémy se splněním úkolu. Mé vlastní hodnocení celého testování je velice uspokojivé. Největším úspěchem pro mě je, že všichni uživatelé prošli testy a někteří mi pomohli k doladění některých částí v uživatelské příručce a v překladu aplikace.
48
KAPITOLA 3. MOJOPORTAL
Kapitola 4
Závěr 4.1
Zhodnocení práce
Svou celkovou práci bych zhodnotil jako úspěšnou. Podařilo se mi najít takový CMS, který je jednoduchý a zároveň rozsáhlý svou funkčností. Při práci s mojoPortalem jsem si uvědomil, že takový redakční systém s rozsáhlou správou uživatelů nemusí být na implementaci nic jednoduchého. Samozřejmě mojoPortal obsahuje spoustu nastavení a možností, které třeba ani normální uživatel nikdy nebude potřebovat. Stejně si ale myslím, že vlastní implementace takovéto aplikace by byla vcelku náročná. MojoPortal spolehlivě pokryl všechny požadavky komunitního centra. Jeho funkčnost a uživatelská přívětivost byla potvrzena osmi uživateli, kteří měli možnost si aplikaci vyzkoušet a podle mých pokynů v aplikaci i něco vytvořit. Testy byly sice časově náročnější, ale na druhou stranu přinesly kladné výsledky. Všichni testovaní úspěšně prošli zadanými úkoly. Výsledky testů pomohly odkrýt drobnější chyby v uživatelské příručce či v samotné aplikaci. Pro tyto testovací účely jsem vytvořil instalační a uživatelské příručky, aby uživatelé v případě problému nemuseli číst anglické manuály a měli tak při ruce lokalizovanou verzi s názornými obrázky a postupy. S tím tedy úzce souvisí i překlad aplikace do češtiny. Překlad aplikace není zcela kompletní, ale je přeloženo minimálně dvakrát tolik textu, než bylo původně. Dá se říci, že jsem si na práci s mojoPortalem hodně zvykl. Kdybych si tedy někdy chtěl vytvořit nějaký vlastní web, určitě by byl mojoPortal první aplikací, po které bych sáhl. Také bych se chtěl nějakým způsobem podílet v budoucnu na rozvoji této aplikace. Ať už třeba udržováním české lokalizace nebo implementací nějakého vlastního přídavného modulu. Jediné, co mě trochu mrzí, je absence českých .NET freehostingů. V tomto asi mají PHP hostingy stále navrch.
4.2
Budoucí práce
Zkusím oslovit komunitní centra a vyzkoušet si tak vhodnost aplikace při praktickém nasazení. Z této přímé spolupráce s komunitními centry by nám mohly vzniknout nové požadavky nebo bychom odhalili některé nedostatky mojoPortalu.
49
50
KAPITOLA 4. ZÁVĚR
Komunitním centrům by jistě přišel vhod samoinstalační skript, který by měl formu HTML formuláře. V tomto formuláři by si komunitní centrum mohlo nastavit vzhled webu, jeho název, vytvořit několik základních stránek ve formě šablon, které by si pak následně v aplikaci jen vyplnili vlastními údaji (např. stránku s kontakty, stránky kurzů, fóra, blogy či jiné). Formulář by pak po odeslání vytvořil SQL dotazy či databázový skript, který by vytvořil příslušné záznamy v databázi. Takovéto samoinstalační skripty by mohli být „ušité namíru“ určitému komunitnímu centru nebo by se udělal jeden universální. A jako poslední věc by se dala vyzkoušet integrace s různými sociálními sítěmi. Pokud má tedy komunitní centrum svou facebook stránku, mohly by se zde automaticky publikovat některé články či aktuality komunitního centra.
4.3
Závěr
Provedl jsem analýzu požadavků komunitního centra a zúžil výběr na .NET volně šířitelné nástroje pro správu obsahu. Našel jsem tři nejvíce vhodné nástroje, mezi kterými jsem se musel rozhodnout. Z praktického používání jsem zvolil jako nejvhodnější mojoPortal. Spolehlivě pokryl požadavky komunitních center. To jsem ověřil pomocí modelového příkladu, ve kterém jsem ukázal, jak by mohl takový web komunitního centra vypadat. Nejdůležitjší části aplikace a její moduly jsem přeložil do češtiny, vytvořil uživatelskou a instalační příručku a sestavil testovací scénáře pro uživatelské testy. Uživatelskou přívětivost aplikace mi potvrdilo osm uživatelů, kteří prošli testovacími scénáři. MojoPortal byl tedy zvolen jako vyhovující a je možné ho použít k praktickému nasazení.
Literatura [1] Jim Arlow and Illa Neustadt. UML2 a unifikovaný proces vývoje aplikací. Computer Press, 03 2007. [2] Joe Audette. mojoportal. http://www.mojoportal.com/, 03 2010. [3] Dries Buytaert. Drupal. http://drupal.org/, 05 2010. [4] CMSMS core team. Cms made simple. http://www.cmsmadesimple.org/, 05 2010. [5] DotNetNuke Corp. Dotnetnuke. http://www.dotnetnuke.com/, 03 2010. [6] Milena Černá. Komunitní centra a zákon o sociálních službách. http://www.dobromysl. cz/scripts/detail.php?id=1057, 12 2009. [7] Hydrocephalus e.V. Open php nuke. http://www.openphpnuke.info/, 05 2010. [8] Open Source Matters. Joomla. http://www.joomla.org/, 05 2010. [9] Microsoft. Asp.net - wikipedia. http://en.wikipedia.org/wiki/ASP.NET, 02 2010. [10] Microsoft. .net framework - wikipedia. _Framework, 02 2010.
http://en.wikipedia.org/wiki/.NET\
[11] Radek Nezval. Středisko srdíčko - 1. skautský oddíl. http://www.jednicka-trebic. cz/, 12 2009. [12] Guppy Team. Guppy. http://www.freeguppy.org/, 05 2010. [13] UltiDev. Cassini web server. http://www.ultidev.com/products/Cassini/, 03 2010. [14] Umbraco. Umbraco cms. http://umbraco.codeplex.com/, 03 2010. [15] Wikipedia. Content management system - wikipedia. http://en.wikipedia.org/ wiki/Content\_management\_system, 11 2009. [16] Wikipedia. Web content management system - wikipedia. http://en.wikipedia.org/ wiki/Web\_content\_management\_system, 04 2010.
51
52
LITERATURA
Příloha A
Obsah přiloženého CD V kořenovém adresáři CD je umístěn soubor index.html, který slouží jako rozcestník na veškerý obsah CD. Je možné si z něj zobrazit/stáhnout PDF verzi bakalářské práce, přířučky, testovací scénáře, dotazníky a také obsahuje odkazy na videa s jednotlivými uživatelskými testy. Pomocí odkazu ze stránky index.html je také možné si stáhnout zdrojové soubory bakalářské práce, zkomprimované v archivu .zip. Stromová struktura adresářů
53