eské vysoké u£ení technické v Praze Fakulta elektrotechnická Katedra po£íta£·
Bakalá°ská práce
Online softwarová burza Jan Strádal
Vedoucí práce:
Ing. Martin Bloch, CSc.
Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalá°ský
Obor: Výpo£etní technika
8. ledna 2010
iv
v
Pod¥kování Rád bych pod¥koval Ing. Blochovi za ujmutí se vedení mé bakalá°ské práce a také koleg·m a p°átel·m, kte°í mi pomáhali s testováním a odla¤ováním chyb.
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 8. 1. 2010
.............................................................
viii
Abstract The subject of this thesis is the project Open Burza - web based application which should oer improvement opportunities to both beginning and advanced coders and developers. Those can sign on and create their own account whereunder is possible to oer programmer products and other services and even get a job in IT. On the other side stand users registred as submitters - they can put up a post for needed software products or occupation in their companies. One of the main goals of this project is the support of the open source software so it can be competitive to the commercial products.
Abstrakt P°edm¥tem této práce je projekt Open Burza - webová aplikace, která by m¥la nabídnout moºnosti uplnatn¥ní za£ínajícím i profesionálním programátor·m a vývojá°·m. Ti se mohou do tohoto systému zaregistrovat a vytvo°it si tak ú£et, pod nímº budou nabízet své programátorské produkty £i jiné sluºby a t°eba i získat zam¥stnání v oboru IT. Na druhé stran¥ uºivatelé registrovaní pod rolí zadavatele mohou vypisovat výb¥rová °ízení na poptávané produkty i pozice ve vlastních rmách. Jedním z hlavních cíl· projektu je podpora otev°eného software a vytvá°ení tak konkurence komer£ním softwarovým produkt·m.
ix
x
Obsah 1 Úvod 1.1
Motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Popis problému, specikace cíle 2.1
Specikace poºadavk· . . . . . . . . . . . . . . . . . . . . . 2.1.1 Poºadavky na technické zázemí . . . . . . . . . . . . 2.1.2 Obecné poºadavky na vytvá°ený systém Open Burzy 2.1.3 Poºadavky na správu uºivatelského ú£tu . . . . . . .
3 Analýza a návrh °e²ení 3.1
3.2 3.3 3.4
3.5
3.6
Existující °e²ení . . . . . . . . . . . . . . . . . . . . . 3.1.1 Webtrh (http://www.webtrh.cz) . . . . . . . 3.1.2 Tvorba shopu (http://www.tvorba-shopu.cz/) Analýza aktuálního zastoupení webových prohlíºe£· Specikace d·leºitých pojm· . . . . . . . . . . . . . P°ehled pouºitých technologií . . . . . . . . . . . . . 3.4.1 Serverová £ást . . . . . . . . . . . . . . . . . . 3.4.2 Klientská £ást . . . . . . . . . . . . . . . . . . Návrh architektury . . . . . . . . . . . . . . . . . . . 3.5.1 Seznam ú£astník· . . . . . . . . . . . . . . . 3.5.2 P°ípady uºití . . . . . . . . . . . . . . . . . . 3.5.3 Struktura uºivatelských prol· . . . . . . . . 3.5.4 Komunikace mezi uºivateli . . . . . . . . . . . 3.5.5 Stránkování, vyhledávání a ltrování . . . . . 3.5.6 Diagram t°íd . . . . . . . . . . . . . . . . . . Gracký návrh webu . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
1 1
3 4 4 5 5
7
7 8 8 9 11 12 12 13 15 15 16 19 20 20 21 22
4 Implementace
25
5 Testování
31
4.1
5.1 5.2
Serverová £ást aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.1 Formulá°e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.2 Práce se soubory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
P°ístupové údaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Pr·b¥h testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 xi
xii
OBSAH
6 Záv¥r
33
Literatura
35
A Seznam pouºitých zkratek
37
B Instala£ní a uºivatelská p°íru£ka
39
C Dal²í Use case diagramy
41
D Adresá°ová struktura
45
6.1 6.2 6.3
Spln¥né zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Rozsah práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 P°ínos práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
B.1 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 B.2 Rady pro uºivatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Seznam obrázk· 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 3.14 3.15
http://www.download.com . . . . . . . http://www.stahuj.cz . . . . . . . . . . http://www.webtrh.cz . . . . . . . . . http://www.tvorba-shopu.cz/ . . . . . Zastoupení prohlíºe£· ve sv¥t¥ 2009 . . Model komponent . . . . . . . . . . . . Ukázka z CMS Heblo . . . . . . . . . . Ukázka z CMS Heblo . . . . . . . . . . Users diagram . . . . . . . . . . . . . . Use case: Správa sluºeb °e²itele . . . . Use case: Správa uºivatelského prolu Class diagram . . . . . . . . . . . . . . Hlavní logo Open Burzy . . . . . . . . Hlavní navigace . . . . . . . . . . . . . Vedlej²í navigace . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
7 8 8 9 10 12 14 14 16 17 18 21 22 23 23
4.1 4.2 4.3
Zobrazení chybových hlá²ek u formulá°e . . . . . . . . . . . . . . . . . . . . . 27 Ukázka vypln¥ného ltra£ního a vyhledávacího formulá°e . . . . . . . . . . . . 28 Práce se soubory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1
Bugtracker Mantis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
C.1 Use case: Neregistrovaný uºivatel . . . . . . . . . . . . . . . . . . . . . . . . . 41 C.2 Use case: Správa sluºeb zadavatele . . . . . . . . . . . . . . . . . . . . . . . . 42 C.3 Use case: Správa po²tovní schránky . . . . . . . . . . . . . . . . . . . . . . . . 43 D.1 Adresá°ová struktura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
xiii
xiv
SEZNAM OBRÁZK
Kapitola 1
Úvod Cílem této bakalá°ské práce je vytvo°it webovou aplikaci, která bude slouºit jako prost°edník pro komunikaci a interakci mezi programátory a zadavateli softwarových produkt· - systém jsem nazval Open Burza. Tato webová aplikace toho samoz°ejm¥ bude poskytovat více, ale základní my²lenkou je podpora otev°eného software, tedy takových programátorských produkt·, které autor poskytne pod jednou z 'otev°ených' licencí.
1.1 Motivace S tímto tématem jsem se setkal jiº d°íve b¥hem vysoko²kolského studia, kdy byl zadán podobný projekt, ale nikdy nebyl po°ádn¥ realizován. My²lenka tohoto projektu v²ak ve mn¥ p°etrvala a protoºe jsem ji povaºoval za zajímavou i uºite£nou, rozhodl jsem se ji realizovat v rámci bakalá°ské práce. V¥°ím, ºe tento projekt neskon£í 'v ²uplíku', p°estoºe v tuto chvíli nejspí² nemá ambice dosahovat ohromujících £ísel v náv²t¥vnosti. V rozsahu (který je ov²em nemalý), v jakém byla zpracována v rámci bakalá°ské práce, je Open Burza velmi nad¥jným stavebním kamenem pro budoucí roz²i°ování funk£nosti i pokrytí potencionálních sluºeb, které je moºno v oboru IT nabízet a poskytovat.
1
2
KAPITOLA 1.
ÚVOD
Kapitola 2
Popis problému, specikace cíle Jak bylo °e£eno vý²e, p°edm¥tem této práce je vytvo°ení systému, který bude v základu pracovat obdobn¥ jako jakákoliv burza. Bude umoº¬ovat uºivatel·m v závislosti na jejich roli bu¤ nabízet nebo poptávat produkty a sluºby z oblasti informa£ních technologií. Protoºe vytvo°ení tohoto projektu by m¥lo mimo jiné podporovat tvorbu otev°eného software, je nutné obeznámit se samotnou specikací produkt· s otev°enými licencemi, která se m·ºe pouze zdánliv¥ zdát jednoduchá. Protoºe má v²ak tento druh software dlouhou historii, vyvinuly se dal²í poddruhy, které se li²í podmínkami uºívání a ²í°ení, a je tedy nutné je v²echny správn¥ specikovat. P°i analýze poºadavk· na funkcionalitu vytvá°eného systému jsem do²el k záv¥ru, ºe rozsah práce p°ekra£uje doporu£enou dobu 200 hodin (podle ECTS [1]), proto budou primárn¥ navrºeny a implementovány pouze základní plánované funkce a v p°ípad¥, ºe bude zbývat £as, tak se na vzniklý základ budou 'nabalovat' dal²í £ásti plánovaného °e²ení. Protoºe je v rámci tohoto projektu vytvá°ena webová aplikace, musí být kladen velký d·raz na 'user-friendly' prost°edí. V p°ípad¥ ºe p°ijde náhodný náv²t¥vník na tento web, musí být u£in¥no v²e pro to, aby zde co nejdéle z·stal a p°edev²ím, aby se zaregistroval a za£al systém naplno vyuºívat. Toho se dá docílit vhodn¥ zvoleným grackým návrhem webu a p°edev²ím nabízenými funkcemi, které musí na uºivatele p°íjemn¥ zap·sobit. Zkrátka je nutné vºít se do pozice potencionálního uºivatele a ud¥lat v²e pro jeho získání. Jedná o rozsáhlej²í projekt - z toho d·vodu bude jeho realizace provád¥na s jistým °ádem £áste£n¥ °ízeným UML modelama (budou vytvo°eny n¥které diagramy) a bude dodrºována jistá posloupnost realizovaných £ástí tak, aby se nap°íklad návrh struktury aplikace nemusel zp¥tn¥ upravovat v pr·b¥hu programování funk£ních prvk·. D·leºitou £ástí °e²ení bude i vhodný návrh databáze, který bude klí£ový pro celou strukturu webové stránky. Tato databáze musí být konzistentní a co nejvíce zabezpe£ená vzhledem k obsahu s jakým budou uºivatelé pracovat. V záv¥re£ných fázích projektu musí dojít k rozsáhlému testování funk£nosti v²ech naprogramovaných prvk·, a to i na jiných platformách a p°edev²ím v jiných prohlíºe£ích - zde se jedná hlavn¥ o odlad¥ní nekompatibility kódu CSS (sou£ástí analýzy by m¥l být sou£asný stav pouºívání jednotlivých prohlíºe£·, aby bylo známo, na které se zam¥°it). Za ú£elem testování by m¥lo být vyuºito v²ech dostupných prost°edk·, aby bylo zaji²t¥no odstran¥ní v²ech chyb - z t¥chto d·vod· bude nutné uvést webovou aplikaci do testovacího provozu, s tím je spojené zaji²t¥ní hostujícího serveru a domény. 3
4
KAPITOLA 2.
POPIS PROBLÉMU, SPECIFIKACE CÍLE
Zde je tedy shrnutí hlavních cíl· tohoto projektu v bodech:
• Seznámení se se specikací otev°eného software • Navrºení struktury webové aplikace • Navrºení databáze • Vytvo°ení vhodného grackého návrhu pro tuto webovou aplikaci • Nakódování grackého návrhu • Naprogramování ve²kerých funk£ních prvk· stanovených v návrhu struktury • D·kladné testování webové aplikace za ú£elem odlad¥ní v²ech potencionálních bug· Jak bylo °e£eno, po°adí t¥chto bod· by m¥lo být p°i vytvá°ení oné webové aplikace dodrºeno. V pr·b¥hu celé realizace bude vytvá°ena projektová dokumentace v podob¥ UML diagram· a popis· jednotlivých £ástí °e²ení - tato dokumentace bude sou£ástí této ti²t¥né práce.
2.1 Specikace poºadavk· Následuje seznam poºadavk·, které by m¥ly být p°i realizaci této práce spln¥ny. Jsou °azeny prioritn¥, takºe v p°ípad¥, ºe nebude z £asových d·vod· moºné splnit v²echny, ubírat by se m¥lo zezadu. V¥°ím v²ak, ºe v £ase vy£len¥ném na vytvo°ení této práce, bude realizováno v²e tak, jak jsem naplánoval. Poºadavky jsem rozd¥lil do t°í skupin (hierarchicky)
• Poºadavky na technické zázemí • Obecné poºadavky na vytvá°ený systém Open Burzy • Poºadavky na správu uºivatelského ú£tu
2.1.1 Poºadavky na technické zázemí Vytvá°ení webové aplikace, která komunikuje s databází (dále jen DB), s sebou p°iná²í nutnost p°ípravy technického zázemí pro samotnou tvorbu. Protoºe funk£ní prvky aplikace budou implementovány v jazyku PHP, který bude p°istupovat do DB pomocí jazyka SQL, je nutná instalace p°íslu²ného serveru a databáze. A to jak na lokálním disku po£íta£e, kde bude systém vytvá°en, tak i na ve°ejném serveru, kde bude systém testován. (obr. 2.1)
2.1.
SPECIFIKACE POADAVK
5
2.1.2 Obecné poºadavky na vytvá°ený systém Open Burzy Zde jsou obecné poºadavky na systém, jeho strukturu a funk£nost.
Uºivatelské ú£ty
Návrh struktury a samotná implementace uºivatelských ú£t· bude klí£ovou £ástí celé práce, je nutné umoºnit uºivatel·m systému co nejv¥t²í volnost ve správ¥ svého prolu tak, aby se cítil na Open Burze co nejpohodln¥ji, podrobn¥j²í specikace poºadavk· na uºivatelské ú£ty je níºe.
Správa sluºeb
Kaºdý uºivatel bude mít (v závislosti na roli v jaké je registrován v systému) v rámci svého prolu moºnost vytvá°ení nabídek £i poptávek a dal²ích sluºeb, které bude Open Burza uºivateli poskytovat. Správa t¥chto sluºeb musí být p°ehledná a p°edev²ím funk£ní tak, aby v²em umoº¬ovala kompletní nadvládu nad svými ú£ty.
Formulá°e
Dá se °íci, ºe celý systém - jeho správa i prohlíºení - bude postaven na internetových formulá°ích. Tyto formulá°e musí být navrºeny tak, aby poskytovaly rychlé, p°esné a p°edev²ím bezpe£né komunikování s informacemi a daty v DB. Musí být zaji²t¥no pat°i£né o²et°ení nap°íklad proti op¥tovnému odeslání stejného formulá°e a také kontrola vypln¥ní povinných poloºek a správnosti typu poloºek.
Výpisy a seznamy
Protoºe se jedná o projekt burzy, p°edpokládá se, ºe £asem zde vznikne velké mnoºství nabídek i poptávek. Je tedy pot°eba zajistit p°ehledné a co nejvíce detailní seznamy a umoºnit uºivateli velmi snadné ltrování i vyhledávání ve zobrazených výsledcích.
2.1.3 Poºadavky na správu uºivatelského ú£tu Jak jiº bylo °e£eno vý²e, je nutné navrhnout inteligentní strukturu uºivatelského ú£tu a zajistit co nejvíce moºných operací tak, aby m¥l uºivatel pocit komfortnosti. Vytvo°ení ú£tu bude p°edcházet registrace, v ní by m¥ly být obsaºeny následující poloºky:
• Uºivatelské jméno a heslo • Jméno a p°íjmení • Role, pod kterou se uºivatel registruje • Kompletní adresa • Kontakty na uºivatele (e-mail, telefon, atd.) • Krátký odstavec obsahující info o uºivateli M¥lo by být jasn¥ vymezené, které poloºky jsou povinné a které nepovinné a také by m¥lo být uºivateli umoºn¥no uchovat n¥které osobní informace v soukromí (v databázi v²ak musí být zaneseny kv·li zaji²t¥ní transparentnosti celého systému).
6
KAPITOLA 2.
POPIS PROBLÉMU, SPECIFIKACE CÍLE
Kapitola 3
Analýza a návrh °e²ení Tato kapitola se bude zabývat analýzou a návrhem v²ech realizovaných poºadavk· na webovou aplikaci, která je p°edm¥tem této práce. Bude obsahovat tyto £ásti:
• Analýzu existujících °e²ení • Analýza aktuálního zastoupení webových prohlíºe£· • Specikace pojmu otev°ený software • P°ehled pouºitých technologií • Datový model • P°ípady uºití
3.1 Existující °e²ení Sou£ástí analýzy byl i pr·zkum trhu - p°i n¥m jsem narazil na velké mnoºství web·, které poskytují (nebo spí²e shromaº¤ují) softwarové produkty a umoº¬ují je náv²t¥vník·m webu stahovat. Produkty jsou sem vkládány pod v²emoºnými licencemi - tedy i t¥mi komer£ními.
Obrázek 3.1: http://www.download.com
7
8
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.2: http://www.stahuj.cz
Tyto weby ov²em neumoº¬ují jakoukoliv poptávku, slouºí £ist¥ jako úloºi²t¥ software pro jeho dal²í ²í°ení. Mezi nejznám¥j²í weby tohoto druhu pat°í ve sv¥t¥ nejnav²t¥vovan¥j²í portál http://www.download.com (obr. 3.1) a jeho £eská obdoba http://www.stahuj.cz (obr. 3.2). Jak bylo °e£eno, tyto weby se ale tomu mému podobají pouze v nabízení softwarových produkt·. Hledal jsem tedy dál a poda°ilo se mi objevit následující dva weby, které jsou více £i mén¥ podobné Open Burze:
3.1.1 Webtrh (http://www.webtrh.cz) Tento web je asi nejvíce podobný mému projektu, je zde moºnost nabízet i poptávat softwarové produkty (obr. 3.3) a stejn¥ jako na Open Burze také nabízet £i shán¥t zam¥stnání. Celý web je vytvo°en skute£n¥ komplexn¥ - co do ²í°e má je²t¥ Open Burza co dohán¥t, nicmén¥ nap°íklad oproti tomuto webu jsem se snaºil vytvá°et sv·j projekt mnohem p°ehledn¥j²í a gracky více vyhovující lidskému oku. Komplexnost na Webtrhu je zde realizována na úkor p°ehlednosti a náv²t¥vník webu je po spat°ení domovské stránky zahlcen obrovským mnoºství sekcí, odkaz· a v·bec informací, coº je myslím spí²e na ²kodu.
3.1.2 Tvorba shopu (http://www.tvorba-shopu.cz/) Druhý web není podobný co do struktury v·bec, nicmén¥ po stránce obsahu je Open Burze p°íbuzný. Celý systém je zde koncipován jako diskuzní fórum (obr. 3.4), na n¥mº mohou uºivatelé nabízet i shán¥t softwarové aplikace. Tento web je mnohem jednodu²²í, coº plyne
Obrázek 3.3: http://www.webtrh.cz
3.2.
ANALÝZA AKTUÁLNÍHO ZASTOUPENÍ WEBOVÝCH PROHLÍE
9
Obrázek 3.4: http://www.tvorba-shopu.cz/
uº ze samotného pojetí webu jako diskuze. Myslím, ºe jsem ho svým projektem p°ekonal práv¥ díky mnohem lépe organizované struktu°e systému a také uºivatelskými ú£ty, na které jsem kladl velký d·raz a které nabízejí ²iroké moºnosti správy.
3.2 Analýza aktuálního zastoupení webových prohlíºe£· Vytvá°ím webovou aplikaci, je tedy d·leºité si uv¥domit, ºe existuje více webových prohlíºe£·, ve kterých bude tato aplikace otev°ena. N¥které prvky CSS (kaskádové styly pouºívané pro naformátování vzhledu webové stránky) se chovají r·zn¥ v závislosti na prohlíºe£i, který uºivatel pouºívá - je to dáno rozdílnou interpretací t¥chto prvk·. Na²t¥stí existují metody, jak nakódovat layout stránky tak, aby vypadal ve v²ech prohlíºe£ích úpln¥ nebo aspon p°ibliºn¥ stejn¥. Takºe jedním z úkol· by m¥lo být zji²t¥ní aktuálního zastoupení daných prohlíºe£·, vybrání t¥ch nejpouºívan¥j²ích a pro tyto optimalizovat webovou aplikaci. T¥chto statistik jsem na internetu na²el n¥kolik r·zných, které se více £i mén¥ shodovali ve výsledcích. Na obrázku 3.5 je tedy znázorn¥no zastoupení pro rok 2009 [2]. Na tomto míst¥ by se hodilo uvést zajímavost - v lo¬ském roce (2009) totiº poprvé do²lo k tomu, ºe prohlíºe£ Mozilla Firefox p°ekonal doposud neporazitelný Internet Explorer 6.0. V souvislosti s hlavní my²lenkou této práce - totiº podpora otev°eného software - je tato skute£nost oko°en¥na o fakt, ºe Mozilla je prohlíºe£ vydávaný pod licencí Open Source a tedy pat°í mezi otev°ený software (Internet Explorer je ryze komer£ní produkt z dílny Microsoftu). Nicmén¥ i tak vévodí Microsoft se svým prohlíºe£em v²em pr·zkum·m, nebo´ p°es 60% uºivatel· je rozd¥leno mezi v²echny jeho verze a Mozilla je pouºíváná z 'pouhých' 25%. Zvlá²t¥ pro kodéry a vývojá°e webových stránek je toto smutná skute£nost, nebo´ odla¤ování jejich produkt· práv¥ pro IE je mnohdy no£ní m·ra. Z výsledk· této analýzy tedy vyplývá, ºe hlavními prohlíºe£i, pro které bude optimalizována moje webová aplikace jsou oba zmín¥né produkty a navíc si je²t¥ dovolím p°idat dal²í dva - první, který v tomto pr·zkumu dopadl ²patn¥, nicmén¥ podle £eských statistik si stojí mnohem lépe a o £eské uºivatele v této práci p°edev²ím jde. Jedná se o prohlíºe£ Opera - já osobn¥ ho navíc povaºuji za nejlep²í sou£asný, p°estoºe jeho zastoupení je pod 10%. A £tvrtým prohlíºe£em bude nedávno zve°ejn¥ný projekt Googlu - Google Chrome. Tento produkt má ur£it¥ díky své jednoduchosti a kvalitnímu zázemí této významné rmy velkou budoucnost.
10
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.5: Zastoupení prohlíºe£· ve sv¥t¥ 2009
Zde tedy je²t¥ záv¥re£né shrnutí:
• Internet Explorer • Mozilla Firefox • Opera • Google Chrome Ostatní minoritní produkty nebudu brát p°íli² v úvahu, nicmén¥ díky tomu, ºe budu web optimalizovat pro ony £ty°i vý²e zmín¥né prohlíºe£e, m¥lo by být v²e optimalizováno i pro v²echny ostatní. Hlavní rozdíly v interpretaci CSS jsou predev²ím v jiº n¥kolikrát zmín¥ném Internet Exploreru - Opera, Google Chrome, £i nap°. Safari se chovají velmi podobn¥ jako Mozilla Firefox.
3.3.
SPECIFIKACE DLEITÝCH POJM
11
3.3 Specikace d·leºitých pojm· Protoºe v tomto projektu pracuji s pojmy jako Otev°ený software nebo nap°. Public Domain licence, je nutné tyto pojmy specikovat a vzhledem k jejich d·leºitosti tak £iním v této £ásti práce a nikoliv pouze v podob¥ p°ílohy. P°i vyhledávání specikace t¥chto termín· jsem £erpal p°edev²ím z wikipedie a jedná se p°eváºn¥ o mírn¥ p°eformulované citace s uvedenými zdroji.
Otev°ený software Otev°ený software je po£íta£ový software s otev°eným zdrojovým kódem. Otev°enost zde znamená jak technickou dostupnost kódu, tak legální dostupnost - licenci software, která umoº¬uje, p°i dodrºení jistých podmínek, uºivatel·m zdrojový kód vyuºívat, nap°íklad prohlíºet a upravovat. Existuje n¥kolik druh· licencí, zde je jejich vysv¥tlení:
Freeware Freeware je software, který je distribuován bezplatn¥ nebo za symbolickou cenu (nap°. nan£ní dar na podporu dal²ího vývoje, v²echno je v²ak dobrovolné). Autor si u freeware zpravidla ponechává autorská práva, nap°íklad nedovoluje program upravovat (zdrojový kód z·stává skrytý) nebo omezuje pouºití zdarma jen pro nekomer£ní £i osobní pot°ebu. Freeware software se t¥mito podmínkami li²í open source software. [3]
Open Source Programy typu Open Source (n¥kdy také Svobodný software) jsou k dispozici v£etn¥ svého zdrojového kódu. Tento kód lze upravovat, ale nelze ho vyuºívat pro tvorbu zisku. Je v²ak moºné vybírat poplatky odpovídající náklad·m na vývoj a distribuce t¥chto program·. P°esné vymezení v²ech pravidel je komplikované a hlavn¥ dlouhé (viz http://www.gnu.cz/). Typickým p°íkladem Open Source licence je licence GNU, pod kterou je ²í°en nap°íklad opera£ní systém Linux, gracký program GIMP, £i kancelá°ský balík OpenOce org. [4]
Public Domain Public domain je ekvivalentem volného díla ve smyslu ustanovení 28 odst. 1 autorského zákona, tedy díla, u kterého uplynula doba trvání majetkových práv a jeº tak m·ºe kaºdý bez dal²ího voln¥ uºít. U po£íta£ového programu ozna£ovaného jako public domain se tak p°edpokládá, ºe m·ºe být v²emi osobami voln¥ uºíván (i pro komer£ní ú£ely), a to v£etn¥ provád¥ní zm¥n tohoto po£íta£ového programu. Skute£nost, ºe je ur£itý po£íta£ový program ozna£ován jako public domain v²ak nemusí v praxi znamenat, ºe je taktéº dostupný jeho zdrojový kód. Tento po£íta£ový program tak m·ºe být p°ípadným koncovým uºivatel·m k dispozici pouze ve form¥ spustitelného souboru. [5]
Shareware Shareware je ozna£ení pro software chrán¥ný autorským právem, který je moºné voln¥ distribuovat. Uºivatel má moºnost software po ur£itou dobu zkou²et, zda mu vyhovuje nebo ne. Pokud ho ale nadále pouºívá, je povinen se °ídit podle autorovy licence a zpravidla zaplatit cenu programu nebo se t°eba jen registrovat. Voln¥ ²í°ený shareware má obvykle zabudovaná omezení (£asová trial, funk£ní crippleware, omezující uºivatel·v komfort adware, nagware). Pak mluvíme o demoverzi. Heslo nebo softwarový klí£ pro p°ístup k pln¥ funk£ní verzi obdrºí uºivatel po zaplacení. N¥které programy z kategorie shareware plnohodnotn¥ fungují i po vypr²ení testovacího období. [6]
12
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.6: Model komponent
3.4 P°ehled pouºitých technologií Celá webová aplikace byla vyvíjena primárn¥ na lokálním serveru (localhost), av²ak pro pot°eby záv¥re£ného testování byla nahrána i na ve°ejný server - ve²keré p°ístupové údaje (a´ uº k databázi, ftp serveru nebo administra£nímu zázemí systému, na kterém je aplikace postavena) jsou uvedeny v kapitole Testování.
3.4.1 Serverová £ást V p°ípad¥ práce na lokálním po£íta£i bylo nejprve pot°eba nainstalovat technologie pot°ebné k vývoji a testování:
• Server Apache 2.2 • Databázový server MySQL 5.0.51 • Programovací jazyk PHP 5 a s ním spojené nástroje Tyto t°i technologie (n¥kdy také nazývané jako triáda) je moºné instalovat jak odd¥len¥ tak i v podob¥ velkého balíku v²ech pot°ebných komponent. Server Apache je vlastn¥ platforma, na které probíhá komunikace jazyka PHP s databází MySQL.
MySQL
Je více druh· databázových serveru (MSSQL, PostgreSQL, Oracle, ...), nicmén¥ jsem zvolil tento z n¥kolika d·vod·. Zaprvé v n¥m mám nejvíce zku²eností, dále je kompletn¥ zdarma a kone£n¥ umoº¬uje velmi jednoduchou a p°ehlednou správu databáze pomocí velmi výkoného nástroje - phpMyAdminu. V této webové aplikaci je moºné obsluhovat databázi v podstat¥ s minimální znalostí jazyka SQL (jazyk pro obsluhu DB - vytvá°ení a úpravy tabulek, vkládání, mazání a vybírání °ádk·, atd.) - v²e je ovládáno prostým klikáním my²í. Tím samoz°ejm¥ ne°íkám, ºe by byl problém obsluhovat DB nap°. pomocí p°íkazové °ádky, nicmén¥ pro£ nevyuºít ²ikovného nástroje pro usnadn¥ní práce.
PHP
3.4.
PEHLED POUITÝCH TECHNOLOGIÍ
13
Programovací jazyk PHP je dle mého nejideáln¥j²í nástroj pro tvorbu dynamických webových aplikací. Je velmi snadné ho za£lenit do jazyka HTML (jazyk, ve kterém je nakódována statická £ást webové aplikace) a v²echny skripty jsou provád¥ny na stran¥ serveru, takºe k uºivateli se dostávají aº jejich výsledky. Syntaxe jazyka PHP je inspirována programovacím jazykem C a to byl pro m¥ dal²í d·vod, pro£ jej zvolit - v jazyku C a C++ mám bohaté zku²enosti. Existují i jiné moºnosti p°i výb¥ru jazyka pro implementaci dynamické £ásti webu po php je asi nejoblíbenej²í jazyk Java, který se vyuºívá nejen k programování klasických softwarových produkt·, ale práv¥ i k vytvá°ení sloºitých webových aplikací, nap°. herních server·, burzovních systém· a jiných podobných web·. V tomto jazyce mám v²ak minimální znalosti a proto nep°ipadal v úvahu. Z dal²ích jmenuji snad uº jen relativn¥ nový programovací jazyk Ruby, který se pomocí platformy Rails snaºí konkurovat ob¥ma vý²e zmín¥ným jazyk·m. Má úsilí o co nejv¥t²í zjednodu²ení programování tak, aby psaní zdrojového kódu simulovalo reálný jazyk.
Ruby sice zachovává klasické konstrukce a struktury programování, ale zp·sobem, kterým by si mohl získat p°edev²ím za£ínající programátory díky velice snadnému pochopení syntaxe jazyka. Moje symptatie (a myslím, ºe je to názor v¥t²iny PHP programátor·) si v²ak Ruby nezískal - i proto jsem se nakonec rozhodl pro PHP. V p°ípad¥ práce na testovacím provozu aplikace, který je provád¥n na ve°ejném serveru, nebylo nutné nic instalovat - v¥t²ina server· má triádu zprovozn¥nou jiº p°i rozb¥hnutí serveru.
3.4.2 Klientská £ást Moje webová aplikace je vyvíjena jako XHTML 1.0 Strict validní [7]. Ov¥°ení této validnosti je popsáno v kapitole 5 - Testování. Celý web je postaven na redak£ním systému Heblo. Tento CMS (content management system - systém na správu obsahu) je oproti jiným, t°eba i komer£n¥ nabízeným produkt·m velice jednoduchý - zd·raz¬uji ºe se nijak nepodílí na dynamické £ásti mojí webové aplikace, která tvo°í 95% celkové práce. Jediné, v £em usnad¬uje práci je fakt, ºe do mnou vytvo°ené ²ablony pro Open Burzu (nakódovaný gracký návrh) vkládá na mnou ur£ené místo p°íslu²né skripty (taktéº mnou ur£ené). Reáln¥ p°iná²í CMS Heblo £ty°i výhody:
• Zásadní zp°ehledn¥ní struktury webu • Moºnost p°ístupu ke kódu skrze rozhraní p°ímo v prohlíºe£i • Generování uºivatelsky 'pohledných' URL adres • Moºnosti snadné správy webové aplikace i pro mén¥ zku²enné uºivatele Zp°ehledn¥ní v²ak usnad¬uje práci pouze vývojá°ovi, který má tak lep²í p°ehled o umíst¥ní svých skript· (zvlá²t¥ to ocení p°i velkém mnoºství php kódu rozd¥leném do spousty men²ích soubor· - coº je i moje situace v p°ípad¥ Open Burzy). Koncový uºivatel - tedy náv²t¥vník webu - by v·bec nepoznal rozdíl, kdyby byla aplikace vystav¥na bez jakéhokoliv CMS.
14
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.7: Ukázka z CMS Heblo
P°ístup do struktury webu skrze webové rozhraní uº jsem mnohokrát ocenil v p°ípadech, kdy m¥ p°i vývoji napadlo n¥jaké vylep²ení £i jsem byl na dálku upozorn¥n na chybu, ale v danou chvíli jsem nem¥l p°ístup k po£íta£i. Díky CMS jsem v t¥chto situacích mohl upravovat n¥které prvky a funkce ze svého mobilního telefonu, ze kterého bych t¥ºko komunikoval s FTP serverem. Systém Heblo, ostatn¥ jako nejspí² v²echny redak£ní systémy, umí pro v²echny podtránky webové aplikace vygenerovat 'p¥kné' URL adresy. Tyto adresy vytvá°í z názvu podstránky (který v CMS navolím) tak, ºe odstraní ve²kerou diakritiku a speciální znaky (+,?,!,apod.) a ponechaná slova spojí v jeden °et¥zec odd¥lený poml£kami. Vznikne tak URL adresa, která je snadno a rychle £itelná a umoº¬uje tak lep²í orientaci pro náv²t¥vníka webu. Jedním z d·vodu vystav¥ní Open Burzy na redak£ním systému byl i fakt, ºe tento systém by se jednou mohl aplikovat i na jiné produkty £i úpln¥ jiné oblasti neº IT. Z toho d·vodu je p°edpokládáno, ºe by jednou mohl systém Open Burzy spravovat £lov¥k nep°íli² zku²enný ve tvorb¥ webových stránek a práv¥ jemu by m¥l redak£ní systém usnadnit ºivot.
Obrázek 3.8: Ukázka z CMS Heblo
3.5.
NÁVRH ARCHITEKTURY
15
3.5 Návrh architektury V této kapitole budou navrºeny základní stavební kameny celé aplikace - bude se v zásad¥ jednat o datový model v£etn¥ n¥kolika p°iloºených UML diagram·.
3.5.1 Seznam ú£astník· Uºivatelé systému Open Burzy se dají rozd¥lit na nejvy²²í úrovni na t°i skupiny:
• Administrátor • Registrovaný uºivatel • Neregistrovaný uºivatel Administrátor je správce celé aplikace, vzhledem k plánované maximální automatizaci systému by m¥la pln¥ posta£it jedna osoba, je v²ak moºné, ºe v budoucnu dojde k roz²í°ení po£tu administrátor· z d·vodu zvy²ující se náv²t¥vnosti. Úkolem administrátora jsou pravidelné revize funk£nosti systému, záloha dat z databáze a p°ípadné odstra¬ování chyb. Dále je moºná komunikace s ostatními ú£astníky, pouze v²ak za ú£elem podání ur£ité informace £i rady ve smyslu helpdesku (nem¥la by být °e£ o v¥cech týkajících se výb¥rových °ízení, apod. - p°edev²ím kv·li ochran¥ spravedlivého výb¥ru). Administrátor má také mimo jiné moºnost kontroly nad IP adresami v²ech ú£astník· Open Burzy, a tudíº m·ºe v p°ípad¥ jakýchkoliv problém· n¥které uºivatele blokovat a mazat jim ú£ty. Neregistrovaní uºivatelé jsou v zásad¥ náhodní kolemjdoucí, kte°í se prost°ednictvím n¥jakého backlinku (zp¥tný odkaz) nebo doporu£ení dostanou na Open Burzu. Práva t¥chto uºivatel· jsou zna£n¥ omezená a dala by se shrnout jedním slovem: read-only. Neregistrovaný uºivatel se m·ºe jakkoliv pohybovat po webu, prohlíºet si seznamy nabídek i poptávek, v²emoºn¥ vyhledávat i ltrovat výsledky, m·ºe si pro£ítat diskuze jak v hlavním fóru tak i v diskuzích u jednotlivých produkt·. Tím v²ak vý£et jeho moºností kon£í. Dá se °íci, ºe neregistrovaný uºivatel nem·ºe provád¥t jakékoliv interakce se samotným systémem a databází. Na úvodní stránce celého webu by m¥lo být na viditelném míst¥ popsáno, jaké výhody danému uºivateli registrace p°inese. Bude-li to vhodn¥ provedeno, je velká pravd¥podobnost, ºe se poda°í získat nového ú£astního Open Burzy. V p°ípad¥ ºe tedy dojde na registraci uºivatele, je mu systémem (v p°ípad¥ úsp¥²ného vypln¥ní formulá°e) vytvo°en ú£et. D·leºitou poloºkou registrace je Role - na základ¥ hodnoty tohoto pole m·ºeme registrované uºivatele dále d¥lit na:
• e²itele • Zadavatele P°edpokládá se, ºe uºivatelé registrovaní pod rolí °e²itele budou pravdepodobn¥ programáto°i a vývojá°i. T¥m totiº bude Open Burza nabízet moºnosti p°ivýd¥lku v podob¥
16
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.9: Users diagram
pen¥z inkasovaných za úsp¥²n¥ nabízené produkty a také za úsp¥²n¥ odvedené práce na projektech, které jsou vypisovány zadavateli. e²itelé se tedy mohou hlásit do výb¥rových °ízení vypsaných na konkrétní zakázky i na pozice v softwarových rmách. Dále si budou moci vyplnit svoje kvalika£ní proly a vypsat si ºádosti o zam¥stnání. Naproti tomu zadavatelé, jak jiº bylo °e£eno, budou vypisovat výb¥rová °ízení na zakázky - produkty, které nap°. pot°ebují do rmy, ale nemají dost nan£ních prost°edk· na zaplacení drahých licencí komer£ních produkt·. Také budou moci nabízet volná místa ve svých rmách nebo si rovnou vybírat z °ad °e²itel· a sami je kontaktovat. Dal²í drobností, kterou bude Open Burza zadavatel·m umoº¬ovat bude hodnocení °e²itel· - nap°. v p°ípad¥ dob°e odvedené práce na vypsané zakázce nebo jako prosté ocen¥ní p°ínosu daného uºivatele.
3.5.2 P°ípady uºití P°ípady uºití (Use Case) byly navrhovány p°ed samotným za£átkem implementace - dá se °íci, ºe jsem se vºil do role p°íchozího uºivatele a p°edstavoval si, jaké bude mít moºnosti, a pomocí t¥chto diagram· jsem ty moºnosti realizoval. Use case jsou koncipovány tak, aby podávaly p°edstavu o rozsahu projektu a v tomto sm¥ru byly i pro m¥ velmi uºite£né. V této fázi návrhu jsem se prozatím nezabýval konkrétními technologiemi, snaºil jsem se pomocí p°irozeného jazyka co nejv¥rn¥ji znázornit provád¥né akce. Pro p°edstavu zde uvádím dva takové diagramy a dal²í je moºno nalézt v p°íloze C UML diagramy.
3.5.
NÁVRH ARCHITEKTURY
17
Obrázek 3.10: Use case: Správa sluºeb °e²itele
Správa sluºeb °e²itele •
Vyplnit kvalika£ní prol: °e²itel si m·ºe vyplnit tento prol, v n¥mº budou uve-
deny základní znalosti a dovednosti v oblasti IT, v samotném systému to nebude plnit ºádnou úlohu - pouze informativní. Zadavatelé se budou moci podívat, co konkrétní °e²itel umí.
Poptávat zam¥stnání:
•
°e²itel bude moc vyplnit formulá°, v n¥mº zadá základní parametry hledané pozice.
•
Nabídnout produkt: °e²itel bude moci nabídnout sv·j produkt, a´ uº se bude jednat
•
Spravovat nabízené produkty: samoz°ejm¥ bude mít °e²itel moºnost spravovat své nabízené produkty v£etn¥ jejich mazání
o klasickou softwarovou aplikaci nebo nap°. o gracké dílo. O tento produkt bude moc projevit zájem jakýkoliv uºivatel Open Burzy.
18
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Obrázek 3.11: Use case: Správa uºivatelského prolu
Správa uºivatelského prolu •
Editace prolu:
•
Zm¥na hesla: uºivatel si bude moc kdykoliv zm¥nit heslo.
•
Upload portrétu: kaºdý uºivatel bude mít moºnost náhrát do svého prolu portrét.
•
Správa po²tovní schránky:
kaºdý uºivatel bude moci editovat v²echny poloºky vypln¥né p°i registraci vyjma Role uºivatele na Open Burze a také p°ihla²ovacího jména.
Tento portrét bude moci být fotograe uºivatele, logo rmy nebo jakýkoliv jiný reprezentativní obrázek. uºivatel bude moci spravovat vzkazy ve své po²tovní schránce - viz. Use case diagram v p°íloze C.
3.5.
NÁVRH ARCHITEKTURY
19
3.5.3 Struktura uºivatelských prol· Kaºdý uºivatel bude mít vytvo°ený vlastní uºivatelský prol, ve kterém budou v základu vypln¥ny informace zadané p°i registraci. Tento prol by m¥l být realizován líbiv¥ - uºivatel by se na n¥m m¥l cítit dob°e. Koneckonc· u spousty lidí se objevuje pot°eba socializovaní se - ne, ºe bych Open Burzou cht¥l konkurovat sociálním sítím typu Facebook, ale ur£it¥ není od v¥ci i na takovém portálu, jakým bude moje aplikace poskytnout uºivatel·m pocit £lena sociální sít¥. Jak jiº bylo nazna£eno v p°edchozí sekci, kaºdý zaregitrovaný uºivatel bude mít moºnost spravovat sv·j prol. Po p°ihlá²ení se mu zobrazí nabídka správy, ve které budou £ty°i poloºky pro v²echny spole£né a potom dal²í £ty°i, jejichº obsah se bude li²it v závislosti na roli, pod jakou je uºivatel v systému registrován. Spole£né poloºky budou:
• Editace prolu • Zm¥na hesla • Upload portrétu • Správa po²tovní schránky Dal²í poloºky pro e²itele:
• Kvalika£ní prol • Poptávka po zam¥stnání • Nabídka produktu • Správa nabízených produkt· Dal²í poloºky pro Zadavatele:
• Vypsání výb¥rového °ízení na konkrétní produkt • Správa poptávaných produkt· • Vypsání výb¥rového °ízení na zam¥stnance • Správa nabízených pozic V p°ípad¥, ºe uºivatel provede jakoukoliv zm¥nu v t¥chto poloºkách, bude tato zm¥na zobrazena v jeho prolu ostatním uºivatel·m (nap°íklad zadavatel bude mít v prolu seznam v²ech vypsaných °ízení, °e²itelé tam budou mít zobrazené kvalika£ní proly, apod.). Pokud tedy prol £erstv¥ po registraci do systému obsahuje pouze n¥kolik údaj· o registrované osob¥, po del²ím p·sobení na Open Burze zde m·ºe být pom¥rn¥ rozsáhlý vý£et aktivit daného uºivatele.
20
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
3.5.4 Komunikace mezi uºivateli D·leºitou £ástí realizace tohoto projektu je zamyslet se nad moºnostmi komunikace mezi v²emi ú£astníky Open Burzy. Nabízí se klasická cesta - totiº diskuzní fóra. To je asi neobvyklej²í zp·sob na v²ech podobných webových aplikacích, av²ak po úvaze jsem do²el k záv¥ru, ºe systém by m¥l umoº¬ovat i soukromé vzkazy, které si budou moci uºivatelé posílat (v p°ede²lých sekcích uº to bylo n¥kolikrát nazna£eno). Tyto vzkazy budou viditelné pouze autorovi a adresátovi vzkazu, a budou se v nich tedy moci °e²it nap°íklad podmínky vytvá°ení produkt· a jejich licencí, bude se zde moci smlouvat o cen¥, termínu vyhotovení a podobn¥. Tento systém po²ty by m¥l minimáln¥ umoº¬ovat následující (viz. Use case diagram v p°íloze C):
• Napsání nového vzkazu jakémukoliv uºivateli na Open Burze • Zaslání odpov¥di na p°íchozí zprávu • Snadný p°ehled v²ech vzkaz· a moºnost jejich pohodlného pro£ítání • Vymazaní konkrétního vzkazu Samoz°ejm¥ klasická diskuzní fóra ur£it¥ nemohu zavrhnout a proto budou implementována také. P°edstava je taková, ºe bude vytvo°eno jedno hlavní diskuzní fórum, které bude roz£len¥né do kategorií, a potom budou existovat malé diskuze u produkt·, kde budou moci uºivatelé diskutovat nap°. nad specikací daného produktu, nad jeho funk£ností, apod. Jak jiº bylo °e£eno - neregistrovaní uºivatelé budou moci diskuze pouze pro£ítat, nikoliv do nich p°ispívat. P°estoºe to nebývá zvykem, rozhodl jsem se pro takovouto koncepci, aby motivace nového uºivatele zaregistrovat se byla co nejv¥t²í.
3.5.5 Stránkování, vyhledávání a ltrování Dá se °íci, ºe celé webové aplikaci bude vévodit n¥kolik velmi obsáhlých seznam·, a´ uº se bude jednak o vý£et v²ech nabízených £i poptávaných produkt· nebo o seznam v²ech registrovaných uºivatel·. Vºiju-li se do pozice £lov¥ka, který nap°. pot°ebuje najít produkt pouze s ur£itou specikací (licence, cena, atd.), ur£it¥ narazím na zásadní problém - jak takovýto produkt najít mezi tisíci jinými? S touto otázkou tedy vystupuje dal²í z funk£ních poºadavk·, který je ov²em nemén¥ d·leºitý neº v²echny p°edchozí (ne-li d·leºit¥j²í) - zajistit p°ehledný výpis dat z databáze a umoºnit uºivatel·m pohodlné ltrování a vyhledávání v t¥chto datech. P°ehledné vypisování bude zaji²t¥no systémem stránkování - v závislosti na typu seznamu bude zvolen vhodný po£et vypisovaných prvk· na stránku a zbytek bude ukryt na dal²ích stránkách. Filtrování a vyhledávání bude nutné zajistit vhodn¥ nakongurovanými a p°edev²ím dokonale odlad¥nými formulá°i. Pro komfort uºivatele zkrátka musí být u£in¥no v²echno pot°ebné.
3.5.
NÁVRH ARCHITEKTURY
21
Obrázek 3.12: Class diagram
3.5.6 Diagram t°íd Na záv¥r této £ásti uvedu diagram t°íd, který £áste£n¥ shrnuje doposud uvedené skute£nosti. Tento model znázor¬uje pouze základní jádro celé webové aplikace - diagram, který by obsáhnul celou ²í°i systému Open Burzy by nejspí²e byl velmi velký. Nicmén¥ na tomto obrázku jsou p°edstaveny nejd·leºitej²í subjekty celé aplikace. Protoºe v¥t²ina atribut· u daných t°íd uº byla v pr·b¥hu analýzy a návrhu postihnuta, vysv¥tlím zde pouze n¥které d·leºité poloºky:
•
Osoba: zde by bylo dobré jiº nyní rozhodnout, které poloºky budou povinné a které
nepovinné. Vzhledem k tomu, ºe Open Burza bude systém, v n¥mº se bude obchodovat s produkty a sluºbami, bude nutné zajistit co nejv¥t²í transparentnost. Proto jsem se rozhodl, ºe povinnými poloºkami budou jméno a p°íjmení, celá adresa a e-mailová
22
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
adresa. P°irozen¥ bude uºivatel·m umoºn¥no skrytí t¥chto poloºek p°ed ostatními náv²t¥vníky.
•
e²itel a zadavatel: atribut 'activity' bude vyjad°ovat míru aktivnosti (a v p°ípad¥
•
Nabídka a poptávka: atribut 'id' je unikátní identikátor daného produktu £i sluºby a atribut 'userid' je identikátor uºivatele, který je autorem daného artiklu.
°e²itele i kvality) daného uºivatele. O moºnosti zadavatel· hodnotit °e²itele bylo °e£eno jiº vý²e.
Tento diagram t°íd byl vytvo°en je²t¥ p°ed zapo£etím samotné implementace systému, tudíº databázový model se od tohoto t°ídního mírn¥ odli²uje, nicmén¥ my²lenka z·stává stejná. Nap°íklad pro Výb¥rové °ízení jsem p·vodn¥ plánoval samostatnou tabulku, ale p°i realizaci jsem zjistil, ºe si bohat¥ vysta£ím se dv¥ma p°idanými sloupci k tabulkám pro poptávané produkty a nabízené pozice.
3.6 Gracký návrh webu Tato £ást by spí²e pat°ila do kapitoly realizace, protoºe se v²ak uº z názvu samotného jedná o návrh, umístil jsem ji sem. P°ístup k vytvá°ení grackého návrhu se r·zní - n¥kte°í vývojá°i preferují nejprve naprogramování dynamické £ásti i statické kostry webu, a poté teprve vytvo°ení a nasazení grackého návrhu na v podstat¥ jiº hotový web. Jiní realizují opa£ný postup - nejprve vytvo°ení grackého návrhu s tím, ºe uº ov²em musí být známo rozvrºení prvk· na stránce, po£et poloºek v navigaci, apod. Já jsem se p°iklonil ke druhé variant¥, nebo´ analýzu a návrh webu jsem m¥l jiº hotový a proto mi nic nebránilo vytvo°it denitivní gracký návrh layoutu. Jako barevné téma jsem zvolil modrou barvu v r·zných odstínech v kombinaci s bílou a ²edou - m·j osobní dojem je takový, ºe modrá barva je uklid¬ující, p°íjemn¥ p·sobí na o£i a dobrým dopl¬kem k ní je práv¥ ²edá, která m·ºe vytvá°et stíny, podbarvovat písmo, atd. P°i navrhování graky jsem se °ídil pravidlem 'v jednoduchosti je krása' - snaºil jsem se layout vytvo°it velice skromným av²ak vkusným zp·sobem a to se myslím povedlo. Ov²emºe to ale nebylo na úkor obsahu webové aplikace
Obrázek 3.13: Hlavní logo Open Burzy
3.6.
GRAFICKÝ NÁVRH WEBU
23
Obrázek 3.14: Hlavní navigace
D·leºitou sou£ástí grackého návrhu je logo. To musí být nápadité, m¥lo by na první pohled upoutat pozornost p°íchozího náv²t¥vníka. Myslím, ºe se mi poda°ilo vytvo°it logo (obr. 3.13), které je poutavé, dob°e zapadá do zbytku layoutu a p°esto je relativn¥ skromné. P°edstavy o navigaci jsem m¥l také pom¥rn¥ jasné - v záhlaví webu bude hlavní menu. To bude mít práv¥ £ty°i poloºky (po£et se nebude m¥nit ani v pr·behu dal²ího vývoje projektu), jejichº význam myslím není nutné vysv¥tlovat: Home, Nabídky, Poptávky a Fórum. Vpravo bude sidebar, tedy postranní sloupec s dal²ími ovládacími prvky. Bude se zde nacházet vedlej²í navigace, která bude jakkoliv roz²i°itelná o dal²í poloºky. V rámci rozsahu této práce jsem zde vytvo°il £ty°i poloºky: Registrace, Seznam uºivatel·, Otev°ený software a Kontakt.
Obrázek 3.15: Vedlej²í navigace Význam prvních dvou poloºek je vcelku jasný. V záloºce Otev°ený software je podobný obsah jako v kapitole 3.3 této práce. Jedná se o specikaci pojm·, které by m¥li uºivatelé Open Burzy znát. Poslední poloºka - Kontakt - obsahuje jak jiº název napovídá kontaktní mailové adresy na správce systému.
24
KAPITOLA 3.
ANALÝZA A NÁVRH EENÍ
Kapitola 4
Implementace Struktura Open Burzy by m¥la být patrná díky podrobné analýze a návrhu °e²ení z p°edchozí kapitoly. V této kapitole budu v¥novat pozornost pouze t¥m nejd·leºit¥j²ím prvk·m, které byly implementovány. Vºdy bude uveden název souboru, ve kterém se nachází popisovaný skript, a adresá°ová struktura projektu je popsána v p°íloze D. Vyhledání p°íslu²ného souboru by tedy nem¥l být problém.
4.1 Serverová £ást aplikace Tato £ást se sestává ze v²ech PHP skript·, které zaji²´ují vnit°ní komunikaci aplikace s databází, ve v¥t²in¥ p°ípad· se jedná o rozsáhlou a propracovanou obsluhu formulá°·. V²echny tyto skripty jsou v souborech ve sloºce scripts (viz p°íloha D - adresá°ová struktura).
4.1.1 Formulá°e Jak jiº bylo °e£eno, celý systém je v podstat¥ postaven na internetových formulá°ích, nebo´ tyto jsou prost°edkem komunikace koncového uºivatele s databází. P°ijde-li na Open Burzu nový uºivatel, první formulá°, kterého si v²imne je ten p°ihla²ovací, nicmén¥ d·leºit¥j²í pro n¥j je formulá° v záloºce Registrace. Dal²ími formulá°i na webu jsou ty, které zaji²´ují vytvo°ení poptávek £i nabídek a p°irozen¥ ty, které umoº¬ují tyto vytvo°ené poloºky editovat. I pouhé tla£ítko, kterým se °e²itel m·ºe p°ihlásit do výb¥rového °ízení, je formulá°. Zkrátka s dob°e fungujícími formulá°i celý systém Open Burzy stojí a padá. Jakým zp·sobem je tedy zaji²´ována jejich bezpe£nost? Mluvíme-li o bezpe£nosti formulá°e, máme na mysli p°edev²ím o²et°ení vstupních hodnot zaprvé ve smyslu správnosti typu vkládaných dat a zadruhé ve smyslu existence v²ech povinných poloºek.
O²et°ování: Existují dv¥ nejpouºívan¥j²í moºnosti o²et°ování formulá°· - javascriptem a p°ímo php kódem. První moºnost je £asto vyuºívána a funguje tak, ºe nap°íklad ponecháme-li nevypln¥nou povinnou poloºku, vysko£í p°i odesílání formulá°e Alert okénko, které ohlásí chybu a zabrání odeslání. 25
26
KAPITOLA 4.
IMPLEMENTACE
Toto je pravda ú£inný systém, ale já na n¥m vidím dva nedostatky - první je skute£nost, ºe vysko£ení okénka naru²uje jakési ucelené vnímání webu jako poklidného html prost°edí (toto je £ist¥ m·j osobní názor - dle mého by se i vysoce dynamické weby m¥ly realizovat tak, aby na koncového uºivatele p·sobily staticky). Druhý zásadn¥j²í nedostatek je fakt, ºe p°estoºe drtivá v¥t²ina uºivatel· má ve svém prohlíºe£i povolený javascript, stále se najdou tací, kte°í to tak nemají. Pravda - n¥kdo by mohl °íct, ºe kv·li jednomu procentu potencionálních náv²t¥vník· si nemusí d¥lat starosti. Pro£ to ale d¥lat takto, kdyº mohu zcela jednodu²e o²et°it formulá° pomocí php kódu p°ímo p°i jeho zpracovávání? A to se stejnou ú£inností a daleko v¥t²í elegancí. Je to sice na úkor n¥kolika °ádek kódu navíc, ale pro spokojenost uºivatele webové aplikace by se m¥lo ud¥lat v²e dostupné. Proto v²echny formulá°e, které jsou na Open Burze implementovány mají pevn¥ danou strukturu (samoz°ejm¥ s mírnýma odchylkama v závislosti na obsahu, který je zpracováván). Pro lep²í p°edstavu zde uvedu zkrácené zpracování registra£ního formulá°e:
if (isset($_POST['submit'])){ if (!empty($_POST['polozka1']) && !empty($_POST['polozka2']) && ...){ if ($_POST['password']==$_POST['password2']){ $continue=true; if(Podminka1){ $info=$info.'
Chybová hlá²ka1
'; $continue=false; } if(Podminka2){ $info=$info.'
Chybová hlá²ka2
'; $continue=false; } ...
}
if($continue==true){ registerUser($_POST['polozka1'], $_POST['polozka2'], ...); $info=$info.'
Oznámení o úsp¥chu
'; } }else{ $info=$info.'
Chybová hlá²ka3
'; } }else{ $info=$info.'
Chybová hlá²ka4
';
Jedná se tedy vlastn¥ o strukturu podmínek, které jsou °azeny hierarchicky v závislosti na své d·leºitosti. V uvedeném p°íkladu nejprve zji²´ujeme jestli byl odeslán formulá° - v p°ípad¥, ºe ano, je spu²t¥na procedura jeho zpracování. V první podmínce této procedury zji²´ujeme, zda jsou vypln¥ny v²echny povinné poloºky - toto je podmínka nejvy²²í úrovn¥ a proto v p°ípad¥, ºe nebyla dodrºena, procedura je na této úrovni ukon£ena.
4.1.
SERVEROVÁ ÁST APLIKACE
27
Obrázek 4.1: Zobrazení chybových hlá²ek u formulá°e
Druhá podmínka v po°adí zji²´uje, zda-li je heslo shodné s heslem pro potvrzení, v p°ípad¥ neúsp¥chu v tomto míst¥ skon£í zpracovávání a je podána p°íslu²ná chybová hlá²ka. Dále následuje seznam podmínek, které jsou svou d·leºitostí na stejné úrovni a proto je zde vyuºita prom¥nná $continue, která slouºí jako indikátor chyby - je nastavena na hodnotu false v p°ípad¥, ºe do²lo k chyb¥. Od p°edchozích podmínek se tyto li²í tím, ºe jich m·ºe být poru²eno více najednou a poté jsou zobrazeny i v²echny chybové hlá²ky. V p°ípad¥, ºe tedy do²lo k chyb¥, odesílání formulá°e je p°eru²eno a je znovu na£tena stránka s formulá°em. V²echny uºivatelem vypln¥né poloºky jsou zde stále vypln¥né (to je zaji²´ováno op¥tovaným vkládáním prom¥nných obdrºených z formulá°e do atribut· VALUE p°íslu²ných formulá°ových polí) a navíc je nad formulá°em zobrazena jedna £i více chybových hlá²ek (viz obr. 4.1). Je²t¥ stojí z zmínku, jakým zp·sobem jsem o²et°oval nap°íklad správnost formátu mailové nebo skute£né adresy - k tomu se vyuºívají takzvané regulární výrazy. Tyto slouºí ke zpracování textových °et¥zc·. Pomocí nich si ur£ím masku a poté zji²´uji, zda daný textový °et¥zec této masce vyhovuje. Pro lep²í p°edstavu následuje regulární výraz pro kontrolu správnosti formátu fyzické adresy:
^(.*[^0-9]+) (([1-9][0-9]*)/)?([1-9][0-9]*[a-cA-C]?)$
28
KAPITOLA 4.
IMPLEMENTACE
Takovýto regulární výraz schválí pouze adresy typu Název ulice 123 nebo Název ulice 123/456 nebo Název ulice 123c. Regulární výrazy mají i jiné vyuºití, ale toto jejich pouºití na o²et°ování formulá°· povaºuji za velmi p°ínosné.
Filtrování a vyhledávání: V £ásti analýzy a návrhu jiº bylo °e£eno, je nutné zajistit p°ehlednost a dostupnost v²ech informací zobrazovaných v seznamech, a´ uº se jedná o nabídky, poptávky £i seznam uºivatel·. Proto jsem si vytvo°il ur£itý minisystém ltr·, který jsem s r·zným obsahem aplikoval k daným výpis·m z databáze. V²echny seznamy na webu jsou vypisovány pomocí cykl· - v kaºdé iteraci jednoho cyklu se volá SQL dotaz nakongurovaný tak, aby vracel výsledky, které poºadujeme. Do tohoto dotazu je moºné zanést pomínku WHERE, která specikuje vybrané atributy hledaného °ádku. To je práv¥ onen prvek, který p°i ltrování pot°ebuju upravit.
Obrázek 4.2: Ukázka vypln¥ného ltra£ního a vyhledávacího formulá°e Dociluju toho následovn¥: po odeslání ltra£ního formulá°e je provedeno jeho zpracov-
4.1.
SERVEROVÁ ÁST APLIKACE
29
ání a v n¥m je spu²t¥na posloupnost podmínek. Je²t¥ p°edtím je vytvo°ena zatím prázdná prom¥nná ltrs. V kaºdé podmínce se ptám, zda-li byl uºivatelem zvolen daný ltr a pokud ano, vloºím do oné prom¥nné danou SQL podmínku. Po provední celé procedury je pak uº jenom vloºena prom¥nná ltrs do zmi¬ovaného SQL dotazu. Existuje-li více podmínek za operátorem WHERE, musí být tyto odd¥leny logickými operátory AND nebo OR - proto je v pr·b¥hu celé procedury zaji²´ována jistá logika, která sama vkládá podle pot°eby tyto logické operátory nebo nap°. závorky. Pro pot°eby odla¤ování jsem si nechal vypisovat vzniklý výraz podmínek nahoru na stránku, aby bylo vid¥t, jak systém dotaz sestavit. P°estoºe je nyní systém ltr· pln¥ funk£ní, výpis tohoto výrazu jsem tam ponechal, aby bylo lépe znázorn¥no, jak to celé funguje. Na obrázku 4.2 je ukázka ltra£ního formulá°e. Vyhledávání probíhá díky dne²ním moºnostem velmi jednodu²e - databázový systém MySQL umoº¬uje umístit do tabulky na n¥jaké konkrétní sloupce takzvané fulltextové indexy. Ty posléze umoº¬ují fulltextové prohledávání v t¥chto sloupcích pomocí konstrukce
MATCH(nazev_sloupce) AGAINST('hledany_retezec')
4.1.2 Práce se soubory Dal²í zajímavou £ástí implementace je práce s adresá°ema a souborama. Systém Open Burza umoº¬uje °e²iteli p°iloºit k nabízenému produktu libovolný po£et soubor· (nap°. obrázky, textová specikace, atd.). Stejn¥ tak je toto umoºn¥no i zadavateli u svých vypsaných zakázek. Dále si mohou °e²itelé vloºit p°i ºádosti o zam¥stnání do svého prolu ºivotopis, a v²em uºivatel·m je umoºn¥no vkládat do svých prol· portréty.
Obrázek 4.3: Práce se soubory Ve sloºce scripts jsou vytvo°ené t°i adresá°e - oers, searches a users. V moment¥ kdy °e²itel nabídne produkt nebo zadavatel jej poptává, je v p°íslu²ném adresá°i vytvo°en po-
30
KAPITOLA 4.
IMPLEMENTACE
dadresá° nazvaný stejn¥ jako id daného produktu. Do tohoto podadresá°e se posléze mohou vkládat soubory. Podadresá° users slouºí jako úloºi²t¥ vloºených ºivotopis· (op¥t je v n¥m vytvo°ena sloºka nazvaná podle id uºivatele a do ní je ºivotopis vloºen). Samoz°ejmostí je moºnost kdykoliv vloºený soubor op¥t odstranit. (obr. 4.3) Tolik asi ke kapitole Implementace - vzlhedem k tomu ºe ve²keré zásadní v¥ci uº byly °e£eny v kapitole Analýza a návrh, musel bych se zde opakovat, pouze jsem tedy poukázal na ty najzajímav¥j²í £ásti °e²ení.
Kapitola 5
Testování Testovací provoz Open Burzy byl zahájen zhruba v p·lce prosince (2009). Aplikace byla nainstalována na ve°ejný server a nachází se pod touto adresou: http://burza.stradal.cz.
5.1 P°ístupové údaje Zde je seznam p°ístupových údaj· pot°ebných k práci s Open Burzou nainstalovanou na ve°ejném serveru.
FTP • Host: ftp.piskvorky.net • Username: stradal_cz • Heslo: 2fd1ec39
MySQL • PhpMyAdmin: http://mysql.piskvorky.net/ • Username: stradal_cz • Heslo: 2fd1ec39
Admin CMS Hebla • Admin: http://burza.stradal.cz/admin!/ • Username: FEL • Heslo: fel 31
32
KAPITOLA 5.
TESTOVÁNÍ
5.2 Pr·b¥h testování Zp·sob testování tohoto druhu webové aplikace je velmi jednoduchý - sta£í simulovat reálné situace (v podstat¥ P°ípady uºití) a zachycovat ve²keré chyby, které nastanou. Poºádal jsem n¥kolik p°átel a koleg·, aby mi s testováním pomohli tím zp·sobem, ºe si vytvo°í vlastní uºivatelské ú£ty a v podstat¥ budou hrát divadlo tak, aby byl simulován opravdový provoz webu.
Obrázek 5.1: Bugtracker Mantis Pro ú£ely hlá²ení chyb jsem vyuºil výborného nástroje stvo°eného pro tyto ú£ely - Mantisu [9]. Jedná se o takzvaný bugtracker, který umoº¬uje snadné nahla²ování bug· a jejich následnou správu a °e²ení. Tento bugtracker se nechází na adrese http://mantis.stradal.cz a p°ístup do n¥j je následující:
• Username: Administrator • Heslo: admin B¥hem testování se poda°ilo odladit velké mnoºství chyb, které vznikly p°i programovaní skript· - namátkou m·ºu zmínit moje zásadní opomenutí jedné skute£nosti. Totiº, ºe kaºdý uºivatel mohl editovat nabídky i poptávky uºivatel· ostatních - prostým vepsáním p°íslu²né url adresy produktu £i sluºby. Tato editace byla totiº o²et°ena pouze proti neregistrovaným uºivatel·m, sta£ilo v²ak p°idat podmínku, ºe editovat poloºku m·ºe pouze uºivatel se stejným id jako je id autora poloºky. Dal²ím rozm¥rem testování také bylo jiº n¥kolikrát zmín¥né odla¤ování ve zvolených nejpouºívan¥j²ích prohlíºe£ích, to probíhalo prostým otevíráním téº stránky v n¥kolika prohlíºe£ích najednou a následnýma úpravama v souboru s kaskádovými styly (styly/styly.css). Aplikace byla také úsp¥²n¥ testována na opera£ním systému Linux, konkrétn¥ v distribuci Mandriva - v zásad¥ zde není pouºita ºádná technologie, která by nebyla multiplatformní, coº bylo jedním z poºadavk· zadání této práce.
Kapitola 6
Záv¥r 6.1 Spln¥né zadání Nyní se pokusím provést diskuzi nad jenotlivými £ástmi ociálního zadání bakalá°ské práce v souvislosti se spln¥ním paºadavk·.
•
Analyzujte, navrhn¥te a vytvo°te bezpe£nou webovou aplikaci:
•
Nabídka a poptávka - artiklem budou programátorské práce: Tento bod jsem
•
Funk£ní systém nezávislý na platform¥ i prohlíºe£i: Shrnu-li výsledky této práce,
analýze i návrhu jsem v¥noval velké mnoºství £asu - zkusil jsem nalézt podobná °e²ení na internetu, analyzovat p°ípadné nedostatky a t¥m se p°i návrhu své práce vyhnout. Samotný návrh byl asi nejpodstatn¥j²í £ástí celého projektu, snaºil jsem se k n¥mu p°istupovat sv¥domit¥ a profesionáln¥ (tvorba UML diagram·, denování p°ípad· uºití, atd.). Bezpe£nosti bylo dosaºeno díky transparentnosti registrace nového uºivatele, kvalitn¥ o²et°eným formulá°·m a mimojiné i díky vytvo°ení systému soukromé po²ty. se splnil, ba co víc - roz²í°il jsem rozsah nabídek i poptávek, které se nyní nevztahují pouze na softwarové produkty, ale i na jiné sluºby z oblasti IT a dokonce na pracovní pozice v softwarových rmách. rozhodn¥ mohu °íci, ºe systém Open Burza je funk£ní a moºná v budoucnu i perspektivní webová aplikace. Zadání bylo spln¥no i v nezávislosti systému - ten byl optimalizován pro v²echny nejpouºívan¥j²í webové prohlíºe£e a testován na opera£ním systému Linux.
Lze tedy °íci, ºe ociální zadání práce bylo spln¥no a v mnoha bodech i p°ekro£eno.
6.2 Rozsah práce Podle zdroj· uvedených na serveru K336 Info, je doporu£ený rozsah bakalá°ské práce 30-60 stran A4. Toto kritérium bylo spln¥no - rozsah mé práce je necelých 50 stran. 33
34
KAPITOLA 6.
ZÁV
R
6.3 P°ínos práce Jsem p°esv¥d£ený, ºe tato práce neskon£í 'v ²uplíku' - vzledem k tomu, ºe není mnoho podobných web· na £eském trhu, v¥°ím, ºe v budoucnu bude náv²t¥vnost tohoto portálu velmi vysoká. V²e bylo koncipováno tak, aby byly umoºn¥ny v podstat¥ neomezná roz²í°ení funk£nosti i obsahu. Hlavní my²lenkou bylo podporovat otev°ený software a snaºit se tak vytvá°et konkurenci p°edraºeným komer£ním produkt·m - jestli se tento zám¥r naplní je otázkou budoucnosti. V¥°ím v²ak, ºe aspon v minimální mí°e ano.
Literatura [1] European Credit Transfer and Accumulation System (ECTS) http://ec.europa.eu/education/lifelong-learning-policy/doc48_en.htm [2] lánek o zastoupení webových prohlíºe£· ve sv¥t¥ pro rok 2009 http://www.ddworld.cz/blogy/software-a-hry/zastoupeni-prohlizecu-na-trhu -aneb-firefox-prekonal-internet-explorer-6.html [3] Vysv¥tlení pojmu freeware ve Wikipedii http://cs.wikipedia.org/wiki/Freeware [4] Vysv¥tlení pojmu Open Source Software ve Wikipedii http://cs.wikipedia.org/wiki/Open_source_software [5] Vysv¥tlení pojmu Public Domain na serveru Root.cz http://www.root.cz/specialy/licence/public-domain/ [6] Vysv¥tlení pojmu Shareware na Wikipedii http://cs.wikipedia.org/wiki/Shareware [7] Doporu£ené standardy pro validní HTML http://www.w3.org/TR/REC-html40/ [8] Stránky o svobodném software http://www.gnu.cz/ [9] Domovská stránka bugtrackeru Mantis http://www.mantisbt.org/ [10] K336 Info - Pokyny pro psaní a zadávání bakalá°ských prací https://info336.felk.cvut.cz/index.php\ stav ze 22.5.2009
35
36
LITERATURA
P°íloha A
Seznam pouºitých zkratek CSS
Cascading Style Sheets
ECTS FTP
European Credit Transfer and Accumulation System
File Transfer Protocol
HTML IE
Hypertext Mark-up Language
Internet Explorer
PHP
Hypertext Preprocessor
SQL
Structured Query Language
UML
Unied Modeling Language
GNU
rekurzivní zkratka: GNU's not UNIX
37
38
PÍLOHA A.
SEZNAM POUITÝCH ZKRATEK
P°íloha B
Instala£ní a uºivatelská p°íru£ka B.1 Instalace V p°ípad¥ ºe by bylo pot°eba nové instalace na n¥jakém ve°ejném serveru nebo localhostu, musí být provedeny následující kroky:
• Nahrání ve²kerého obsahu p°iloºeného na cd - v téº struktu°e, v jaké se tam nachází na ftp server noveho hostingového serveru (p°ípadn¥ do sloºky www na localhostu). • Vytvo°ení databáze: v adresá°i www je p°ibalen skript (createBlankDB.sql), který je dávkou SQL p°íkaz·, které vytvá°ejí pot°ebné tabulky, sta£í tedy na serveru vytvo°it vhodn¥ pojmenovanou databázi a spustit na ní tento skript. V²echny tabulky budou automaticky vytvo°eny, tabulky redak£ního systému (folder, node, page a user) jsou p°edvypln¥né pot°ebnými daty, v²echny ostatní tabulky (nál¥ºící samotnému systému Open Burzy) jsou ponechány prázdné. • V souboru cong/connection.php je nutné nastavit p°ístupové údaje do vytvo°ené databáze Tím by m¥la být hotova kompletní nová instalace Open Burzy. V p°ípad¥, ºe by n¥kdo z n¥jakého d·vodu cht¥l nainstalovat systém v tom stavu, v jakém je nyní na testovacím serveru, je k dispozici vedle dávkovacího souboru s prázdnýma takulkama i druhý soubor, který je exportem testovací databáze z 8.1.2010 (createDB.sql). S pouºitím tohoto souboru tedy bude Open Burza nainstalována se stávajícím obsahem. P°ístupové jméno a heslo do adminu redak£ního systému z·stává nezm¥n¥né (je zaneseno v databázi v tabulce User - FEL:fel).
B.2 Rady pro uºivatele Registrace Registra£ní formulá° se nachází pod záloºkou Registrace, chcete-li si vytvo°it nový ú£et, vypl¬te popravd¥ v²echny povinné údaje a pokud chcete, tak i nepovinné. Na konci za²krtn¥te £tvere£ek, pokud chcete uchovat osobní údaje skryté ostatním uºivatel·m. 39
40
PÍLOHA B.
INSTALANÍ A UIVATELSKÁ PÍRUKA
P°ihlá²ení P°ihla²ovací formulá° se nachází v pravo pod hlavní navigací. Po vypln¥ní va²eho nicku a hesla budete p°ihlá²ení.
Upload portrétu
Chcete-li si do va²eho prolu nahrát obrázek, který vás bude jakkoliv reprezentovat, klin¥te na odkaz Upload portrétu a °i¤te se instrukcemi.
Editace prolu
Chcete-li si zm¥nit heslo, klikn¥te na odkaz Zm¥na hesla a zde vypl¬te nejprve va²e staré a potom dvakrát nové heslo. Pro editaci informací, které jste zadali p°i registraci kliknt¥te na odkaz Editace prolu. Zde m·ºete v²echno krom¥ nicku a role editovat. Také je zde moºnost smazat vá² portrét (pokud jste jej uploadovali).
Po²tovní schránka
Pro p°ístup do va²í po²tovní schránky klikn¥te na odkaz Po²ta. Zde se zobrazí seznam stávajících vzkaz· a také moºnost napsat nový. Pokud tak chcete u£init, klikn¥te na onen odkaz. Zde vyberte adresáta ze seznamu a napi²te text zprávy. Pokud vám p°ijde od n¥koho vzkaz, máte moºnost na n¥j odpovídat kliknutím na odkaz Odpov¥d¥t.
Správa sluºeb
Pro p°ístup do správy va²ich sluºeb klikn¥te na odkaz Správa sluºeb, zde máte v závislosti na va²í roli moºnosti dal²ího výb¥ru. Vºdy se jedná o vypsání nabídky £i poptávky prost°ednictvím formulá°e, po jeho úsp¥²ném vypln¥ní bude vá² produkt, sluºba £i ºádost o místo zanesena do systému. U v²ech vytvo°ených produkt· £i nabídek zam¥stnání je moºnost jejich správy a mazání (nap°. odkaz Správa nabízených produkt· nebo Správa poptávaných pozic).
Diskuze
Pokud jste registrovaní uºivatelé, m·ºete p°ispívat do diskuzního fóra, sta£í vyplnit p°edm¥t a t¥lo va²eho p°ísp¥vku a také odpov¥d¥t na anitspamovou otázku (pouze formalita), vá² nick by m¥l být p°edvypln¥ný.
Kontakt
Chcete-li z jakéhokoliv d·vodu kontaktovat správce Open Burzy, m·ºete tak u£init v záloºce Kontakt. Zde jsou jak kontaktní e-mailové adresy, tak i formulá°, pomocí nehoº m·ºete odeslat mail bez nutnosti p°ihla²ovaní se do své mailové schránky.
P°íloha C
Dal²í Use case diagramy
Obrázek C.1: Use case: Neregistrovaný uºivatel
Neregistrovaný uºivatel •
Registrovat se: Kaºdý nov¥ p°íchozí uºivatel se m·ºe zaregistrovat. 41
42
PÍLOHA C.
DALÍ USE CASE DIAGRAMY
•
Listovat a vyhledávat v prolech: neregistrovaný uºivatel m·ºe listovat a vyhledá-
•
Listovat a vyhledávat v nabídkách a poptávkách: neregistrovaný uºivatel m·ºe
•
vat v seznamu prol·
listovat a vyhledávat v seznamu nabídek i poptávek
Prohlíºet diskuzní fóra:
neregistrovaný uºivatel m·ºe prohlíºet hlavní diskuzní fórum i men²í diskuze u konkrétních produkt·
Obrázek C.2: Use case: Správa sluºeb zadavatele
Správa sluºeb zadavatele •
Poptávat produkt: Zadavatelé mají moºnost vypsat výb¥rová °ízení na ºádané pro-
•
Správa poptávaných produkt·: Samoz°ejmostí je správa vypsaných poptávek
dukty
43
•
Poptávat zam¥stnance: Zadavatelé mají moºnost vypsat výb¥rová °ízení na zam¥st-
•
Správa nabízených pozic: Op¥t moºnost správy vypsaných výb¥rových °ízení
nance
Obrázek C.3: Use case: Správa po²tovní schránky
Správa po²tovní schránky •
Napsat novou zprávu: Napsání nové zprávy udanému adresátovi
•
P°e£íst zprávu: Otev°ení obsahu vybrané zprávy
•
Odpov¥d¥t na p°íchozí zprávu: Odpov¥zení na p°íchozí zprávu jejímu autorovi
•
Smazat zprávu: Smazání jakékoliv zprávy
44
PÍLOHA C.
DALÍ USE CASE DIAGRAMY
P°íloha D
Adresá°ová struktura
Obrázek D.1: Adresá°ová struktura Ve sloºce cong se nachází d·leºitý soubor connection.php, do kterého se vkládají p°ístupové údaje do databáze. P°i instalaci Open Burzy je tedy nutné tento soubor správn¥ nastavit. Ve sloºce custom/template/layout se potom nachází hlavní ²ablona celé webové ap45
46
PÍLOHA D.
ADRESÁOVÁ STRUKTURA
likace - soubor cs.php. V tomto souboru je vlastn¥ nakódovaný gracký návrh - je zde vytvo°ena statická £ást webu, která je na v²ech stránkách totoºná (hlavi£ka s logem a hlavní navigací, sidebar s vedlej²ím menu a p°ihla²ovacím formulá°em, a také pati£ka). Ve sloºce Heblo jsou systémové soubory redak£ního systému Heblo, do této sloºky jsem nijak nezasahoval a tudíº není pro tento projekt d·leºitá (stejn¥ jako sloºka log, která slouºí k ukládání log soubor· pro CMS). Slozka images obsahuje v²echny obrázky pouºité na webu, v podsloºce ags jsou vlaje£ky - p°íprava na budoucí potencionální lokalizovaní do více jazyk·. A podsloºka portrets slouºí jako úloºi²t¥ pro portréty, které si uºivatelé vkládají do svých prol·. Ve sloºce scripts se nacházejí v²echny php skripty a obsahuje t°i podsloºky. Jak názvy napovídají, jsou to sloºky pro nabídky, poptávky a uºivatele - slouºí jako úloºi²t¥ soubor· spojených s p°íslu²nými subjekty. A kone£n¥ ve sloºce styles se nachází soubor style.css, který obsahuje v²echny kaskádové styly zaji²´ující správné naformátování webové stránky.