České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Komunikační a informační portál pro řemeslníky a jejich zákazníky Kateřina Streitová
Vedoucí práce: Ing. Jiří Chludil
Studijní program: Softwarové technologie a management, Bakalářský Obor: Softwarové inženýrství 11. června 2009
iv
v
Poděkování Ráda bych poděkovala především svému příteli, který mě při tvorbě této práce více než podporoval. Byl nucen přestát špatné konstelace hvězd, výpadky serveru či zdravého rozumu a odpovídat na všemožné více či méně hloupé dotazy a za to mu patří dík. Poděkování patří též vedoucímu práce Ing. Jiřímu Chludilovi, dále pak profesorce angličtiny, Mrg. Jitce Procházkové, za pomoc při překládání abstraktu a všem, kteří přispěli při tvorbě aplikace a testování konzultací či dobrou radou. Bez jejich spolupráce by tento systém nikdy nevznikl v aktuální podobě.
vi
vii
Prohlášení Prohlašuji, že jsem práci vypracovala samostatně a použila 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 11. 6. 2009
.............................................................
viii
Abstract The web server Melouchari will find a niche in the manual labour market. Many people are skilful but they do not have the means to promote themselves. Establishing their own internet server is strenuous and time-consuming, and the website written by a layman is often more deterrent than attractive. If a craftsman finds himself a company to create the server, he will have to take considerable investment into account. That is the reason for Melouchari to be created. It offers a simple and cheap form of promotion for craftsmen. All it takes is to go through the registration, fill in his/her personal data such as name, address and what his/her field of work is, and possibly some photographs of the work itself. The whole project represents a significant simplification either for those who seek someone to do a job or for those who offer such skills.
Abstrakt Webový server Meloucháři bude vyplněním prázdného místa na trhu s manuálními pracemi. Mnoho lidí je zručných, ale nemají prostředky, jak propagovat svou činnost. Založení vlastních internetových stránek je náročné a mnohdy je stránka stvořená programátorem laikem spíše odstrašující než poutající pozornost. Pokud si řemeslník najme firmu, aby mu stránky vytvořila, musí počítat s nemalou finanční investicí. A proto vznikají Meloucháři. Nabízejí řemeslníkům jednoduchou a levnou formu propagace. Stačí se pouze registrovat, do zobrazených polí vyplnit své údaje jako jméno, adresu a čím se daný člověk zabývá, případně přiložit fotografie práce samotné. Jedná se o výrazné zjednodušení jak pro ty, kteří někoho na vykonání práce hledají, tak ty, kteří své služby nabízejí.
ix
x
Obsah 1 Úvod 1.0.1
„Ten umí to a ten zas tohle“ . . . . . . . . . . . . . . . . . . . . . . . .
2 Analýza situace 2.1 Rozšířené zadání . . . . . . . . . . . . . . . . . . 2.1.1 Kódový název práce . . . . . . . . . . . . 2.1.2 Proč Meloucháři? . . . . . . . . . . . . . . 2.1.3 Registrovaní uživatelé . . . . . . . . . . . 2.1.4 Administrace systému . . . . . . . . . . . 2.1.5 Pomocník Pepa . . . . . . . . . . . . . . . 2.1.6 Mapa stránek . . . . . . . . . . . . . . . . 2.2 Problematika inzerce a komunikace . . . . . . . . 2.2.1 Forma inzerce . . . . . . . . . . . . . . . . 2.2.2 Obsah . . . . . . . . . . . . . . . . . . . . 2.2.3 Komunikace . . . . . . . . . . . . . . . . . 2.3 Současné možnosti dosažení obdobných výsledků 2.3.1 Proč srovnávat? . . . . . . . . . . . . . . . 2.3.2 Megainzerce . . . . . . . . . . . . . . . . . 2.3.3 Remeslnik.borec . . . . . . . . . . . . . . 2.3.4 Tesar.kvalitne . . . . . . . . . . . . . . . . 2.3.5 Remeslnik.estranky . . . . . . . . . . . . . 2.3.6 Opravy . . . . . . . . . . . . . . . . . . . 2.3.7 E-remeslnik . . . . . . . . . . . . . . . . . 2.3.8 Sluzby . . . . . . . . . . . . . . . . . . . .
1 1
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
3 3 3 3 3 4 4 4 5 5 5 6 8 8 8 9 9 10 11 12 12
3 Analýza systému 3.1 Zadávání dat a jejich interpretace . . . . . . . . . . . 3.1.1 Registrace . . . . . . . . . . . . . . . . . . . . 3.1.2 Vložení inzerátu . . . . . . . . . . . . . . . . 3.1.3 Zobrazování dat . . . . . . . . . . . . . . . . 3.2 Uživatelské role . . . . . . . . . . . . . . . . . . . . . 3.2.1 Seznam a krátký popis . . . . . . . . . . . . . 3.3 Technologie použité pro realizaci . . . . . . . . . . . 3.3.1 Typ aplikace, jazyk a optimalizace . . . . . . 3.3.2 Softwarové vybavení . . . . . . . . . . . . . . 3.3.2.1 Softwarové vybavení serveru . . . . 3.3.2.2 Softwarové vybavení klientského pc 3.4 Návrh struktury databáze . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
15 15 15 17 19 20 20 21 21 22 22 22 23
xi
. . . . . . . . . . . . . . . . . . . .
xii
4 Realizace portálu a tvorba dokumentace 4.1 Grafické rozhraní . . . . . . . . . . . . . 4.2 Databáze . . . . . . . . . . . . . . . . . 4.3 Tvorba aplikace . . . . . . . . . . . . . . 4.4 Tvorba dokumentace . . . . . . . . . . .
OBSAH
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
25 25 26 27 28
5 Testování 29 5.1 Testování programátorkou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2 Testování uživateli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6 Závěr 31 6.1 Co příště lépe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.2 Budoucnost projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Literatura
33
A Seznam použitých zkratek
35
B Databáze projektu Meloucháři 37 B.1 Seznam tabulek a atributů v systému . . . . . . . . . . . . . . . . . . . . . . . 37 B.2 Struktura databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 C Diagramy 47 C.1 Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 C.2 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 C.3 State diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 D Ukázky uživatelského rozhraní
51
E Obsah přiloženého DVD
63
Seznam obrázků 2.1 2.2 2.3 2.4 2.5 2.6 2.7
Megainzerce.cz . . . . Remeslnik.borec.cz . . Tesar.kvalitne.cz . . . Remeslnik.estranky.cz Opravy.cz . . . . . . . E-remeslnik.cz . . . . . Sluzby.cz . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
8 9 10 10 11 12 13
3.1
State diagram inzerátu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1
Nastavení adresy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
B.1 Diagram struktury databáze, první část . . . . . . . . . . . . . . . . . . . . . 45 B.2 Diagram struktury databáze, druhá část . . . . . . . . . . . . . . . . . . . . . 46 C.1 Use case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 C.2 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 C.3 State diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 D.1 Úvodní stránka . . . . . . . . . . . . . . . . . . D.2 Registrace - výběr typu účtu a zadávání údajů D.3 Registrace - výběr typu účtu a zadávání údajů D.4 Registrace - potvrzení a přihlášení . . . . . . . D.5 Sekce nápověda . . . . . . . . . . . . . . . . . . D.6 Správa referencí v řemeslnickém/firemním účtu D.7 Správa inzerátů řemeslníka/firmy . . . . . . . . D.8 Nastavení účtu řemeslníka . . . . . . . . . . . . D.9 Seznam výsledků vyhledávání . . . . . . . . . . D.10 Prohlížení detailu inzerátu . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
52 53 54 55 56 57 58 59 60 61
E.1 Obsah přiloženého DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
xiii
xiv
SEZNAM OBRÁZKŮ
Kapitola 1
Úvod 1.0.1
„Ten umí to a ten zas tohle“
Tato okřídlená věta ze známého filmu je více než vhodná pro shrnutí smyslu aplikace Meloucháři, jejíž dokumentace se Vám právě dostala do rukou. Každý z nás má nějaké nadání. Někdo je manuálně zručný, jiný zase nemá problémy s pochopením vnitřních mechanismů ve strojích a někteří z nás dokáží vidět poetiku v matematických rovnicích a snadno ji vysvětlit ostatním. Ne všichni ale zasvětí svou kariéru tomu, v čem tkví jejich talent. Tuto činnost si kupříkladu ponechají jako koníček, či si pomocí ní přivydělávají. Portál Meloucháři budou sloužit primárně ke zviditelnění takových lidí, nic ale nebrání jejich využití existujícími firmami a kvalifikovanými řemeslníky pracujícími v oboru, kteří chtějí nějak využít volné večery nebo víkendy. A tak se rozhodli pro „melouchaření“. Dle výkladového slovníku[1] znamená slovo „melouch“ práci sjednanou a zaplacenou neoficiálním způsobem (tzv. na černo) a vykonanou obvykle v jinak volném čase pracovníka. Tato definice je v nynějších časech již neoprávněná. Pochází ze socialismu, kdy pracovník vykonávající melouch vlastně pracoval jako soukromý podnikatel, což tehdejší režim zakazoval a považoval za protistátní. Slovo melouch jako takové se dle publicisty Benjamina Kurase[2] objevilo v češtině někdy v 16. století ze židovského jazyka jidiš. Jidiš je směsice hebrejštiny, původního židovského jazyka, a němčiny a obsahoval asi 20 procent slovanských slov. Výraz melouch v jidiš zněl meloche, v hebrejštině byl vyslovonán melacha. Kuras píše, že šlo o kvalifikovanou práci či jinak řemeslo. Synonymem melouchu je slovo přejaté taktéž z němčiny - fuška. Její slovníková definice zní dřina, namáhavá práce, ale můžeme se setkat i s jinou, která říká, že fuška je neodborná či špatně provedená práce. S tím je také spojeno další odvozené slovo: „zfušovat“. Na konci dvacátého a jednadvacátého století byla stále častěji slýchána fráze: „Za starých časů to řemeslníci tak nefušovali“, která vyjadřovala nepěkný trend moderní doby. Tento trend spočívá v provedení práce „na oko“, tedy aby zpočátku dílo vypadalo jako dobře provedené, podlaha se nepropadala a do střechy nezatékalo, ale s postupem času aby práce rychle chátrala a bylo třeba řemeslníka zavolat znovu. Což mu zaručilo další výdělek.
1
2
KAPITOLA 1. ÚVOD
Posledním příspěvkem do tohoto malého etymologického koutku budiž slovo „fuč“. Pochází taktéž z německého slova, konkrétně z citoslovce „futsch“. Přeloženo do češtiny znamená „pryč, fuč, tentam“. Jde tedy o výrazový prostředek stejného smyslu jako zfušovat a možná byl nemálokráte použit, když lidé lamentovali nad špatně provedenou prací. Kdo by chtěl pokračovat v jazykozpytectví, které jsem v tomto úvodu nastínila, nechť se zaměří například na slovo fušer. Osobně doufám, že na portálu Meloucháři budou své služby propagovat kvalifikovaní řemeslníci, či lidé s nadáním, které je společnosti prospěšné a jejich práce se jen tak neztratí, čili nebude „futsch“.
Kapitola 2
Analýza situace 2.1 2.1.1
Rozšířené zadání Kódový název práce
Tato bakalářská práce byla zadána pod názvem „Meloucháři“ a dlouho tak byla nazývána. Ve chvíli schvalování zadání byl ale tento název odmítnut, a tak bylo stvořeno oficiálněji znějící jméno zadání „Komunikační a informační portál pro řemeslníky a jejich zákazníky“. Nicméně pro zadavatele, mého vedoucího a mně to byli jsou a budou Meloucháři. Mimo to jsou Meloucháři daleko kratším názvem, který se lépe vyjímá v textu.
2.1.2
Proč Meloucháři?
Portál Meloucháři vznikl z potřeby zvýšit všeobecné povědomí o lidech manuálně nadaných. Pokud jste někdy potřebovali něco doma opravit, postavit či předělat, byli jste také postaveni před zásadní otázku: „Zařídit si vše potřebné sám nebo si na práci najmout kvalifikovaného řemeslníka?“. A v případě, že jste alespoň průměrně zaměstnaní lidé, směle jste přeskočili k plejádě dalších: „Kde takového řemeslníka seženu?“, „Jak poznám, že odvede dobrou práci?“ a v neposlední řadě: „Kolik mě to bude stát?“. Meloucháři si kladou za cíl odpovědět na tyto a jiné dotazy. Uživatelský přístup je umožněn čtyřem typům účtů: neregistrovaný návštěvník, zákazník, řemeslník a firma. Návštěvník může prohlížet všechny stránky systému. Při jejich generování jsou však uplatňována jistá omezení. Nezobrazují se kompletní informace o řemeslníkovi a samozřejmě není přístupné jakékoliv zákaznické rozhraní (přidávání komentářů, evidování historie prohlížených inzerátů atd.).
2.1.3
Registrovaní uživatelé
Registrovaný a přihlášený zákazník má oproti tomu daleko více možností, jak Meloucháře využít. Editováním svého profilu umožní ostatním, aby ho kontaktovali. Třeba v případě, že se chystají využít řemeslníka, jehož služby daný zákazník komentoval. Účty typu registrovaný řemeslník a firma mají mnoho společného. Po zvážení implementačních možností a uživatelských preferencí jsem se rozhodla účty reprezentující celou firmu skladovat odděleně. Fakticky je ale hlavním rozdílem přítomnost údajů IČO, DIČ a kontaktní osoby. Účet firmy lze tedy považovat za rozšířený řemeslnický, a proto pro něj platí stejná pravidla.
3
4
KAPITOLA 2. ANALÝZA SITUACE
Vzhledem k tomu, že je celý systém orientován na řemeslníky, mají nejvíce možností, jak se realizovat. Nezbytnou součástí je uložení jména, příjmení a kontaktních údajů (adresy, e-mailu, icq či telefonního čísla), referencí ale také samotné vložení inzerátu propagujícího nabízenou práci. Každý inzerát musí být zařazen do určité profese, která spadá do oboru činnosti. Tento systém jsem zvolila pro snadnou katalogizaci nabídek. Pokud pomineme ceník či případné poznámky, je další nezbytnou součástí regionální zařazení. Mezi kraji a městy platí vztah rodič-dítě a jako takové jsou reprezentovány v databázi. Ke každému inzerátu se váže logovací soubor a kalendář, kde si pracovník může jednoduše navolit, které dny je k dispozici pro práci, kdy ne a kdy je například zastihnutelný na telefonu.
2.1.4
Administrace systému
Opustíme-li uživatelské účty, zbývají nám pouze účty administrační. Pro administrátora existuje účet s id 0, pro ostatní editory a správce jsou rezervována id od 1 do 99. I tyto účty umožňují skladování kontaktních údajů pro zabezpečení důvěryhodnosti a transparentnosti pohybů na stránkách. Rozhraní správcovských účtů je identické s oním uživatelským. Na rozdíl od uživatelů ale může admin, správce či editor inzerát upravovat, schvalovat a dokonce smazat využitím speciálních pomůcek ze svého rozhraní. Pro účet hlavního administrátora je předpokládán přímý přístup k databázi a ostatním zdrojovým souborům. Pro případ častých úprav běžného řádu je zvažována implementace administračního rozhraní, nebyla však součástí zadání.
2.1.5
Pomocník Pepa
V záhlaví stránky je zobrazen pomocníček Melouchářů - Pepa. Humanoidní podoba byla zvolena pro zajištění pocitu familiernosti při pobytu na stránkách. Pepa poradí jak novému návštěvníkovi tak ostříleným uživatelům (tipy týkající se novinek na stránkách).
2.1.6
Mapa stránek
Vzhledem k předpokládané nižší počítačové gramotnosti cílové skupiny stránek jsem zvolila jednoduchý design, ve kterém se uživatel snadno orientuje. Správa účtu pak netrvá dlouho a jelikož není potřeba nic zkoumat, uživatel neztrácí motivaci a pokračuje v prohlížení. Při navrhování jsem vycházela z osobních zkušeností. V současné době (2008, 2009) pracuji jako lektorka počítačových kurzů zaměřených na začátečníky, mírně pokročilé a rekvalifikující se osoby. Při hodinách jsem se často setkala s tím, že člověk, který byl postaven před podle něj příliš složitý problém, ze stránek raději odešel, než se pokusil jej vyřešit.
2.2. PROBLEMATIKA INZERCE A KOMUNIKACE
2.2 2.2.1
5
Problematika inzerce a komunikace Forma inzerce
Velmi obtížným se při návrhu systému ukázalo skloubit potřeby obou skupin, které ho mají využívat. Pro zjednodušení nyní považujme firemní účet za totožný s řemeslnickým. Návrh systému Meloucháři vznikl z opakované potřeby okolí nalézt řemeslníka na určitou práci. Při tomto typu hledání pravidelně docházelo k frustraci z médií, která hledaní umožňují. Zlaté stránky Pro mnohé spoluobčany stále nejpohodlnější cesta. Internet je v české kotlině již stálým společníkem, ne všichni mu ale plně porozumněli. Zlaté stránky jsou pro tedy nejjednodušší a nejzažitější cestou nalezení řemeslníka. Bohužel lidé ale mnohdy nepamatují na fakt, že kvalita práce je neúměrná velikosti reklamy, a tak jsou pak odvedenou prací zklamáni. Doporučení známého, lokální inzerce Doporučení známého splňuje sdělení zkušenosti s řemeslníkem před jeho objednáním. Ne mnoho lidí má ale ve svém okolí kamarády řemeslníky, proto je tato možnost okrajová. To samé platí pro lokální inzerci na sloupech či dveřích. Důvěru v řemeslníka, který se takto inzeruje, mnoho lidé nevkládá. Internet Internet je asi nejvhodnějším médiem k hledání věcí od běžné potřeby po akademický materiál. Bohužel, jak již bylo výše zmíněno, je stále mnoho lidí, kteří si s ním nerozumí a nedokáží ho ovládat ke své spokojenosti. Neulehčují jim to ani amatérští tvůrci stránek, které častokráte uživatele svou nepřehledností odradí od dalšího hledání. Z výše zmíněných médií byl zvolen internet pro uskutečnění záměru a ostatní pro poučení se z jejich chyb a nedostatků. Bude se tedy jednat o internetový portál upravený potřebám jeho uživatelů, snadno srozumitelný i pro méně technicky zdatné jedince, ale zároveň vyznačující se nevtíravou a příjemnou grafickou stránkou. Formu tedy máme, čím ji ale naplnit?
2.2.2
Obsah
Předpokládanými uživateli Melouchářů jsou lidé ne příliš seznámení s technikami prohlížení internetových stránek. Je proto třeba jim vyjít vstříc a mnoho mechanismů uzpůsobit jejich schopnostem. Znalosti a zákonitosti, kterými se při vytváření Melouchářů řídím, jsem načerpala při své práci lektorky rekvalifikačních a jiných kurzů a velkou měrou také z knihy Nenuťte uživatele přemýšlet[3]. Jednoduchým a vtipným způsobem shrnuje konvence, kterých by se tvůrce webu měl držet, pokud chce, aby byla jeho práce přístupná široké veřejnosti. Ideální systém inzerce dle představ zákazníka je takový, který mu za velmi málo snahy nabídne přesně to, po čem toužil, v kompaktní formě bez balastního textu. K podmínkám ideálnosti můžeme také zařadit bezplatnost a nepotřebnost registrace. Řemeslníci mají stejná přání, ale z jejich touhy inzerovat vychází i nutnost sdělit několik informací o své osobě. Na straně serveru je pak povinnost zabezpečit, aby tato data nebyla zneužita k reklamním účelům. Tato klauzule, nebo její opačná varianta („Vaše osobní údaje budou použity k reklamním účelm“), je v dnešních dnech běžnou součástí smlouvy uzavírané mezi serverem a klientem při registraci.
6
KAPITOLA 2. ANALÝZA SITUACE
Jednou z možností, jak splnit požadavek zákazníka, je snížení počtu úrovní webu na minimální nutný počet. Pod pojmem úroveň rozumíme určitým logickým způsobem seřazené stránky, které si můžeme představit jako Matriošku. Každé kliknutí nás dostane pod další „slupku“, na další úroveň. Dále je nutné zachování konvence, která v moderním designování webových stránek již nemá místo - perzistentního menu. Jedná se o takové menu, které je v neměnné podobě přítomné na všech stránkách serveru. V dnešních dnech již ustupuje menu měnícímu se dle konkrétní lokace uživatele. Mé zkušenosti ale vedou k tomu, že pro mnoho lidí se obtížné se orientovat i na stránkách, které mají perzistentní navigaci. Proto je třeba stálé menu zachovat a navíc ještě podstatně zjednodušit. Politika zjednodušování platí nejen pro menu, ale také při psaní textu stránek. Vědoma si „Krugova třetího zákonu použitelnosti“: Zbavte se poloviny slov na každé stránce. A potom se zbavte poloviny toho, co zbylo.[3], tvořila jsem obsah webových stránek bez zbytečné slovní výplně a zachovala pouze podstatné prvky. Při psaní obsahu webu a jeho tvorbě jsem použila znolosti prezentované na stránkách Interval.cz v seriálu Píšeme pro web[4]. Tímto jsme si vytyčili cíle, jak naplnit server. Nyní si pojďme popovídat o tom, jak na takový portál přivedeme lidi a umožníme jim jeho snadné používání.
2.2.3
Komunikace
Nejsnažší formou komunikace se ukázal telefonní kontakt. Hlasová komunikace je přirozená a jednoduchá. Někteří uživatelé ale nechtějí utrácet za vysoké telefonní účty, a proto byla jako hlavní forma komunikace zvolena elektronická pošta. Možnost telefonického kontaktu samozřejmě zůstává zachována a Meloucháři jsou mu uzpůsobeni. Dokonce je zadavatelem upřednostňován při shánění prvních řemeslníků, my ale teď pokračujme komunikací řemeslníky se zákazníky a mezi oběma druhy uživatelů s portálem Meloucháři. Na elektronickou adresu bude serverem odeslán potvrzovací e-mail 1 po registraci a informační mail při změně údajů. Cílem tohoto systému je zabránit možného zneužití uhodnutého či jinak získaného hesla a poškození osoby zákazníka či řemelníka cestou vložení nesmyslných údajů, smazání účtu atp.. Vzhledem k předpokládaným nízkým informatickým znalostem uživatelů, je možné a dokonce pravděpodobné, že se dopustí podobných chyb jako napsání si hesla na papírek či jeho sdělení třetí osobě. Informační mail je upozorní, že v jejich účtu došlo ke změně, a oni budou moci komunikací s administrátorem zjednat nápravu. Elektronická adresa řemeslníka2 bude zobrazena u jeho profilu, aby byla snadno k dosažení těmi, kteří si žádají jeho služeb. Pokud uvede telefonní kontakt, icq či adresu práce, bude možné ho zastihnout i pomocí těchto prostředků. Profil řemeslníka bude zobrazen všem registrovaným a přihlášeným uživatelům po kliknutí na jeho jméno u inzerátu. Seznam registrovaných uživatelů nebude zveřejněn. Z toho vyplývá, že jedinou cestou zobrazení profilu zákazníka je kliknutí na jeho jméno u komentáře, který zanechal u inzerátu. Pak bude možné údaje, které má zákazník uvedeny v profilu, použít k jeho kontaktování3 . 1
Pro školní server bd.felk.cvut.cz se nepodařilo vyjednat funkční mail server, proto jsou některé funkce Melouchářů pro potřeby publikace na tomto serveru upraveny. Řešení vyžadující odeslání e-mailu je zakomentováno a funkční je náhradní varianta. Tento fakt je u každé příslušné funkce uveden. 2 To samé platí pro firmu. 3 Využije řemeslník či firma odpovídající na dotaz.
2.2. PROBLEMATIKA INZERCE A KOMUNIKACE
7
Jedinou výjimkou bude případ, kdy zákazník vloží komentář k řemeslníkovi. V tomto případě bude možné jeho adresu použít k napsání mailu s dalšími otázkami k jeho komentáři. Pro upozornění na novinky týkající se systému bude taktéž použita elektronická korespondence 4 . Navíc je pak informační panel na pravé stráně úvodní stránky. Diskutabilní bylo použití stejného panelu na všech stránkách serveru, kvůli větší přehlednosti však od tohoto nápadu bylo upuštěno. Probrali jsme už vše od formy přes obsah serveru až po styl komunikace, který je vynucen cílovou skupinou uživatelů systému. Nedílnou součástí komunikace Melouchářů bude také prezentace sebe sama potenciálním zákazníkům. Prozatím jsou relevantními cestami telefonický kontakt s řemeslníky a jejich zapojení do projektu, elektronická komunikace se servery, které se zabývají manuálními pracemi, jako například obchody s nářadím a nabídnutí výměny bannerů. Moderní cestou zveřejnění serveru je také zvýšení pagerankingu vložením odkazu na server Meloucháři do různých vyhledávačů. Pagerank je zjednodušeně řečeno hodnota, která určuje kvalitu informací na stránce. V neposlední řadě se pak dostáváme ke klasickým cestám propagace formou inzerátu v tisku či na některém z informačních serverů.
4
Na školním serveru tato možnost není funkční. Novinky jsou zobrazovány pouze na hlavní straně.
8
2.3 2.3.1
KAPITOLA 2. ANALÝZA SITUACE
Současné možnosti dosažení obdobných výsledků Proč srovnávat?
Při tvorbě takto specializovaného softwaru je třeba důsledně zvážit všechny aspekty. Ať už mluvíme o volbě programovacích jazyků, použití generátorů kódu nebo o grafické úpravě a rozložení stránek. Proto jsem důkladně prozkoumala vody českého internetu a snažila se najít servery, které se zabývají podobnou tématikou, abych se z jejich práce mohla poučit. Hodnotila jsem na jedné straně technické zpracování - zkoumání zdrojového kódu stránky pohledem a její validaci W3C validátorem, na straně druhé pak grafické rozhraní a uživatelskou přívětivost. Podívejme se tedy na přehled stránek nabízejících řemeslnické práce.
2.3.2
Megainzerce
Link: http://www.megainzerce.cz
Obrázek 2.1: Megainzerce.cz
Tento server se nezaměřuje striktně na nabídky prací. Nalezneme zde i bazar a obecnou inzerci. Validací prošel bez problému a po formální i estetické stránce byl kód nezávadný. Totéž se bohužel nedá říci o grafické stránce projektu. Už úvodní stránka je přeplácaná a nepřehledná. Reklama je umístěna okatě vlevo nahoře a působí rušivým dojmem v centrovaných stránkách. Taktéž google reklamy umístěné uprostřed pod menu působí rušivě. Stránky trpí neduhem všech, kteří se zaměří na příliš mnoho věcí za použití malého místa. Používají příliš mnoho typů rozdělení, vprostřed stránky se objevuje bazar a dokonce i seznamka. Mnohem lépe by posloužilo grafické menu na úvodné stránce, které by umožnilo výběr požadované sekce či činnosti.
2.3. SOUČASNÉ MOŽNOSTI DOSAŽENÍ OBDOBNÝCH VÝSLEDKŮ
2.3.3
9
Remeslnik.borec
Link: http://www.remeslnik.borec.cz
Obrázek 2.2: Remeslnik.borec.cz
Tyto stránky validací W3C neprošly a to z pádných důvodů. Kromě nespecifikovaného document type a dalších technických nedostatků se tvůrce dopouští i logických chyb. Užívá nepovolené atributy (topmargin, leftmargin atd.), uzavírá tagy, které nebyly otevřeny (
) a nesprávně používá mezery (
). Pro menu používá tabulku. Tento blokový element se také snaží použít v řádkovém elementu odkazu. taktéž zaměňuje malá a velká písmena, což způsobuje chyby v kódu (
vs. ). Stránka je celkově nepřehledná s grafickou úpravou, která návštěvníka nezaujme. Nenachází se na ní dostatek textu pro nalákání návštěvníka k delšímu prozkoumání. Obsahuje kromě několika funkčních i nefungující odkazy, které při kliknutí nedělají nic, nebo přesměrují na prázdnou stránku, a jsou částečně překryté nepříjemnou animací. Zákazníkovi hledajícímu řemeslníka chybí datum spuštění a poslední aktualizace stránek a také ukázky práce. Na stránkách se sice nacházejí fotky, ale není možné je zvětšit ani nijak poznat jejich stáří. Za zvláště odstrašující považuji hudbu, která se spustí při otevření stránky a není možné ji vypnout.
2.3.4
Tesar.kvalitne
Link: http://www.tesar.kvalitne.cz Zde už nalezneme v kódu specifikován document type i charset, ale stále se setkáme s neuzavřenými elementy (img) a mícháním elementů tr, td, table a div. Sekce poradna neobsahuje žádný formulář, pouze link na kurzy.cz, reklamu na fotoportál, hlasování a spoustu malých bannerů. Stránky obecně obsahují nefunkční odkazy a velmi zmatený katalog stránek, který jsem si pro sebe označila jako „oblíbené“.
10
KAPITOLA 2. ANALÝZA SITUACE
Obrázek 2.3: Tesar.kvalitne.cz
Pokračujme v hodnocení grafické stránky. Počítám do ní i kvalitu vyjadřování na stránkách. V tomto případě jsem narazila na chybné tvary slov a skloňování (zrealizovat vs. realizovat, zrealizuje altán, pergola). Při použití odkazu Reference v menu se změní jak struktura menu, tak vizáž stránek (větší menu, barevný a větší mail). Plusem je ceník, byť jen čtyř věcí, a kalkulace zdarma dle podkladů.
2.3.5
Remeslnik.estranky
Link: http://www.remeslnik.estranky.cz
Obrázek 2.4: Remeslnik.estranky.cz
2.3. SOUČASNÉ MOŽNOSTI DOSAŽENÍ OBDOBNÝCH VÝSLEDKŮ
11
Tvůrce se při kódování dopouští chybného užití tagů (ul v ol, atribut cellpadding u tbody, li mimo ul, neukončené ol) a použití textu mimo znakový element. Taktéž se mu do zdrojového kódu přimotaly znaky neopatřené únikovou sekvencí (&). Jedná se o fiktivní stránky s vysoce efektivní grafikou. Již v menu se nachází poutavý obrázek evokující chuť k práci. Fotogalerie je dělená na reference a právě probíhající, což dává zákazníkovi přehled o tom, jak kvalitní práci firma odvádí. Menu je velice jednoduché. Obsahuje sekci úvod, kontakty, reference a ceník rozdělený na venkovní a vnitřní práce. Vzhledem k prezentačním záměrům je ceník bez konkrétních čísel.
2.3.6
Opravy
Link: http://www.opravy.cz
Obrázek 2.5: Opravy.cz
Toto webové sídlo prošlo validací HTML 1.0 Strict. Obdržela jsem pouze jediné varování týkající se míchání doctypu kvůli veřejným a systémůvým identifikátorům Rozhraní i grafika těchto stránek jsou velmi jednoduché. Práce jsou děleny na kategorie vypsané rovnou na úvodní stránce. V menu se mimo jiné nachází i link na články umístěné na webu. Je jich pouze osm a jsou poměrně krátké, i tak se ale jedná o významné zlepšení oproti ostatním. Za bonus považuji i formulář pro firmy či řemeslníky, aby se stali partnery webu. Hlavní nevýhodou celého konceptu stránek je fakt, že pokud si přejete najít řemeslníka, musíte specifikovat své požadavky a odeslat je pracovníkům www.opravy.cz, kteří vám dle zadaných preferencí naleznou vhodného kandidáta. Pokud se vám jejich výsledky nelíbí, nastává delší dialog, který v konečném důsledku nemusí skončit k vaší spokojenosti. Meloucháři si kladou za cíl vylepšit tento aspekt automatizovaným vyhledáváním.
12
2.3.7
KAPITOLA 2. ANALÝZA SITUACE
E-remeslnik
Link: http://www.e-remeslnik.cz
Obrázek 2.6: E-remeslnik.cz
Tento web používá Joomla, což je redakční systém šířený pod Open Source licencí GNU GPL. Validací ho nebylo možné zkontrolovat kvůli přítomnosti znaku, který validátor nebyl schopen interpretovat ve specifikovaném kódování. Znak byl intepretován jako: \xE1.Za chybu považuji použití tabulky pro tvorbu menu a fakt, že při procházení stránek se submenu zobrazí v řádku bez mezer (OlomoucProstějovJeseník). Kromě tohoto faktu jsem se při letmém proklikávání setkala s obrovským množstvím warningů zobrazujících se jak v záhlaví tak v těle stránky a nesmyslnými možnostmi výběru (seřadit podle: 1. vybrat, 2. název). Plusem je, že na stránkách jsou ukončovány i nepárové tagy. Po grafické stránce web hodnotím jako průměrný. Jednoduchý design a použití jedné barvy ve vícero odstínech není v oboru designování stránek žádnou novinkou. Na stránkách se nenachází žádná okna či bloky, které by její design nějak ozvláštnily. Užitečným prvkem je implementace hodnocení. Web ale evidentně není moc používán, jelikož žádný řemeslník není hodnocen. Dle názvu by se na stránkách měly nacházet inzeráty všemožných řemeslníků, de facto se ale jedná pouze o několik stavebních prací.
2.3.8
Sluzby
Link: http://www.sluzby.cz Tyto stránky validací neprošly. Hlavní chybou bylo ukončování nezačatých tagů (div) Graficky se ale jednalo o nejpřitažlivější návrh. Nabízí hledání firem dle regionu a jejich řazení do kategorií, dále pak sekci zakázky, kde si řemeslníci mohou vybírat své zákazníky, ale která se bohužel zvrhává do obyčejné poptávky po všem možném, a sekci zboží, která taktéž
2.3. SOUČASNÉ MOŽNOSTI DOSAŽENÍ OBDOBNÝCH VÝSLEDKŮ
13
Obrázek 2.7: Sluzby.cz
funguje jako inzerce/bazar. Nikde jsem nenalezla datum spuštění, ale zakázky, pracovní pozice atd. nejsou starší ledna 2009. Přitom se v sekci zboží k březnu 2009 nachází již 87 stran inzerátů, což působí poněkud nedůvěryhodně. Milou drobností je uvední datumu a jména osoby, která v daný den slaví svátek, a pak také side menu s odkazy „k Vašim službám“. Na stránkách se nachází logování, ale nikde není registrace ani postup, jak jí dosáhnout. Mínusem je orientace na příliš mnoho cílů (zakázky, nabídky práce, letenky, prodej zboží, klasická inzerce) jako v případě Megainzerce. Stránky tak poněkud ztrácí na přehlednosti.
14
KAPITOLA 2. ANALÝZA SITUACE
Kapitola 3
Analýza systému 3.1 3.1.1
Zadávání dat a jejich interpretace Registrace
Jedním z oříšků při tvorbě systému Meloucháři, je vhodný návrh prostředí, které nebude na uživatele při registraci či vkládání inzerátu klást mnoho požadavků. Zároveň je ale potřeba schraňovat nemalé množství dat, aby byla překonána kvalita služeb podobného ražení. Z tohoto důvodu byla registrace z pohledu uživatele rozdělena do tří kroků. 1. krok - Vložení osobních údajů: V prvním kroku je zákazník, řemeslník či firma (dále v textu uživatel) požádán o vložení osobních údajů. Jejich množství se liší v závislosti na typu registrujícího se uživatele. Po zákazníkovi nežádáme nic víc než zvolení logovacích údajů (jméno1 a heslo2 ) a e-mailovou adresu. Ta je použita pro zaslání zprávy o registraci, která obsahuje potvrzovací odkaz. Po kliknutí na link je účet uživatele aktivován3 . Pro úspěšné založení řemeslnického účtu je nutné zadat navíc jméno a příjmení. Firemní účet je pak podmíněn zadáním jména a příjmení kontaktní osoby a názvu společnosti. 2. krok - kontrola údajů: Druhý krok registrace spočívá ve verifikaci údajů uživatelem. Nutnost tohoto kroku prokázala osobní zkušenost při práci s uživateli, kteří nejsou v používání počítače příliš zdatní. Při zadávání údajů mají sklon být liknaví, od nutnosti druhého pohledu na zadaná data si slibuji zvýšení pravděpodobnosti zadání údajů bez překlepů a v požadovaném tvaru. Sníží to počet multiplicitních registrací či požadavků o změnu v databázi. 3. krok - zpráva o úspěšnosti: V případě, že se uživateli podaří úspěšně překonat nástrahy registračního formuláře, bude odměněn potvrzením registrace zobrazeném na obrazovce4 monitoru. Poté se bude moci přihlásit a začít si plnohodnotně prohlížet stránky, editovat svůj účet či v případě řemeslníků a firem vložit inzerát. 1
Kontrola toho, zdali je uživatelské jméno k dispozici, probíhá až při odeslání stránky. Kontrolování v průběhu psaní uživatelského jména se ukázalo býti pro uživatele matoucím. 2 Pro kontrolu síly hesla je použit javascript[5]. Síla hesla je vyjádřena slovně a barevně - čím lepší heslo, tím zelenější pole. Při nesplnění požadavku na minimální délku je vypsána hláška „Heslo je příliš krátké“, při splnění podmínky (zadání alespoň 6 znaků) je síla hesla vyjádřena graficky. Javascriptem je kontrolována i validita formátu e-mailové adresy. 3 Na školním serveru bd.felk.cvut.cz jsem zvolila okamžitou aktivaci. 4 Pouze na školním serveru. V originálně navrženém systému je zobrazena informace o odeslaném mailu s odkazem potvrzujícím registraci. Odkaz je ochranou proti tvorbě nechtěných účtů.
15
16
KAPITOLA 3. ANALÝZA SYSTÉMU
Průběh registrace je na serverové straně obohacen o verifikační kroky. Nejprve je kontrolována správnost vyplnění polí. Pokud registrační formulář touto kontrolou projde, následuje kontrola duplicity uživatelského jména a e-mailové adresy. Při nalezení v databázi je uživateli vypsána informační hláška a je požádán o zadání nového přihlašovacího jména či e-mailu. Vzhledem k možnosti, že registračním formulářem prochází uživatel, který již registrován je, nepamatuje si heslo a doufá, že tímto způsobem si bude moci „nastavit“ nové, je zobrazeno i upozornění, že v takovém případě je možné si nechat heslo zaslat5 .
5 V původním návrhu jde o automatizovanou činnost. Po vyplnění formuláře je na uživatelovu e-mailovou adresu odesláno nově vygenerované heslo a je požádán o okamžitou změnu při prvním přihlášení. Na školním serveru je uložena varianta, při které musí odeslání e-mailu provést administrátor.
3.1. ZADÁVÁNÍ DAT A JEJICH INTERPRETACE
3.1.2
17
Vložení inzerátu
Nejčastějším úkonem týkajícím se vkládání dat bude vložení nového inzerátu. Tato možnost je umístěna v uživatelském menu v sekci „moje inzeráty“. Při vkládání je požadováno vybrání profese, které se inzerát týká. V seznamu jsou přehledně vyobrazeny kategorie a jednotlivé profese do nich spadající. Původní návrh serveru počítal s umožněním vložení nové profese do seznamu v průběhu vkládání inzerátu. To by ale způsobilo nutnost pravidelné kontroly seznamu profesí, a proto došlo ke změně na předdefinovaný seznam bez možnosti úpravy uživatelem6 . Dalším povinným údajem je adresa. V případě, že uživatel7 doposud nemá vyplněnou žádnou adresu, je vyžadováno, aby tak učinil nyní za pomoci linku do sekce „osobní nastavení“. Zde vyplněním jednoduchého formuláře uloží do databáze adresu8 vázanou k jeho účtu. Poté je již na stránku tvoření inzerátu vpuštěn a může směle pokračovat volením oblastí působnosti jeho inzerátu. Maximálně může zadat pět měst či krajů, ve kterých hodlá působit. Nechybí ale ani možnost „celá ČR“. Vyžadovaným atributem byla dojezdnost řemeslníka, při zadávání inzerátu tedy nechybí. Další parametry, které by řemeslník rád publikoval, je možné vyjádřit v poznámce. Po odeslání a kontrole zadaných údajů je uživateli nabídnuta možnost vytvoření kalendáře či přiřazení již existujícího. Kalendář slouží zákazníkům jako rychlý a přehledný způsob určení toho, zda je řemeslník k dispozici. Zároveň ale po řemslníkovi nevyžaduje složité vkládání dat. Jednoduše kliknutím určí, zdali je v daný den9 k dispozici. Po dokončení kalendáře či odmítnutí je inzerát ve stavu „čekající na schválení“. Další stavy znázorňuje state (stavový) diagram na další stránce. Pro bližší seznámení s průběhem života inzerátu prosím nahlédněte do přílohy C, str. 49 na activity diagram. Výše zmíněná položka uživatelského menu „moje inzeráty“ je přístupná pouze účtům typu řemeslník a firma. Zákazník logicky žádné inzeráty vkládat nebude, takže mu plně stačí sekce „osobní nastavení“, kterou může použít ke zveřejnění svých kontaktních údajů. Editoři a administrátor taktéž inzeráty vkládat nebudou, ale z nutnosti práce s inzeráty a účty vyplývá přítomnost sekce „administrace“ v jejich menu. Tam je jim umožněno potvrdit vložení nezávadných nově zadaných inzerátů nebo je v případě, že obsahují nějakou chybu, vrátit k přepracování zadavateli.
6 Pokud uživateli bude jeho profese v seznamu chybět, může kontaktovat administrátora serveru s návrhem na její přidání. Odkaz vedoucí na kontaktní formulář se nachází na stránce vložení inzerátu. 7 Nyní si pod pojmem uživatel představme pouze řemeslníka či firmu. Zákaznický účet nemá možnost přidávat inzeráty. 8 Adresa nabývá typu fakturační či kontaktní. 9 Při zadávání je zobrazena tabulka dnů v týdnu a každný den je rozdělen na tři období - dopoledne, odpoledne a večer
18
KAPITOLA 3. ANALÝZA SYSTÉMU
Obrázek 3.1: State diagram inzerátu
3.1. ZADÁVÁNÍ DAT A JEJICH INTERPRETACE
3.1.3
19
Zobrazování dat
Pro zajištění toho, že uživatelé nebudou ze stránek kvůli jejich nepřehlednosti prchat, je s maximální pečlivostí filtrováno množství údajů zobrazených na aktuální stránce. Experimentálně bylo zjištěno, že již poměrně malé množství dat nutí uživatele k těkání a často pak nenalezne to, co na stránce hledá. Z tohoto důvodu je také menu zobrazováno na každé stránce ve stejné podobě. Uživatel vidí známý prvek, který se pro něj stává ostrůvkem klidu. Po krátké době si zapamatuje, kam jednotlivé prvky menu míří, a je schopen se na webu pohybovat ke své spokojenosti. Každá stránka je vybavena podrobnou nápovědou dostupnou přes „Pomocníka Pepu“ zobrazovaného v pravém horním rohu stránky. Jsou v ní popsány všechny prvky nacházející se na stránce spolu s jejich účelem. Toto by mělo minimalizovat maily uživatelů, kteří si nevědí rady s některou z funkcí Melouchářů.
20
3.2 3.2.1
KAPITOLA 3. ANALÝZA SYSTÉMU
Uživatelské role Seznam a krátký popis
Doposud jsme se zaměřovali na popis funkcí systému a základní rozdělení uživatelských rolí zmínili jen v rozšířeném zadání. Pojďme si je teď uvést v přehledném seznamu s nejdůležitějšími fakty, které se jich týkají. Přehledné grafické znázornění naleznete ve formě use case diagramu v Příloze C, str. 48. Neregistrovaný uživatel Není rolí systému jako takovou. Bez registrace a přihlášení se totiž uživateli zobrazí pouze profese inzerátu, jméno řemeslníka a oblast, do které spadá. Vzhledem k tomuto faktu bude jakákoliv hodnota, kterou zadá do vyhledávacího pole, hledána pouze v seznamu profesí, řemeslníků10 a oblastí, které se vážou k nějakému inzerátu. Zákazník Přihlášený zákazník má k dispozici funkce zmíněné v předchozím odstavci. Rovněž má možnost položit dotaz v sekci Často kladené dotazy či podat návrh na založení či doplnění stránky Pomocníka Pepy11 . Může taktéž si taktéž prohlížet inzeráty a vyhledávat ve všech jejich polích12 . Dále pak při potřebě se vyjádřit ke kvalitě služeb nějakého řemeslníka může komentovat inzerát služeb. Samozřejmostí je pak editace vlastního profilu. Řemeslník, Firma Řemeslnický či firemní účet je obohacen o možnost založení a editace inzerátu. Pokud má pocit, že profese, kterou se chystá inzerovat, není v seznamu. Může podat návrh na založení nové. Stejně tak pro celý obor profesí. Taktéž může vytvořit kalendář a přiřadit ho jednomu či více inzerátům. Pokud si již nepřeje inzerovat danou práci, může inzerát smazat. Totéž platí i pro kalendář. Řemeslník si může ke svému účtu přiřadit fotografii či ceník. Nahrávání proběhne klasickou formou výběru souboru a jeho uploadu na server. V případě, že má reference na svou práci, které by rád publikoval, může využít sekce „reference“ a uložit je na server. Editor Uživatel s editorskými právy má možnost inzerát publikov, jeho publikaci zastavit, či jej rovnou smazat13 . Administrátor Až s administrátorským účtem přichází možnost smazat inzerát či účet z databáze. Dále může přidat nový editorský účet.
10
Tzn. Jméno řemeslníka, jméno firmy a jméno kontaktní osoby firmy. Stránka nápovědy popisující všechny prvky na stránce, ke které se vztahuje. 12 Při hledání v tabulce Adresa není hledaný řetězec porovnáván se jménem ulice, číslem popisným a jménem a příjmením uvedeným v adrese. 13 Inzerát zůstává v databázi zachován. Pouze je označen jako smazaný. 11
3.3. TECHNOLOGIE POUŽITÉ PRO REALIZACI
3.3
21
Technologie použité pro realizaci
Volba prostředí pro realizaci této práce byla velice jednoduchá. Vycházela totiž přímo od zadavatele práce, který některé technologie specifikoval v zadání. Ostatní pak jasně vyplynuly z požadavků, které jsou na aplikaci kladeny.
3.3.1
Typ aplikace, jazyk a optimalizace
Vzhledem k nutnosti přístupu na server z různých počítačů bez ohledu na jejich hardwarové či softwarové14 vybavení byla zvolena forma internetového portálu. Možnost samostatné spustitelné aplikace, ať už s instalací nebo bez, byla zavrhnuta. Cílová skupina uživatelů totiž v mnoha případech není schopna instalace programu a nutnost zapínat další program by je obtěžovala. Nejlepších výsledků používání bude proto dosaženo při zvoleném způsobu implementace. Pro realizaci webového portálu je vybrán jazyk XHTML a to ve standardu 1.0 Strict. Dodržení standardu nám pomůže při snaze optimalizovat portál pro různé prohlížeče a uživatele se speciálními potřebami. Kupříkladu lidé se zrakovým postižením využívají k prohlížení stránek speciální program, který jim text na stránce přečte. Špatně napsaná stránka může způsobit, že intepret textu některé znaky či sekce nerozezná či rozezná špatně. Projekt je cíleně optimalizován pro prohlížeče Internet Explorer 7, Opera 9.5, Firefox 2.515 a vyšší. Při tvorbě stránek je ale třeba myslet i na to, jak budou v konečném důsledku vypadat, neboť je to obal, co v dnešní době produkt prodává. Proto nesmí být opomenuta technologie kaskádových stylů (CSS)16 , která nám pomůže server uživatelům ještě více zpřístupnit. Pomocí ní rozmístíme prvky na stránce tak, aby byly snadno k nalezení. Nepsaným standardem je při „stylování“ stránky umístit všechny prvky, které formátují to, co se na stránce objeví, do zvláštního souboru s příponou .css. Zároveň si tím velmi zjednodušíme případné přidání jiného stylu stránky17 . Nebude nutné stránky celé přepisovat, plně postačí přidání Javascriptu na jeho změnu nebo jen prosté zakomentování řádky, která importuje styl, který si nepřejeme používat. Konkrétně jsme zvolili verzi 2.118 . Podrobnější informace o zmíněných standardech naleznete na stránce www.w3c.com[7]. Při výběru databáze nejsme omezováni komerčními licencemi. Nejpoužívanější databázová úložiště jsou ostatně šířena volně a internet obsahuje množství návodů, jak s nimi pracovat, o obsáhlé dokumentaci nemluvě. Po úvaze bylo jako úložiště vybráno MySQL a SQL jako jazyk pro práci s ním. Historie SQL sahá až do 20. let minulého století a postupem času se stal nejznámějším pojmem v oblasti práci s daty v relačních databázích. Jeho volba byla po absolvování předmětu, který se jím zabýval, nasnadě. 14 Internetový prohlížeč je brán jako samozřejmá součást počítače připojeného na internet. Jak operační systém Microsoft Windows tak Linuxové distribuce jsou implicitně instalovány s prohlížečem. 15 Volba prohlížečů vychází ze současného průzkumu oblíbenosti prohlížečů v České republice a přání zadavatele. 16 Informace o CSS byly čerpány hlavně ze stránek www.jakpsatweb.cz[6]. 17 Například při sezónních akcích. 18 Cascading Style Sheets Level 2 Revision 1.
22
3.3.2
KAPITOLA 3. ANALÝZA SYSTÉMU
Softwarové vybavení
Pro úspěšnou realizaci je také třeba zvolit softwarové vybavení, které budeme potřebovat. Pro přehlednost si ho můžeme rozdělit na vybavení serveru a klientského počítače, který se na server bude připojovat. 3.3.2.1
Softwarové vybavení serveru
V tomto ohledu nebylo třeba dlouhého přemýšlení. Zadavatel vyjádřil přání, aby byla aplikace vyvíjena za pomoci skriptovacího jazyka PHP[8]. Tato volba plně vyhovuje účelu serveru. Nepřináší zbytečné náklady na SW vybavení serveru a zároveň jde o masivně používanou technologii, což s sebou nese důkladné informační materiály. Když řekneme, že budeme používat PHP, znamená to nainstalování HTTP serveru a PHP modulu na serverový počítač. V našem případě jde o server Apache19 verze 2.2.11 a PHP verze 5.2.9. Modul je součást serveru, která nám může zpříjemnit tvoření či používání webových stránek. V případě PHP modulu nám umožní začlenit do stránek skripty. Výsledný portál pak bude vypadat jako rámec, do kterého jsou vždy vložena ta data, která uživatel žádal. Ze strany klientského počítače se nejedná o přílišnou změnu - obdrží stránku jakoby PHP skripty použity nebyly. Ze strany programátora jde o výrazné zjednodušení a zpřehlednění. „Rámec“ je napsán pouze jednou, pak už se jen přidávají stránky serveru. Tím se zmenšuje prostor pro chyby způsobené opakováním kódu. Pokud by Meloucháři byli komerčně vyvíjenou aplikací s větším rozpočtem, mohli bychom uvažovat o použití technologie ASP. Jedná se o skriptovací platformu využívající jazyků VBScript a JScript20 . 3.3.2.2
Softwarové vybavení klientského pc
Ačkoliv web bude serverově orientován, některé problémy mohou být řešeny nasazením logiky i na straně klienta, tedy po stažení stránky z Internetu. Již dříve bylo zmíněno použití Javascriptu21 . Jedná se taktéž o multiplatformní, objektově orientovaný skriptovací jazyk často vkládaný přímo do kódu stránky[5]. Jeho syntaxe je velmi podobná syntaxi jazyka Java. Ze spouštění na klientském počítači plynou pro Javascript určitá omezení. Není pomocí něj například možné pracovat se soubory, aby nedošlo k narušení soukromí uživatele, takže slouží hlavně k rozšíření prvku interaktivnosti stránek (např. tlačítka, stylování, animace a efekty obrázků).
19
Apache se nachází jak na bd.felk.cvut.cz, tak na počítači zadavatele. Z komerčních technologií jmenujme například server IIS, který si na počítač můžeme nainstalovat s operačním systémem Windows XP Professional. Ve verzi Home není k dispozici. 20 Verze Javascriptu od formy Microsoft. 21 viz. kapitola Zadávání dat a jejich interpretace
3.4. NÁVRH STRUKTURY DATABÁZE
3.4
23
Návrh struktury databáze
Databáze serveru Meloucháři byla navržena jako poměrně komplexní. Její přehledné grafické znázornění naleznete v Příloze B, str. 45. Původní návrh byl několikrát pozměňován a předěláván, když postupně vyplouvala na povrch fakta týkající se zaplnění tabulek. Pro implementaci databáze byl zvolen relační model. Tímto pojmem je často označována nejen databáze samotná, ale i její softwarové řešení. Relační databáze je založená na tabulkách, které chápeme tak, že uchovávají vztahy mezi informacemi. Názvy tabulek a atributů byly voleny jako co nejvíce vypovídající. V následujících řádcích shrneme tabulky nacházející se v databázi a jejich základní myšlenku. Další zákonnitosti jsou patrné z diagramu, na který bylo odkazováno výše. Pro účely pozdější administrace serveru pracovníky zadavatelské firmy byl vytvořen i přehledný seznam tabulek s jejich atributy(viz. Příloha B, str. 37).
Informace o účtech určených ke správě fóra (administrátor, editor) jsou uchovávány ve speciální tabulce Sprava. Míra práv v systému je signalizována hodnotou ve sloupci prava. Hodnota 1 značí účet editora a 2 účet administrátora. Uživatelské entity jsou uchovávány ve třech hlavních tabulkách. Jedná se o tabulky Zakaznik, Remeslnik a Firma. Ve všech nalezneme základní atributy identifikující uživatele: id, logovací údaje, jméno, příjmení, email, icq, datum a čas registrace a aktivace účtu, poslední zaznamenanou aktivitu a případné poznámky. Pole pro poznámku umožňuje uživateli zveřejnit i informace, pro které v dané chvíli nebude v registračním formuláři místo.
Tabulka Řemeslník obsahuje další údaje jako link na externí webové sídlo, ceník, cestu k fotografii a místo pro poznámku. Tabulka Firma je dále obohacena o místo pro uložení IČO a DIČ, jméno firmy a pole jméno a příjmení jsou určena pro iniciále kontaktní osoby. Rozlišení aktivních účtů je umožněno existencí sloupce blocked22 , které nabývá hodnot 0 (nula) pro aktivní účet a 1 pro účet neaktivní23 .
V databázi se nachází ještě další dvě tabulky plnící funkci uchovávání základních údajů o uživateli. Jsou to tabulky Adresa a Telefon. Tabulka Adresa obsahuje id adresy a id majitele, tedy entity, ke které patří. Touto entitou může být buď řemeslník nebo firma. Nepočítáme s touhou zákazníků ukládat více osobních informací, než bude nezbytně nutné, proto neuvažujeme o možnosti uložení adresy k zákazníkovi. V případě, že by více zákazníků projevilo přání se o svou adresu či telefonní číslo podělit, nebude problémem tuto možnost v případě zájmu přidat. Tabulka Adresa dále obsahuje místo pro uložení vlastní adresy, tedy pole pro jméno, příjmení, ulici, číslo popisné a orientační, město, poštovní směrovací číslo a v neposlední řadě také typ adresy. Zde je možné definovat, zdali se jedná o adresu kontaktní či fakturační.
Tabulka Telefon uchovává informace týkající se telefonického kontaktu. Každé telefonní číslo je indexováno a jeho vztah k řemeslníkovi či firmě je zjištěn pomocí atributu id_majitele. Stejně jako v tabulce Adresa i zde je možné definovat typ uloženého kontaktu. Telefonní číslo může být uloženo jako číslo na mobilní telefon, pevná linka, fax či jiné. 22 23
Ang. Blokováno. Účty nejsou ze systému mazány, aby nedošlo ke ztrátě referencí na ně, např. u komentářů.
24
KAPITOLA 3. ANALÝZA SYSTÉMU
Potenciální reference na řemeslníka či firmu mají svou vlastní tabulku Reference, která obsahuje identifikační čísla jednotlivých referencí a uživatelů, ke kterým se dané reference vztahují, stejně jako text vlastní reference. Díky tomu je možné eliminovat záznamy v tabulkách Remeslnik a Firma lišících se pouze v jednom atributu. Pro snadné odlišení při složitějších dotazech začínají id zákazníků na 100000, řemeslníků na 200000, firem na 300000 a konečně první správní účet, tedy administrátor, má id 400000. Z přání zadavatele vznikla tabulka Historie. Jejím cílem je evidovat kdy kdo jaký inzerát navštívil. Pro počet shlédnutí byl ale vytvořen vlastní sloupec v tabulce Inzerat, jelikož jde o často zobrazovanou položku a není třeba zatěžovat server dotazem na součet návštěv inzerátu z tabulky Historie. Je započítáváno pouze jedno shlédnutí za hodinu, aby se zabránilo nepoctivému přidávání shlédnutí například obnovováním stránky. Shlédnutí editorem při schvalování taktéž není počítáno. Do pole id_usr je uloženo id toho, kdo si inzerát prohlédl, tedy hodnota ze sloupce id_zak, id_rem či id_fir24 . Další tabulkou je Inzerat. Je to jedna z klíčových tabulek celého systému Meloucháři. Uchovává id inzerátu i jeho zadavatele. Taktéž v ní najdeme id profese daného inzerátu, kalendáře a adresy. Je zde i místo pro specifikaci dojezdové vzdálenosti, počtu shlédnutí inzerátu, případných poznámek a jeho stavu. Stavy inzerátu jsou přehledně znázorněny na state diagramu, Příloha C, str. 50. Změny libovolného pole inzerátu jsou logovány do tabulky Log spolu s id uživatele, který změny provedl25 . V tabulce Komentar nalezneme komentáře zákazníků k jednotlivým inzerátům. Na stránkáh je zde uchované id osoby, která komentář vytvořila, využito k výpisu jeho/jejího logovacího jména. Po kliknutí na něj pak celého profilu se všemi zadanými kontaktními údaji26 . Tabulky Inzerat-Oblast a Oblast pomáhají specifikovat lokaci, do které inzerát spadá, formou systému oblasti a rodičovské oblasti. Česká republika má id 1 a je rodičovskou oblastí krajů (id 2–15, typ kraj). Kraje jsou rodičovskou oblastí měst (id počínající 16) a zbytek není rezervován. Pro zajímavost: K 1. lednu 2007 byl počet měst v České republice roven 593. Tabulka Kalendar obsahuje data kalendáře konkrétního inzerátu. Den je dělen na tři sekce: dopoledne, odpoledne a večer(atributy po1,po2 a po3) a ke každé této sekci je možno přiřadit status z předpřipraveného výběru. Posledními tabulkami jsou Profese a Obor, které definují profesní zařazení daného inzerátu. Nachází se v nich id oboru a profese stejně jako jejich názvy.
24
Id zákazníka, řemeslníka či firmy, které se nachází v příslušné tabulce. Logování je započato ve chvíli prvního odeslání inzerátu ke schválení editorem či administrátorem. 26 Pouze pro přihlášené uživatele. 25
Kapitola 4
Realizace portálu a tvorba dokumentace V našem případě, tvoření internetových stránek, je potřeba si nejprve vytvořit návrh databáze a grafického prostředí. Obojí vychází ze zadání práce, požadavků, které se chystáme na server klást, a technologií, které jsme si zvolili. Po úspěšném dokončení základního návrhu je možné započít s implementací. Vlaství realizace probíhala převážně v druhém semestru akademického roku 2009/2009, kdy došlo k přepracování původně navrhovaného grafického rozhraní a dotvoření některých tabulek databáze. První semestr byl věnován tvorbě doprovodných stránek bakalářské práce, zřizování serveru a komunikaci se zadavatelem a vedoucím práce.
4.1
Grafické rozhraní
Ukázky uživatelského rozhranní jsou zobrazeny v Příloze D, str. 51. Hlavním motivem GUI je horizontální členění s perzistentním menu v horní části. Dalšími neměnnými prvky jsou logo a Pomocníček Pepa. Do hlavního „okna“ je serverem generován obsah, který si uživatel vyžádal. Ráda bych upozornila na některé grafické prvky, které považuji za dobře provedené. Prvním je již zmiňované perzistentní menu s barevnou změnou při najetí na jeho položky. Barevná kombinace použitá na stránkách byla zvolena v souladu s pravidly pro tvorbu grafického rozhranní. Jedná se o dvě hlavní barvy, světlejší variantu jedné z nich a neutrální šedivou. Nedochází tedy k distrakci uživatele od obsahu stránky. Pro lepší vzhled aplikace bylo použito volně šiřitelných vektorových ikon ze sady Milky[9]. Jedná se o převážně oblé tvary nenásilných barev, které uživateli pomohou rychle rozlišit některé prvky na stránce. Viz například seznam adres a telefonních čísel v profilu řemeslníka či firmy. U telefonních čísel už ani není potřeba uvádět, která ikonka umožní editaci údaje a která jej smaže. Totéž platí pro ikonky indikující typ telefonního čísla: mobilní telefon, domácí (pevná linka)1 . 1
Telefonní číslo dále nabývá hodnot fax a jiné.
25
26
KAPITOLA 4. REALIZACE PORTÁLU A TVORBA DOKUMENTACE
Obrázek 4.1: Nastavení adresy
Vzhledem k cílové skupině uživatelů považuji za vhodně zvolené použití Javascriptu při registraci. Ačkoliv je na pravé straně registračního formuláře u každého pole uvedena jeho požadovaná minimální délka či v případě e-mailové adresy přímo v poli předepsán znak „zavináče“, mnoho uživatelů toho nedbá. Textové upozornění spojené s jasně čitelnou grafikou by mělo eliminovat většinu chybných registrací. Samozřejmostí je pak pamatování si údajů do formuláře již zadaných při přechodu na jinou stránku a zpět. Dokud nedojde k dokončení akce (například registrace uživatele, vložení inzerátu či vložení nového editora administrátorem do systému), jsou již vyplněná pole uložena v kolekci proměnných $HTTP_SESSION_VARS2 .
4.2
Databáze
Návrh databáze se ukázal býti daleko složitější než její tvorba. Pro tu byl využit webový nástroj phpMyAdmin verze 2.11.9.5. Práce s ním je pohodlná a to jak při vytváření databáze, tak při její správě. Nejprve se vytvoří tabulky dle navržené struktury, určí se datový typ a velikost, integritní omezení a primární a cizí klíče týkající se jednotlivých sloupců. Pak je možné databázi naplnit daty. Pro účely testování a uložení do archivu bakalářských prací byla použita fiktivní data. U tabulek obsahujících údaje, které uživatel bude možná chtít smazat (adresa, telefon, inzerát) si můžeme povšimnout přítomnosti polí, která zajišťují jejich nezobrazování v případě 2
Od PHP verze 4 je používán zkrácený zápis $_SESSION.
4.3. TVORBA APLIKACE
27
smazání3 . Tak docílíme toho, že smazané inzeráty budou k dohledání v databázi, ale nebudou uživatele mást svým zobrazováním na stránkách. V případě zaplnění databáze na neúnosnou míru by bylo řešením vytvoření skriptu, který by nezobrazované inzeráty pravidelně zálohoval do sekundární databáze vytvořené k tomuto účel a z primární je mazal.
4.3
Tvorba aplikace
Po vytvoření databáze je možné započít s tvorbou jednotlivých stránek. V následujících řádcích zmiňme několik prvků či zákonitostí, které lze v systému nalézt. V případě, že si stránky prohlíží nepřihlášený uživatel, neuvidí u detailu inzerátu adresu, telefonní číslo či poznámku. U profilu uživatele pak bude pro něj zobrazeno pouze jméno a seznam inzerátů. Tato opatření mají uživatele motivovat k registraci. U registrovaného uživatele je pak logováno kdy a jaký inzerát ten který uživatel navštívil. Dalším prvkem podléhajícím logování je změna libovolného pole inzerátu. Od počátku existence inzerátu, tedy ve chvíli odeslání ke schválení editorem/administrátorem, jsou zaznamenávány změny každého z jeho polí. Zaznamenáváno je taktéž kdo změnu provedl pro účely pozdějšího dohledání. Pokud si detail inzerátu prohlíží registrovaný a přihlášený uživatel, vidí všechny jeho detaily včetně času poslední aktivity a může k němu přidat komentář. Majitel inzerátu4 může upravit některé údaje. Po úpravě nedojde k automatickému zveřejnění, ale inzerát je zařazen do fronty ke shlédnutí editorem a majitel ho vidí v seznamu „inzeráty čekající na schválení“ v sekci „moje inzeráty“ 5 . V případě, že editor neshledá na inzerátu žádné nedostatky, může ho nechat publikovat. V takovém případě dojde ke zveřejnění inzerátu na stránkách a všichni přihlášení uživatelé si ho mohou prohlédnout. Daný inzerát se také od této chvíle zobrazuje majiteli v sekci „zveřejněné nabídky“. Pokud inzerát nedostatky trpí, může editor vybrat některou z předdefinovaných nejčastějších chyb nebo nedostatek popsat svými slovy. V takovém případě se uživateli inzerát objeví v seznamu „inzeráty vrácené k úpravě“ spolu s vybraným důvodem. Editor či administrátor mohou inzerát smazat. Stejná možnost platí i pro jeho majitele. V takovém případě je pak inzerát zobrazen v sekci „zrušené inzeráty“. Účty správců systému6 mají při prohlížení detailu inzerátu aktivní ještě volbu „odpublikovat“. Nachází se zde pro případ, že by kontrolou prošel inzerát obsahující formální nedostatky nebo by bylo třeba z nějakého důvodu zrušit zveřejnění inzerátu. Samozřejmě by bylo možné upravit příslušné hodnoty v databázi, ale v případě většího počtu inzerátů, které by bylo třeba stáhnout z oběhu, by mohlo dojít k chybám, které by narušily stabilitu systému7 . Při nahrávání ceníku jsou podporovány formáty . txt, .pdf, .doc, .docx, .xls, .xlsx programů Word a Excel ze sady Microsoft Office 2003 a 2007. Nebylo zapomenuto ani na formáty volně šiřitelného kancelářského balíku Open Office: .ods programu Open Office Writer, který 3
U adresy a telefonu sloupec visible, u inzerátu z důvodu potřeby rozlišení více stavů sloupec stav. Řemeslník či firma. 5 Stejně tak v případě, že uživatel vytvoří nový inzerát. Snažíme se zachovat co největší kontrolu nad obsahem webu, a proto není možné inzerát zveřejňovat automaticky. Editor či administrátor musí povolit publikaci každého inzerátu. 6 Administrátor či editor. 7 Vše by šlo dohledat v logu, avšak takové hledání není nic příjemného ani jednoduchého. Proto se pro každou akci, u které předpokládáme možnost opakování, snažíme vytvořit formulář. Příkladem budiž zmiňovaný 4
28
KAPITOLA 4. REALIZACE PORTÁLU A TVORBA DOKUMENTACE
je bezplatnou variantou MS Word, a .odt programu Open Office Calc, což je tabulkový procesor ne nepodobný progamu MS Excel. Pro pohodlí uživatelů je umožněno automatické přihlašování realizované pomocí cookies8 . Server vytváří dvě cookies, jednu pro jméno a heslo a jejich platnost je nastavena na jeden měsíc. Pro názvy cookies byly cíleně zvoleny náhodné sekvence znaků, aby se zmenšila možnost zneužití informací z nich získaných.
4.4
Tvorba dokumentace
Psaní tohoto dokumentu probíhalo pomocí systému maker a šablon LATEX9 vystavěným nad značkovacím jazykem zvaným TEX10 . Jako editor byl nejprve použit program TexMaker, ale posléze kvůli komplikacím s kódováním byl vyměněn za rozšířený editor PSPad, který byl konfigurován[10] pro práci se systémem LATEX Normy, kterých se dokument drží, byly čerpány ze stránek katedry[11], konkrétně ze článku zabývajícího se pokyny pro psaní bakalářských prací[12]. Jelikož se jedná o můj první větší dokument v LATEXu, potýkala jsem se při jeho psaní s množstvím drobných problémů vyplývajících z mé neznalosti tohoto systému. Vzhledem k tomu, že nyní tuto práci čtete, mohu říci, že se mi s úspěchem podařilo LATEXové problémy překonat. Za nejobtížnější bych označila práci s obrázky. Zmíněný sázecí program sice disponuje vybavením pro kreslení vektorových obrázků, kreslení něčeho složitějšího však nezvládne, a tak je třeba obrázky vkládat ideálně ve formátu .PNG či .EPS. Vkládání bitmapových obrázků je možné, avšak velmi složité. Zájemce bych ráda odkázala na velmi dobré stránky týkající se LATEXu a to: • Návody týkající se často používaných prvků: http://www.fit.vutbr.cz/ martinek/latex[13] • Stránky Československého sdružení uživatelů LATEXu: http://www.cstug.cz/latex/lm[14] • České stránky o LATEXu: http://www.it.cas.cz/manual/latex[15] • Anglický úvod do LATEXu: http://www.math.harvard.edu/texman[16] Všechny diagramy, které v této dokumentaci naleznete, byly vytvořeny ve vývojovém prostředí Net Beans[17] šířeném pod open source licencí. Bylo jejich tvorbu a prohlížení v tomto prostředí je třeba stažení a doinstalování UML pluginu11 .
8
Anglicky koláček; Jedná se o malé množství dat, které server pošle prohlížeči, který je uloží na počítači uživatele. Při každé další návštěvě téhož serveru pak prohlížeč tato data posílá zpět serveru. 9 Vytvořen pro zjednodušení používání LATEXu. Mnoho uživatelů není odborníky na typografii a díky A L TEXu i oni mohou tvořit profesionálně vypadající dokumenty. Důkazem toho budiž tato bakalářská práce. 10 Správná výslovnost je [ tech] , [ latech] , rozhodně ne [ tek] , [ teks] , [ latek] či [ lateks] , nebo [ leitech] . 11 Instalace pomocí integrovaného správce pluginů: Net Beans – Tools – Plugins – Available Plugins
Kapitola 5
Testování Vzhledem k pravděpodobnému nasazení aplikace do reálného provozu bylo testování nevyhnutelné. Můžeme ho rozdělit do dvou fází popsaných níže.
5.1
Testování programátorkou
V průběhu vývoje byl projekt testován na lokálním serveru, který nastavením odpovídal předpokládaným podmínkám ostrého provozu. Taktéž bylo prováděno testování na odlišně nastaveném školním serveru bd.felk.cvut.cz. Testování na domácím serveru považuji za velmi užitečné. Došlo k odhalení velkého množství chyb a zbytečných řádků kódu a bylo možné pracovat s databází velmi jednoduše a bez prodlev způsobených přetíženou linkou, nedopatřením vypnutým serverem atp. Chyby, které byly při tomto testování odhaleny, spočívaly hlavně v překlepech při psaní kódu či případně neúspěšných pokusech o výpis z databáze či použití CSS.
5.2
Testování uživateli
Testování uživateli bylo vzhledem k cílové skupině více než vhodné. Člověk pracující s internetovými stránkami delší dobu nebo dokonce programátor, který musí být schopen rychle identifikovat některé prvky na stránce bez ohledu na to, zdali je její rozhraní optimalizované nebo ne, již není schopen odhalit některé části, které nezkušeného uživatele zastaví na dlouhou dobu. Na toto téma bylo napsáno mnoho knih (viz. citovaná Nenuťte uživatele přemýšlet[3] od Stevena Kruga), ale ani jejich přečtení není stoprocentní ochranou před tvorbou takovýchto míst v kódu. Proto jsem požádala rodinu a několik známých o otestování Melouchářů. Celkem se na testování podílelo šest osob s různou schopností práce s počítačem a internetem. Při jejich testování nedošlo k odhalení chyb v kódu, ale jejich poznámky byly zakomponovány do stránek a přispěly tak k zpříjemnění pobytu na nich. Podařilo se jim nalézt chybně popsané umístění Pomocníka Pepy a překlep v textovém obsahu stránky. Bylo jimi oceněno grafické zpracování serveru a nedošlo k navržení změn. Pokročilejší uživatelé označili přítomnost Javascriptů kontrolujících údaje při registraci za zbytečné, ale vzhledem k zadání a cílové skupině uživatelů byla tato funkčnost ponechána. Původní návrh serveru počítal s tím, že řemeslník nebude moci přidávat komentáře k vlastním inzerátům. Uživatelé ale zmínili, že by tuto možnost jako řemeslníci ocenili, a proto byla přidána. Vytvořila tak novou komunikační cestu mezi řemeslníky a zákazníky1 . 1
Či případně jinými řemelsníky a firmami.
29
30
KAPITOLA 5. TESTOVÁNÍ
Kapitola 6
Závěr Při práci na tomto serveru jsem si vyzkoušela jaké to je být kodérkou webových stránek. Zadavatel napomohl tomu, aby tato zkušenost byla více jako „ze života“ tím, že tvorbu velké části projektu jako například všech textů a grafických návrhů nechal na mě jako vývojáři. Tento fakt byl spolu s nedostatečnými znalostmi používaných technologií důvodem mnoha změn, které snižovaly efektivitu práce. Po dohodě s vedoucím práce bylo rozhodnuto, že vzhledem k veřejné povaze práce nebudou zdrojové kódy projektu zveřejněny. Spolu s textem bakalářské práce je obdrží oponentka a vedoucí, u kterého budou po vyžádání k nahlédnutí pro zaměstnance a studenty ČVUT. Ráda bych upozornila na fakt, že v době dokončení bakalářské práce není k dispozici profesionální grafická verze Pomocníka Pepy. Vzhledem k tomu, že byl v zadání práce a na stránce je potřeba nějaký prvek pro aktivování nápovědy týkající se dané stránky, jsem ho stvárnila sama. Nejsem ale grafička, a proto prosím omluvte sníženou kvalitu jeho zpracování.
6.1
Co příště lépe
Při příští práci na projektu podobného typu je nutné se zaměřit na důslednou komunikaci se zadavatelem. Bezpodmínečnou nutností je vyžádání si textů, které chce na stránkách publikovat, a alespoň přibližného grafického návrhu. Není problémem návrh vytvořit, ale v případě konzultací jednou za měsíc či méně často, je pak každé odmítnutí velkým zpožděním práce na vlastním kódu serveru. Pro projekt velikosti Melouchářů je databáze MySQL postačující, ukazuje se však, že je poněkud obtížné v ní spravovat velké množství dat. Pokud by měli Meloucháři narůst do datově enormních rozměrů, je prvotním řešením tvorba sekundární databáze a záloha starých údajů. V případě, že by toto řešení nebylo dostačující, bylo by třeba použít jinou databázi, např. PostgreSQL
31
32
6.2
KAPITOLA 6. ZÁVĚR
Budoucnost projektu
V případě, že se podaří aplikaci Meloucháři udělat dobrou reklamu a dát tak uživatelům najevo jeho existenci, je zde velká šance, že se stane velmi navštěvovaným serverem. Byl navrhnut tak, aby využil slabin svých konkurentů a přidal několik vlastních vylepšení. Zadavatel samozřejmě počítá s postupným rozšiřováním a úpravami, které si vyžádá provoz serveru, ale nepočítajíc kosmetické úpravy, měl by současný návrh postačit pro běh na několik prvních měsíců. Na závěr bych ráda poznamenala, že potenciál serveru Meloucháři daleko předčí rozsah, který je možné věnovat bakalářské práci. V případě masového rozšíření přichází ke slovu bezpečnost. Nutností by bylo zamyslet se nad lepším zabezpečením stránek, což spolu s předpokládaným rozšířením schopností serveru vede ke změně jejich struktury. V rámci budoucího vývoje můžeme předpokládat použití vrstev, např. MVC, a také frameworku, který by mohl usnadnit práci při vývoji.
Literatura [1] Wiktionary, chytrý slovník Wikipedie. http://cs.wiktionary.org/wiki/melouch, stav z 6. 6. 2009. [2] Michal NOVOTNÝ. Článek o původu slova melouch. http://www.rozhlas.cz/regina/slova/_zprava/51825, publikováno 23. 10. 2002. [3] Steve KRUG. Web design: Nenuťte uživatele přemýšlet! Computer Press, 2nd edition, 2003. [4] Marek PROKOP. Píšeme pro web. http://interval.cz/serialy/piseme-pro-web, stav z 6. 6. 2009. [5] Wikipedia, článek o Javascriptu, note = http://cs.wikipedia.org/wiki/javascript, stav z 6. 6. 2009, year = ,. [6] Dušan JANOVSKÝ. Stránky zabývající se návody Jak psát web. http://www.jakpsatweb.cz, stav z 6. 6. 2009. [7] World Wide Web Consortium. http://www.w3.org, stav z 6. 6. 2009. [8] Oficiální stránky skriptovacího jazyka PHP. http://www.php.net, stav z 6. 6. 2009. [9] Icon eden - ráj ikonek. http://www.iconeden.com/icon/milky-a-free-vector-iconset.html, 6. 6. 2009.
stav
[10] Konfigurace pspadu pro práci s LaTeXem. http://latex.feec.vutbr.cz/cz/latex/lokalni-instalace/instalace-pspad, stav z 6. 6. 2009. [11] K336 Info. http://info336.felk.cvut.cz, stav z 6. 6. 2009. [12] K336 Info — pokyny pro psaní bakalářských prací. https://info336.felk.cvut.cz/clanek.php?id=504, stav z 6. 6. 2009. [13] David MARTÍNEK. Stránky o LaTeXu. http://www.fit.vutbr.cz/~martinek/latex, stav z 6. 6. 2009. [14] Stránky Československého sdružení uživatelů LaTeXu. http://www.cstug.cz/latex/lm, stav z 6. 6. 2009.
33
z
34
[15] Pavel SOPUCH. Český manuál LaTeXu, 2001. http://www.it.cas.cz/manual/latex, publikováno 20. 1. 2001. [16] L. ANDREEV R. KUHN, R. SCOTT. Anglický úvod do LaTeXu. http://www.math.harvard.edu/texman, stav z 6. 6. 2009. [17] Domácí stránky vývojového prostředí net beans. http://www.netbeans.org, stav z 6. 6. 2009.
LITERATURA
Příloha A
Seznam použitých zkratek SI Softwarové Inženýrství, činnost zahrnující inženýrství, informatiku a management, jejíž cílem je návrh, tvorba a údržba počítačových programů. UML Unified Modeling Language, jazyk používaný ke specifikaci, návrhu, vizualizaci a dokumentaci programových systémů. Umožňuje jak návrh obecných konceptuálních prvků, tak například specifikování konkrétních prvků databázových schémat. WWW World Wide Web, zkráceně web, označení pro aplikace internetového protokolu HTTP. Jedná se o soustavu hypertextových dokumentů, tedy o způsob, pomocí kterého můžeme ony dokumenty publikovat. HTML HyperText Markup Language, značkovací jazyk pro hypertext. Pomocí něj je možné vytvářet internetové stránky. Jde o aplikaci dříve vyvinutého SGML (Standard Generalized Markup Language). XHTML eXtensible HyperText Markup Language, značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí WWW vyvinutý W3C. Původně měl být nástupcem HTML, které stagnovalo. Došlo ale k vytvoření skupiny, která vyvíjí jeho novou verzi. Vývoj XHTML přerušen nebyl a pracuje se na verzi 2.0. CSS Cascading StyleSheet, tabulky kaskádových stylů. Je to jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML či XML navržený standardizační organizací W3C. W3C World Wide Web Consortium, mezinárodní konsorcium, jehož členové společně s veřejností vyvíjejí webové standardy pro World Wide Web. Cílem konsorcia je „Rozvíjet World Wide Web do jeho plného potenciálu vývojem protokolů a směrnic které zajistí dlouhodobý růst Webu“. SQL Structured Query Language, standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích, následovník jazyka SEQUEL vyvinutého v 70. letech 20. století. pc Personal Computer, osobní počítač, elektronické zařízení, které zpracovává data pomocí předem vytvořeného programu. PHP PHP Hypertext Pre-processor, rekurzivní zkratka, skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek. Nejčastěji se začleňuje přímo do struktury jazyka HTML, XHTML či WML, což lze využít při tvorbě webových aplikací. PHP lze použít i k tvorbě konzolových a desktopových aplikací.
35
36
PŘÍLOHA A. SEZNAM POUŽITÝCH ZKRATEK
SW SoftWare, programové vybavení počítače. HW HardWare, komponenty počítače, periferie. Jednoduše řečeno všechno vybavení na které si můžeme sáhnout. IIS Internet Information Services, sada internetových služeb vyvinutá firmou Microsoft k používání se systémem Microsoft Windows. Druhý světově nejpopulárnější webový server po volně šiřitelném Apache HTTP Server. ASP Active Server Pages, skriptovací platforma společnosti Microsoft, primárně určená pro dynamické zpracování webových stránek na straně serveru. Jako programovací jazyky používá VBScript a JScript. GUI Graphic User Interface, grafické uživatelské rozhraní. Umožňuje ovládat počítač pomocí interaktivních grafických prvků jako jsou například tlačítka a posuvníky. txt Zkratka z TeXT, prostý textový soubor. Uchovává sekvenci znaků bez jakéhokoliv formátování nebo struktury. Je možné použít \n čili Enter pro přechod na nový řádek a tím vytvořit odstavce. pdf Portable Document Format, Přenosný Formát dokumentů. Souborový formát vyvinutý firmou Adobe pro ukládání dokumentů nezávisle na softwaru i hardwaru, na kterém byly pořízeny. Soubor typu PDF může obsahovat text i obrázky, přičemž tento formát zajišťuje, že se libovolný dokument na všech zařízeních zobrazí stejně. doc Zkratka z DOCument, ang. dokument. Přípona souboru textových dokumentů programu Microsoft Word 2003. docx Formát založený na XML, přípona souboru textových dokumentů programu Microsoft Word 2007. xls Přípona souboru textových dokumentů programu Microsoft Excel 2003. xlsx Formát založený na XML, přípona souboru textových dokumentů programu Microsoft Excel 2007. ods Open Document Spreadsheet, přípona souborů vytvořených v programu Open Office Calc. odt Open Document Text, přípona souborů vytvořených v programu Open Office Writer. XML eXtensible Markup Language, česky rozšiřitelný značkovací jazyk. Obecný značkovací jazyk, který byl vyvinut a standardizován konsorciem W3C. Umožňuje snadné vytváření konkrétních značkovacích jazyků pro různé účely a široké spektrum různých typů dat. MVC Model, View, Controller. Jedná se o softwarovou architekturu, která rozděluje datový model aplikace, uživatelské rozhraní a řídicí logiku do tří nezávislých vrstev tak, že modifikace některé z nich má nulový vliv na ostatní.
Příloha B
Databáze projektu Meloucháři B.1
Seznam tabulek a atributů v systému
Na následujících stranách naleznete přehled tabulek a příslušných atributů s jejich významem. Byl vytvořen pro snadnou orientaci budoucích správců v systému. Zakaznik Tabulka uchovávající informace o zákaznících. id_zak Unikátní identifikační číslo zákazníka. Slouží k identifikaci v rámci systému. login_zak Login zákazníka. heslo Heslo patřící k zákaznickému účtu. jmeno Jméno zákazníka. prijmeni Příjmení zákazníka. aktivace Čas, kdy byl zákaznický účet aktivován. Po registraci obsahuje aktivační kód, který je formou odkazu odeslán uživateli v mailu. Po kliknutí na odkaz dojde k vložení aktuálního času do pole aktivace a odblokování účtu. registrace Čas, kdy došlo k vytvoření účtu. aktivita Čas, kdy byl uživatel naposledy aktivní. email Emailový adresa zákazníka. icq ICQ číslo zákazníka. blocked Informace o tom, zdali je účet blokován nebo není.
37
38
PŘÍLOHA B. DATABÁZE PROJEKTU MELOUCHÁŘI
Historie Slouží ke statistickým účelům. Eviduje počet a id navštívených inzerátů. Pouze pro uživatele s aktivovanými účty. id_hist Unikátní identifikační číslo záznamu v historii návštěv. id_usr Unikátní identifikační číslo zákazníka. Slouží k identifikaci v rámci systému. id_inz Unikátní identifikační číslo inzerátu řemeslníka. Slouží k identifikaci v rámci systému. cas Čas shlédnutí daného inzerátu uživatelem. Remeslnik Tabulka uchovávající informace o řemeslnících. id_rem Unikátní identifikační číslo řemeslníka. Slouží k identifikaci v rámci systému. login_rem Login řemeslníka. heslo Heslo patřící k řemeslnickému účtu. jmeno Jméno řemeslníka. prijmeni Příjmení řemeslníka. foto Fotografie řemeslníka. email Emailový adresa řemeslníka. icq ICQ číslo řemeslníka. web Link na případnou webovou prezentaci řemeslníka. cenik Soubor obsahující ceny řemeslníka. aktivace Čas, kdy byl řemeslnický účet aktivován. Po registraci obsahuje aktivační kód, který je formou odkazu odeslán uživateli v mailu. Po kliknutí na odkaz dojde k vložení aktuálního času do pole aktivace a odblokování účtu. registrace Čas, kdy došlo k vytvoření účtu. aktivita Čas, kdy byl uživatel naposledy aktivní. pozn Zákazníkova poznámka.
B.1. SEZNAM TABULEK A ATRIBUTŮ V SYSTÉMU
39
blocked Informace o tom, zdali je účet blokován nebo není. Firma Tabulka uchovávající informace o firmách. id_fir Unikátní identifikační číslo firmy. Slouží k identifikaci v rámci systému. ico Identifikační číslo organizace. dic Dańové identifikační číslo firmy. login_fir Login firmy. heslo Heslo patřící k firemnímu účtu. nazev Jméno firmy. jmeno_kontakt Jméno kontaktní osoby. prijmeni_kontakt Příjmení kontaktní osoby. foto Fotografie připojená k firemnímu účtu. email Emailový adresa firmy. icq ICQ číslo firmy. web Link na případnou webovou prezentaci firmy. cenik Soubor obsahující ceny firmy. aktivace Čas, kdy byl firemní účet aktivován. Po registraci obsahuje aktivační kód, který je formou odkazu odeslán uživateli v mailu. Po kliknutí na odkaz dojde k vložení aktuálního času do pole aktivace a odblokování účtu. registrace Čas, kdy došlo k vytvoření účtu. aktivita Čas, kdy byl firemní účet naposledy aktivní. pozn Poznámka týkající se firmy. blocked Informace o tom, zdali je účet blokován nebo není. Reference Obsahuje případné reference na řemeslníka/firmu.
40
PŘÍLOHA B. DATABÁZE PROJEKTU MELOUCHÁŘI
id_ref Unikátní identifikační číslo reference. Slouží k identifikaci v rámci systému. id_maj Unikátní identifikační číslo uživatele, ke kterému reference patří. Může jím být řemeslník nebo firma. Id slouží k identifikaci v rámci systému. text Vlastní text reference. cas Čas, kdy byla reference přidána do systému. visible Určuje, zdali se jedná o aktivní či neaktivní (smazanou) referenci. Nabývá hodnot 1 pro aktivní a 0 pro smazanou referenci. Telefon Uchovává telefonické kontakty řemeslníka a firmy. id_tel Unikátní identifikační číslo telefonního kontaktu. Slouží k identifikaci v rámci systému. id_majitel Unikátní identifikační číslo řemeslníka či firmy. Slouží k identifikaci v rámci systému. typ Definuje typ telefonního čísla. Hodnoty: mobilní telefon, pevná linka, fax a jiné. cislo Uvádí hodnotu čísla. visible Určuje, zdali se jedná o aktivní či neaktivní (smazané) číslo. Nabývá hodnot 1 pro aktivní a 0 pro smazané číslo. Adresa Uchovává adresy řemeslníka a firmy. id_adr Unikátní identifikační číslo telefonního kontaktu. Slouží k identifikaci v rámci systému. id_majitel Unikátní identifikační číslo řemeslníka či firmy. Slouží k identifikaci v rámci systému. adr_jmeno Jméno osoby/firmy, ke které se váže daná adresa. adr_prijmeni Příjmení osoby/firmy, ke které se váže daná adresa. adr_ul Ulice. adr_cp Číslo popisné. adr_mesto Město.
B.1. SEZNAM TABULEK A ATRIBUTŮ V SYSTÉMU
41
adr_psc PSČ typ Typ adresy. Hodnoty: kontaktní, fakturační. visible Určuje, zdali se jedná o aktivní či neaktivní (smazanou) adresu. Nabývá hodnot 1 pro aktivní a 0 pro smazanou adresu. Inzerat Uchovává informace o všech inzerátech evidovaných v systému. id_inz Unikátní identifikační číslo inzerátu. Slouží k identifikaci v rámci systému. id_majitel Unikátní identifikační číslo řemeslníka/firmy. Slouží k identifikaci v rámci systému. id_prof Unikátní identifikační číslo profese. Slouží k identifikaci v rámci systému. id_kal Unikátní identifikační číslo kalendáře. Slouží k identifikaci v rámci systému. id_adr Unikátní identifikační číslo adresy. Slouží k identifikaci v rámci systému. dojezd Značí počet kilometrů, které je řemeslník ochoten za prací dojet. pocet_prohl Počet prohlédnutí inzerátu zákazníky. pozn Případné poznámky řemeslníka k inzerátu. stav Stav inzerátu (). vytvoren Čas vytvoření inzerátu. verdikt Místo pro uložení verdiktu vyneseného nad inzerátem editorem. Uloží se sem poznámka, kterou editor při schvalování k inzerátu napíše. Log Obsahuje log změn v inzerátu. id_log Unikátní identifikační číslo záznamu logu. Slouží k identifikaci v rámci systému. id_inz Unikátní identifikační číslo inzerátu. Slouží k identifikaci v rámci systému. id_zmenil Unikátní identifikační číslo osoby, která provedla změnu v některém z polí inzerátu. Slouží k identifikaci v rámci systému. pole Specifikace místa změny.
42
PŘÍLOHA B. DATABÁZE PROJEKTU MELOUCHÁŘI
zmena Text vlastní změny. cas Čas kdy ke změně došlo. Kalendar Obsahuje informace o časových možnostech řemeslníka ve vztahu k určitému inzerátu. id_kal Unikátní identifikační číslo kalendáře. Slouží k identifikaci v rámci systému. id_maj Unikátní identifikační číslo majitele inzerátu. Majitelem může být řemeslník či firma. Slouží k identifikaci v rámci systému. jmeno Jméno kalendáře. po1 Pole pro zaznamenání řemeslníkovy schopnosti práce v pondělí dopoledne. Nabývá hodnot 1, 2 a 3, které jsou na stránce dekódovány na mám volno, nemám volno a dle domluvy. Toto platí pro všechny zbývající sloupce tabulky Kalendar. po2 Pole pro zaznamenání řemeslníkovy schopnosti práce v pondělí odpoledne. po3 Pole pro zaznamenání řemeslníkovy schopnosti práce v pondělí večer. ut1 Pole pro zaznamenání řemeslníkovy schopnosti práce v úterý dopoledne. ut2 Pole pro zaznamenání řemeslníkovy schopnosti práce v úterý odpoledne. ut3 Pole pro zaznamenání řemeslníkovy schopnosti práce v úterý večer. st1 Pole pro zaznamenání řemeslníkovy schopnosti práce ve středu dopoledne. st2 Pole pro zaznamenání řemeslníkovy schopnosti práce ve středu odpoledne. st3 Pole pro zaznamenání řemeslníkovy schopnosti práce ve středu večer. ct1 Pole pro zaznamenání řemeslníkovy schopnosti práce ve čtvrtek dopoledne. ct2 Pole pro zaznamenání řemeslníkovy schopnosti práce ve čtvrtek odpoledne. ct3 Pole pro zaznamenání řemeslníkovy schopnosti práce ve čtvrtek večer. pa1 Pole pro zaznamenání řemeslníkovy schopnosti práce v pátek dopoledne. pa2 Pole pro zaznamenání řemeslníkovy schopnosti práce v pátek odpoledne.
B.1. SEZNAM TABULEK A ATRIBUTŮ V SYSTÉMU
43
pa3 Pole pro zaznamenání řemeslníkovy schopnosti práce v pátek večer. so1 Pole pro zaznamenání řemeslníkovy schopnosti práce v sobotu dopoledne. so2 Pole pro zaznamenání řemeslníkovy schopnosti práce v sobotu odpoledne. so3 Pole pro zaznamenání řemeslníkovy schopnosti práce v sobotu večer. ne1 Pole pro zaznamenání řemeslníkovy schopnosti práce v neděli dopoledne. ne2 Pole pro zaznamenání řemeslníkovy schopnosti práce v neděli odpoledne. ne3 Pole pro zaznamenání řemeslníkovy schopnosti práce v neděli večer. Inzerat-Oblast Spojující článek mezi inzerátem a oblastí/tmi, do které/ých spadá. id Unikátní identifikační číslo vztahu inzerát-oblast. Slouží k identifikaci v rámci systému. id_inz Unikátní identifikační číslo inzerátu. Slouží k identifikaci v rámci systému. id_obl Unikátní identifikační číslo oblasti. Slouží k identifikaci v rámci systému. Oblast Obsahuje informace o časových možnostech řemeslníka ve vztahu k určitému inzerátu. id_obl Unikátní identifikační číslo inzerátu. Slouží k identifikaci v rámci systému. id_rod Unikátní identifikační číslo nadřazené oblasti. Slouží k identifikaci v rámci systému. Př. Plzeňský kraj má id 12, všechna města v Plzeňském kraji budou v tomto sloupci obsahovat 12. jmeno Jméno dané oblasti. Komentar Uchovává informace o všech komentářích evidovaných v systému. id_kom Unikátní identifikační číslo komentáře. Slouží k identifikaci v rámci systému. id_inz Unikátní identifikační číslo inzerátu. Slouží k identifikaci v rámci systému. id_autor Unikátní identifikační číslo autora komentáře. Slouží k identifikaci v rámci systému.
44
PŘÍLOHA B. DATABÁZE PROJEKTU MELOUCHÁŘI
cas Čas, kdy byl komentář zadán. text Obsah komentáře. Profese Obsahuje seznam všech profesé evidovaných v systému. id_prof Unikátní identifikační číslo profese. Slouží k identifikaci v rámci systému. id_obor Unikátní identifikační číslo oboru. Slouží k identifikaci v rámci systému. Př. obor: Výroba ze dřeva, profese: Truhlářství. nazev_prof Název dané profese. Obor Obsahuje seznam všech oborů, které jsou evidované v systému. id_obor Unikátní identifikační číslo oboru. Slouží k identifikaci v rámci systému. nazev_obor Název daného oboru. Sprava Tabulka uchovávající informace o správcovských účtech. id_ved Unikátní identifikační číslo člena realizačního týmu. Slouží k identifikaci v rámci systému. login_ved Login člena realizačního týmu. heslo Heslo patřící k správcovskému účtu. jmeno Jméno správce. prijmeni Příjmení správce. aktivace Čas, kdy byl správcovský účet aktivován. registrace Čas, kdy došlo k vytvoření účtu. aktivita Čas, kdy byl správce naposledy aktivní. email Emailový adresa správce. icq ICQ číslo správce. pozn Správcova poznámka.
B.2. STRUKTURA DATABÁZE
45
prava Informace o právech účtu (Pro administrátorský hodnota 1, pro editorský hodnota 2). blocked Informace o tom, zdali je účet blokován nebo není.
B.2
Struktura databáze
Diagram znázorňující tabulky, jejich atributy a vazby v databázi.
Obrázek B.1: Diagram struktury databáze, první část
46
PŘÍLOHA B. DATABÁZE PROJEKTU MELOUCHÁŘI
Obrázek B.2: Diagram struktury databáze, druhá část
Příloha C
Diagramy C.1
Use Case
Diagram znázorňující uživatelské role v systému a jejich možné akce.
C.2
Activity diagram
Diagram aktivit. Zobrazuje průběh tvorby inzerátu přes jeho úpravy až po smazání.
C.3
State diagram
Diagram stavů. Znázorňuje možné stavy inzerátu.
47
48
PŘÍLOHA C. DIAGRAMY
Obrázek C.1: Use case diagram
C.3. STATE DIAGRAM
49
Obrázek C.2: Activity diagram
50
PŘÍLOHA C. DIAGRAMY
Obrázek C.3: State diagram
Příloha D
Ukázky uživatelského rozhraní
51
52
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Obrázek D.1: Úvodní stránka
53
Obrázek D.2: Registrace - výběr typu účtu a zadávání údajů
54
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Obrázek D.3: Registrace - výběr typu účtu a zadávání údajů
55
Obrázek D.4: Registrace - potvrzení a přihlášení
56
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Obrázek D.5: Sekce nápověda
57
Obrázek D.6: Správa referencí v řemeslnickém/firemním účtu
58
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Obrázek D.7: Správa inzerátů řemeslníka/firmy
59
Obrázek D.8: Nastavení účtu řemeslníka
60
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Obrázek D.9: Seznam výsledků vyhledávání
61
Obrázek D.10: Prohlížení detailu inzerátu
62
PŘÍLOHA D. UKÁZKY UŽIVATELSKÉHO ROZHRANÍ
Příloha E
Obsah přiloženého DVD
Obrázek E.1: Obsah přiloženého DVD
63