České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Univerzální rezervační systém Tomáš Höger
Vedoucí práce: Mgr. Petr Matyáš
Studijní program: Softwarové technologie a management, Bakalářský Obor: Web a multimedia 11. června 2009
iv
v
Poděkování Na tomto místě bych chtěl poděkovat Mgr. Petru Matyášovi za vedení bakalářské práce, za cenné podklady, nápady a připomínky. Rovněž bych chtěl poděkovat mým dvěma starším bratrům za velikou ochotu, s kterou mi poskytli vhodné rady a technickou pomoc. Dále pak taky mým rodičům: otci Vítězslavovi za technické připomínky k dokumentaci projektu a matce Věře za gramatickou korekturu. Děkuji taky svému Bohu za to, že můžu studovat technickou školu a že se můžu učit trpělivosti a systematičnosti při každé nové práci.
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 1. 6. 2008
.............................................................
viii
Abstract The content of this bachelor thesis is get information about reservation services on internet and use them for developing a unviversal reservation system. Output of this project is the product which is ready to use in sport centres, medical clinics, restaurants, services, hairdresser’s etc. The system is made as a modul for CMS Drupal version 5.0.
Abstrakt Obsahem této bakalářské práce je seznámení se s problematikou webových rezervačních služeb a využití těchto poznatků pro návrh univerzálního rezervačního systému. Výstupem práce je pak produkt, který je navržen tak, aby se dal přizpůsobit pro co největší množství klientů a firem. Systém je navržen formou modulu pro CMS Drupal verze 5.0.
ix
x
Obsah 1 Úvod
1
2 Srovnání podobných systémů 2.1 Booker . . . . . . . . . . . . 2.2 Bizzy . . . . . . . . . . . . . 2.3 Ordinace24 . . . . . . . . . 2.4 Další podobné systémy: . .
. . . .
3 3 4 5 6
. . . . . . . . . . . . . .
7 7 7 8 8 9 9 9 9 9 13 13 13 13 13
. . . . . . . . . .
15 15 15 15 15 15 16 16 17 17 17
. . . .
. . . .
. . . .
. . . .
. . . .
3 Analýza 3.1 Uživatelské role systému . . . . . . . 3.1.1 Nepřihlášený uživatel . . . . . 3.1.2 Přihlášený uživatel . . . . . . 3.1.3 Pracovník . . . . . . . . . . . 3.1.4 Administrátor . . . . . . . . . 3.1.5 Superadministrátor . . . . . . 3.2 Katalog požadavků . . . . . . . . . . 3.2.1 Funkční požadavky . . . . . . 3.2.2 Obecné požadavky . . . . . . 3.3 Napojení na CMS Drupal . . . . . . 3.3.1 CMS Drupal . . . . . . . . . 3.3.2 Výhody řešení . . . . . . . . 3.4 Umístění systému . . . . . . . . . . . 3.5 Komunikace systému server-uživatel
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
4 Implementace 4.1 Použité prostředky a technologie . . . . . . . . . . . . 4.1.1 PHP . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 XHTML a CSS . . . . . . . . . . . . . . . . . . 4.1.3 Databáze MySQL . . . . . . . . . . . . . . . . . 4.2 Implementace databáze . . . . . . . . . . . . . . . . . 4.3 Organizace zdrojových souborů . . . . . . . . . . . . . 4.3.1 Popis souborů s řídící logikou . . . . . . . . . . 4.3.2 Popis souborů s uživatelským rozhraním . . . . 4.3.3 Popis souborů pracujících s datovým modelem 4.3.4 Další použité soubory . . . . . . . . . . . . . .
xi
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
. . . .
. . . . . . . . . . . . . .
. . . . . . . . . .
xii
OBSAH
4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13
Implementace jednotlivých částí systému . . . 4.4.1 Implementace části pro nepřihlášeného Implementace části pro přihlášeného uživatele Implementace části pro pracovníky . . . . . . Implementace části pro administrátora . . . . Implementace části pro superadministrátora . Napojení na CMS Drupal . . . . . . . . . . . 4.9.1 Využití funkcí HOOK . . . . . . . . . Autorizace k systému . . . . . . . . . . . . . . Systém přístupových práv . . . . . . . . . . . Správa uživatelů a uživatelských účtů . . . . . Kalendář . . . . . . . . . . . . . . . . . . . . .
5 Testování 5.1 Test funkčnosti . . . . . . . . . . . . . . 5.1.1 Část pro nepřihlášeného uživatele 5.1.2 Část pro přihlášené uživatele . . 5.1.3 Část pro pracovníky . . . . . . . 5.1.4 Část pro administrátory . . . . . 5.1.5 Část pro superadministrátory . . 5.2 Kompatibility . . . . . . . . . . . . . . . 5.3 Uživatelský testy . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . uživatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
18 18 18 18 19 19 19 19 20 20 20 20
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
21 21 21 21 22 22 22 22 22
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
6 Závěr
23
A Použité zdroje 25 A.1 Seznam literatury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 A.2 Internetové odkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 B Uživatelská příručka B.1 Univerzální rezervační systém . . . . . . . . . . B.2 Instalace a konfigurace . . . . . . . . . . . . . . B.2.1 Instalace . . . . . . . . . . . . . . . . . . B.3 Umístění projektu na internetu . . . . . . . . . B.3.1 Přístupové údaje . . . . . . . . . . . . . B.4 Základní struktura systému . . . . . . . . . . . B.5 Uživatelská příručka pro klienta . . . . . . . . . B.5.1 Vytvoření nového účtu . . . . . . . . . . B.5.2 Přihlášení . . . . . . . . . . . . . . . . . B.5.3 Vytvoření rezervace . . . . . . . . . . . . B.5.4 Vytvoření rezervace jako náhradník . . . B.5.5 Úprava osobních údajů a hesla . . . . . B.5.6 Přehled a úprava vytvořených rezervací B.6 Uživatelská příručka pro pracovníka . . . . . . . B.6.1 Přehled všech rezervací . . . . . . . . . . B.6.2 Seznam klientů . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
27 27 27 28 28 29 29 30 30 30 30 31 31 31 32 32 32
OBSAH
B.7 Uživatelská příručka pro administrátora . . . . B.7.1 Přidávání a úprava zařízení . . . . . . . B.7.2 Přidávání a úprava jednotlivých objektů B.7.3 Přidávání a úprava ceny . . . . . . . . . B.7.4 Nastavení dynamického zlevňování . . . B.7.5 Přidávání pracovníků do systému . . . . B.8 Uživatelská příručka pro superadministrátora . B.8.1 Přidání administrátora do systému . . . B.8.2 Nastavení vzhledu . . . . . . . . . . . .
xiii
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
33 33 33 34 34 34 35 35 35
C Posudky testů 37 C.1 Uživatelský test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 D Datové schéma databáze 39 D.0.1 ER-diagram (datové schéma) . . . . . . . . . . . . . . . . . . . . . . . 39 E Obsah přiloženého CD
41
xiv
OBSAH
Seznam obrázků 3.1 3.2 3.3 3.4 3.5 3.6
Diagram Diagram Diagram Diagram Diagram Diagram
jednání nepřihlášeného uživatele. jednání přihlášeného uživatele. . jednání pracovníka. . . . . . . . jednání administrátora. . . . . . jednání superadministrátora. . . nasazení. . . . . . . . . . . . . .
4.1 4.2
Prostředí programu PhpMyAdmin v. 5.0. . . . . . . . . . . . . . . . . . . . . 16 Přehled rezervací. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.10 B.11 B.12 B.13
Zapnutí modulu Reservations. . . . Základní struktura systému. . . . . Přihlášení do systému. . . . . . . . Přehled volných termínů. . . . . . Přehled vlastních rezervací. . . . . Přehled všech rezervací. . . . . . . Seznam klientů. . . . . . . . . . . . Přidávání a úprava zařízení. . . . . Přidávání a úprava objektů. . . . . Přidávání a úprava ceny. . . . . . . Nastavení dynamického zlevňování. Přídání role pracovník. . . . . . . . Nastavení vzhledu. . . . . . . . . .
D.1 ER-diagram.
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
. . . . . .
. . . . . . . . . . . . .
7 8 10 11 12 14
28 29 30 31 32 32 33 33 34 34 35 35 36
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
xv
xvi
SEZNAM OBRÁZKŮ
Kapitola 1
Úvod Když se v 90. letech dostal internet do komerční sféry, otevřely se dveře dokořán novým možnostem a službám. Do popředí vystoupila hlavně služba, kterou známe pod názvem WWW (World Wide Web). Ta umožnila zobrazovat kombinaci textu, grafiky a multimédií pomocí hypertextových odkazů. Rozšířenost této celosvětové sítě vedla ke vzniku řady webových aplikací, které umožňují řešit přenos informací na dálku. Jednou z oblastí, kde se tato výhoda dá rovněž uplatnit, je online vytváření rezervací v nejrůznějších zařízeních. Tato práce si klade za cíl vytvořit univerzální systém, který by umožnil provádět rezervace pomocí webového rozhraní. Systém bude specializován pro zařízení se službami (sportoviště, solária, sauny, masáže, lékařské ordinace, servisy, kadeřnictví, zasedací místnosti, restaurace apod.). Jednotlivé funkční požadavky pro rezervaci v daném zařízení budou nastavitelné při vytváření konkrétní implementace systému. Vytvořený modul by se dal naimplementovat do stávajících webových stránek daného zařízení a nebo by fungoval samostatně na serveru systému. Touto prací bych chtěl docílit vytvoření produktu, který by byl schopný konkurovat podobným (avšak cenově dražším) aplikacím. Hotový program nabízí zákazníkovi možnost rychlého použití funkčního rezervačního systému a to s řadou zajímavých utilit a funkcí.
1
2
KAPITOLA 1. ÚVOD
Kapitola 2
Srovnání podobných systémů 2.1
Booker
Firma: Nower systems Web: www.nower.cz Booker, rezervační systém, který je zaměřený na potřeby sportovišť. Jedná se o modul, který se naimplementuje do stávajících webových stránek sportoviště (po kliknutí na záložku rezervace se v novém okně spustí systém Booker). Tento systém může běžet buď na zvoleném serveru sportoviště a nebo na serveru firmy Nower systems. Systém nabízí tyto funkce: 1. Přehledná rezervace nabízených služeb. 2. Bezpečná registrace nových klientů. 3. Systém last-minute slev (dynamické zlevňování neobsazených hodin). 4. Systém náhradníků (je-li rezervace obsazena, zákazník má možnost si udělat rezervaci jako náhradník). 5. Systém blokace/aktivace vybraných uživatelů systému (při neomluvené zarezervované službě). 6. Evidence kreditních permanentek (zákazník má možnost zakoupit se slevou kredit). 7. Evidence sezónních permanentek (možnost vybraným zákazníkům zarezervovat termín na libovolnou dobu dopředu). Klady: • přehledný a jednoduchý systém, • bohaté funkce (systém last-minute slev, systém náhradníků atd.), • možnost skinování,
3
4
KAPITOLA 2. SROVNÁNÍ PODOBNÝCH SYSTÉMŮ
• multijazyčná podpora. Zápory: • rezervační systém je zaměřený pouze na sportoviště, • chybí pravidelné zálohování dat, • chybí připomenutí rezervace e-mailem či SMS zprávou, • chybí věrnostní program, • chybí statistické výstupy.
2.2
Bizzy
Firma: Smarcoms Web: http://www.buybizzy.biz Bizzy je online rezervační systém. Jedná se o nástroj pomáhající firmám jako jsou sportovní centra, fit centra, kosmetické salóny, solária, ale i jednotlivcům organizovat rezervace a objednávky svých klientů a hostů. Systém Bizzy může být provozován lokálně, pouze obsluhou na recepci (v rámci firemního intranetu), ale taky i v prostředí internetu. Vlastnosti systému: 1. Jednoduché a přehledné zaznamenávání rezervací a objednávek. 2. Možnost rychlého provádění změn, mazání a editace vložených rezervací a objednávek podle předem definovaných pravidel. 3. Možnost provozování systému buď jako internetovou aplikaci nebo pouze lokálně na recepci bez použití internetu. 4. Upozorňování zákazníků na blížící se rezervace e-mailem nebo SMS zprávou. 5. Rozvržení, vzhled a způsob zobrazení údajů je libovolně přizpůsobitelný. 6. Možnost integrace se systémem pro osvětlování squashových kurtů a spouštění bowlingových drah. 7. Možnost integrace do existujících internetových stránek. 8. Možnost zablokování přístupu do systému problémovým zákazníkům, kteří nepřišli na rezervovaný termín. 9. Možnost rezervace více kurtů nebo drah v rámci jedné rezervace a dále podpora periodických (pravidelně se opakujících) rezervací. 10. Možnost zadávání kreditů zákazníkům a jejich následné odečítání na základě ceny za jednotku rezervace - podpora permanentek.
2.3. ORDINACE24
5
11. Pravidelné zálohování pro případ ztráty konektivity k internetu. 12. Možnost umístění vlastního loga. 13. Sledování počtu návštěv a výše tržeb za registrované zákazníky s možností jejich bonifikace. 14. Podpora vícenásobných rezervací. 15. Statistické výstupy jako například procento využití, nejlepší zákazníci, zisk na jeden kurt apodobně. 16. Možnost napojení systému na emailového klienta. Klady: • komplexní systém, • mnoho možností nastavení, • podpora vícenásobných rezervací, • připomenutí rezervace e-mailem či SMS zprávou. Zápory: • chybí systém last-minute slev, • chybí multijazyčná podpora, • systém je nepřehledný a složitý.
2.3
Ordinace24
Firma: Rezervace24 s.r.o. Web: http://www.ordinace24.cz Ordinace24 je elektronický rezervační systém pro lékařské ordinace a jejich pacienty. Lékařům umožňuje evidovat kalendář rezervací pacientů v elektronické formě a tento kalendář zveřejnit v rámci portálu ordinace24.cz nebo přímo integrovat rezervační systém do již existujících webových stránek ordinace. Systém nabízí pro ordinace tyto funkce: 1. Online rezervační systém. 2. Kalendář návštěv pacientů v elektronické formě zveřejněný na portále ordinace24.cz nebo na webových stránkách ordinace. 3. Možnost integrace rezervačního systému do existujících webových stránek ordinace. 4. Tématická fóra.
6
KAPITOLA 2. SROVNÁNÍ PODOBNÝCH SYSTÉMŮ
5. Možnost zobrazovat svým pacientům informační zprávy jako novinky apod. 6. Několik cenových programů. 7. Testovací provoz po neomezenou dobu. Systém nabízí pro pacienty tyto funkce: 1. Automatické zasílání upomínek pacientovi na vlastní rezervace návštěv lékaře zaregistrované v rezervačním systému. 2. Náhled do historie rezervací pacienta. 3. Tématická fóra. Klady: • jednoduché, přehledné. Zápory: • rezervační systém je zaměřený pouze na ordinace, • není k dispozici on-line ukázka (demo, při kterém se nemusí registrovat).
2.4
Další podobné systémy:
http://www.booking-system.eu http://www.rezervacezdarma.cz/index.php http://www.viator.cz http://www.czechproduct.cz/44723/rezervacni-system http://www.rezervator.cz http://www.previo.cz
Kapitola 3
Analýza 3.1 3.1.1
Uživatelské role systému Nepřihlášený uživatel
Nepřihlášený uživatel nemá v daném systému účet (tzn. je novým návštěvníkem a nebo klientem, který se ještě nepřihlásil). Nepřihlášený uživatel se může registrovat a nebo se přihlásit. Nemůže však volně procházet daným rezervačním systémem.
Obrázek 3.1: Diagram jednání nepřihlášeného uživatele.
7
8
3.1.2
KAPITOLA 3. ANALÝZA
Přihlášený uživatel
Přihlášený uživatel má v daném systému účet (tzn. do systému se již dříve zaregistroval a má své uživatelské jméno a heslo). Může volně procházet daným rezervačním systémem, provádět rezervaci, stornovat vlastní rezervace a upravovat údaje ve svém uživatelském účtu.
Obrázek 3.2: Diagram jednání přihlášeného uživatele.
3.1.3
Pracovník
Pracovník je osoba, která pracuje pro dané zařízení a má v daném systému účet pracovníka (tzn. do systému byl jeho účet přidán administrátorem).
3.2. KATALOG POŽADAVKŮ
9
Může provádět všechny operace jako přihlášený uživatel. Dále však má k dispozici přehled všech rezervací a rezervací jednotlivých klientů. Tyto záznamy může podle potřeby editovat a mazat.
3.1.4
Administrátor
Administrátor je uživatel, který má v daném pracovišti největší práva. Do systému byl jeho účet přidán superadministrátorem (poskytovatelem systému). Narozdíl od pracovníka může provádět i veškerá nastavení a funkce dostupné pro dané zařízení (přidávat objekty, ceny apod.). Administrátor může libovolně vytvářet, měnit a mazat uživatelské účty a měnit jejich role.
3.1.5
Superadministrátor
Superadministrátor je osoba, která je tvůrcem či poskytovatelem systému. Je oprávněn provádět systémová nastavení Drupalu a upravovat grafickou podobu stránek (změna témat).
3.2 3.2.1
Katalog požadavků Funkční požadavky
1. Nastavení rezervačního systému se dá plně přizpůsobit dle potřeby daného zařízení. 2. Přehledná rezervace nabízených služeb. 3. Možnost rychlého provádění změn, mazání a editace vložených rezervací a objednávek podle předem definovaných pravidel. 4. Možnost nastavit systém last-minute slev (dynamické zlevňování neobsazených hodin). 5. Možnost nastavit systém náhradníků (je-li rezervace obsazena, zákazník má možnost si udělat rezervaci jako náhradník). 6. Možnost nastavit evidenci sezónních permanentek (možnost vybraným zákazníkům zarezervovat termín na libovolnou dobu dopředu). 7. Možnost evidovat údaj o slevě pro stálého zákazníka. 8. Možnost skinování a přizpůsobení vzhledu.
3.2.2
Obecné požadavky
1. Bezpečná registrace nových klientů. 2. Bezpečné přihlášení. 3. Uchování kompletní historie všech důležitých informací o zařízení i o zákaznících.
10
KAPITOLA 3. ANALÝZA
Obrázek 3.3: Diagram jednání pracovníka.
3.2. KATALOG POŽADAVKŮ
Obrázek 3.4: Diagram jednání administrátora.
11
12
KAPITOLA 3. ANALÝZA
Obrázek 3.5: Diagram jednání superadministrátora.
3.3. NAPOJENÍ NA CMS DRUPAL
13
4. Systém bude implementován s využitím PHP, MySQL, XHTML, CSS. 5. Systém bude implementován jako modul pro CMS Drupal.
3.3
Napojení na CMS Drupal
Systém pracuje jako přídavný modul pro CMS Drupal. Takto vytvořený modul může na tomto systému fungovat zcela samostatně (a do stránek klienta být přidán pouze formou odkazu) a nebo se dá snadno naimplementovat do všech WWW stránek, které jsou pomocí tohoto CMS nástroje vytvořeny.
3.3.1
CMS Drupal
Drupal je open source redakční systém, tedy volně dostupný software. Staví na několika základech, které jsou důležité pro jeho funkčnost a vývoj: • Modularita – Drupal obsahuje malé stabilní rychlé jádro a vše ostatní je postaveno na přídavných modulech. Každý uživatel může vytvořit vlastní modul, seznam modulů je udržován na domovské stránce Drupalu. • Kvalita – Do jádra Drupalu se nedostávají neověřené nadstavby, jádro má rovněž velmi dobře navrženou strukturu. To z něj dělá bezpečný a stabilní systém. • Open Source – GNU/GPL licence, PHP programovací jazyk, podpora pro MySQL a PostgreSQL, připravovaná podpora pro MS SQL a Oracle.
3.3.2
Výhody řešení
• Vytvořený modul se dá opět lehce použít i v odlišných aplikacích, • systém lze v budoucnu propojit i s jinými moduly pro Drupal (např. s modulem elektronického diáře), • práce s moduly je velice flexibilní, • možnost použít hotové nástroje pro přihlašování a správu uživatelů v Drupalu a zaměřit se více na samotnou funkci systému.
3.4
Umístění systému
Systém bude umístěn na serveru, využívajícím Apache server 2.0. Aplikace může fungovat buďto centrálně (všechny zařízení budou mít účet na jednom serveru) a nebo samostatně (klient bude mít naimplementovaný systém na svém serveru).
3.5
Komunikace systému server-uživatel
Uživatel komunikuje se serverem pomocí webového prohlížeče. Server, na kterém běží Apache, pak dále komunikuje s MySQL databází.
14
KAPITOLA 3. ANALÝZA
Obrázek 3.6: Diagram nasazení.
Kapitola 4
Implementace 4.1 4.1.1
Použité prostředky a technologie PHP
Systém je napsán v jazyku PHP verze 5.0, ve kterém jsou naprogramovány všechny dynamické části na straně serveru. PHP jazyk jsem zvolil hlavně z důvodů, že nabízí řadu výhod. V prvé řadě, že je opensource a že je tedy zcela zdarma. Dalšími neméně důležitými vlastnostmi je velká podpora u běžných webových serverů a snadná integrace s MySQL databází.
4.1.2
XHTML a CSS
Grafická podoba stránek je sestavena pomocí validního XHTML kódu verze 1.0 Transitional a pomocí kaskádových stylů CSS.
4.1.3
Databáze MySQL
Všechny potřené údaje jsou uloženy v MySQL databázi verze 5.0. Databázi MySQL jsem zvolil z důvodu lehké integrace a rovněž proto, že je k dispozici zdarma.
4.2
Implementace databáze
Struktura jednotlivých tabulek a položek databáze je navržena na základě ER-modelu (viz příloha D). Databázový model je navržen tak, že se dá použít samostatně pro jednotlivá zařízení a nebo i pro aplikaci typu Ticketpro (portálu, kde by měly jednotlivé zařízení účet na jednom serveru a uživatel by k nim mohl prostřednictvím jedněch stránek libovolně vytvářet rezervace). Z tohoto důvodu se v ER-modelu nachází i mnoho atributů a entit, které nejsou momentálně využité. Pro snadnější práci s databázi byl použit program PhpMyAdmin verze 5.0.
15
16
KAPITOLA 4. IMPLEMENTACE
Obrázek 4.1: Prostředí programu PhpMyAdmin v. 5.0.
4.3
Organizace zdrojových souborů
Organizace souborů je sestavená podle softwarové architektury model-view-controller (MVC). Zvlášť je tedy oddělený datový model, uživatelské rozhraní a řídící logika.
4.3.1
Popis souborů s řídící logikou
reservation.module – hlavní indexový soubor se základní strukturou a konfigurací systému, _menu.php – soubor, ve kterém se nachází funkce pracující s menu, _perm.php – soubor, ve kterém se nachází funkce pracující s přístupovými právy, page/me_rezervace.php – funkce pro výpis klientových rezervací, page/prehled_terminu.php – funkce hlavního přehledu termínů, page/pridat_objekt.php – funkce pro přidávání či editaci objektů, page/pridat_cenu.php – funkce pro přidávání či editaci jednotlivých cen, page/pridat_zarizeni.php – funkce pro přidávání či editaci zařízení,
4.3. ORGANIZACE ZDROJOVÝCH SOUBORŮ
17
page/seznam_klientu.php – funkce pro práci se seznamem klientů, page/seznam_zarizeni.php – funkce pro práci se seznamem jednotlivých zařízení, page/upravit_firmu.php – funkce pro úpravu názvu a popisu firmy, page/zpracovani_rezervace.php – funkce, zajišťující zpracování rezervací,
4.3.2
Popis souborů s uživatelským rozhraním
page/view/me_rezervace.phtml – uživatelské rozhraní přehledu klientových rezervací, page/view/prehled_terminu.phtml – uživatelské rozhraní pro přehled volných termínů, page/view/pridat_objekt.phtml – uživatelské rozhraní pro práci s objekty, page/view/pridat_cenu.phtml – uživatelské rozhraní pro práci s cenou, page/pridat_zarizeni.phtml – uživatelské rozhraní pro práci se zařízeními, page/seznam_klientu.phtml – uživatelské rozhraní se seznamem klientů, page/seznam_rezervaci.phtml – uživatelské rozhraní se seznamem rezervací, page/seznam_zarizeni.phtml – uživatelské rozhraní se seznamem zařízení, page/upravit_firmu.phtml – uživatelské rozhraní pro úpravu názvu a popisu firmy, page/zpracovani_rezervace.phtml – uživatelské rozhraní pro zpracování rezervací.
4.3.3
Popis souborů pracujících s datovým modelem
class/Cena.php – soubor pracující s hodnotami ceny v databázi, class/Firma.php – soubor pracující s údaji o firmě v databázi, class/Kontaktni_udaje.php – soubor pracující s kontaktními údaji v databázi, class/Objekt.php - soubor pracující s údaji o objektech v databázi, class/Osoba.php – soubor pracující s údaji o osobě v databázi, class/Rezervace.php – soubor pracující s údaji o rezervacích v databázi, class/Sleva.php – soubor, pracující s údaji o slevě v databázi, class/Zarizeni.php – soubor pracující s údaji o zařízení v databázi.
4.3.4
Další použité soubory
class/prvni_spusteni.php – soubor, který nahraje do datbáze potřebné údaje (doporučuje se provést při prvním spuštění). class/Calendar.php – funkce, pracující s kalendářem, class/MyCalendar.php – funkce, rozšiřující práci s kalendářem (pro přehled termínů), class/MyCalendar2.php – funkce, rozšiřující práci s kalendářem (pro přehled rezervací), class/View.php – objekt poskytující komunikaci mezi řídící logikou a uživatelským rozhraním (slouží jako „obálka“ na proměnné) a obecné funkce pro zobrazování.
18
KAPITOLA 4. IMPLEMENTACE
4.4
Implementace jednotlivých částí systému
Systém se dá rozdělit do pěti částí podle příslušných uživatelských rolí (část pro nepřihlášené uživatele, část pro přihlášené uživatele, část pro pracovníky, část pro administrátora a část pro superadministrátora). Práce je navržena tak, aby „vyšší“ role využívaly všechny programové části „nižších“ rolí a aby jejich funkce jen dále rozšiřovaly.
4.4.1
Implementace části pro nepřihlášeného uživatele
Pro nepřihlášené uživatele je vytvořena základní koncepce systému. Nepřihlášený uživatel má k dispozici výpis zařízení (poskytovaných služeb) dané firmy s jejich jednotlivými popisy (zařízení jsou seřazeny abecedně podle atributu „název“). Nepřihlášený uživatel nemůže volně procházet systémem, ale musí se nejprve přihlásit a nebo se zaregistrovat. Implementace tohoto problému je dále řešena v kapitole 4.10.
4.5
Implementace části pro přihlášeného uživatele
Přihlášený uživatel může volně procházet systémem. Pokud uživatel vybere příslušné zařízení, jeho identifikační číslo se dále posílá metodou GET s následným uložením do superglobální proměnné SESSION. Poté má uživatel možnost si zvolit datum v naimplementovaném kalendáři a vybrat vhodný čas z přehledu rezervací (termíny jsou rozděleny podle časů do jednotlivých polí a v nich jsou zobrazeny ceny). Pro funkci kalendáře jsem použil a upravil freewarovou aplikaci PHP Calendar Class Version 1.4 od autora Davida Wilkinsona (viz kapitola 4.13). Výběr vhodného času je vytvořen pomocí HTML odkazu na příslušném poli (respektive na jeho ceně). Po zvolení daného termínu se metodou GET zašlou potřebné údaje přesně charakterizující danou položku. Tyto informace se uloží do pole rezervací a dále pak do superglobální proměnné SESSION. Tímto způsobem může uživatel zvolit libovolný počet rezervací. Pokud chce některý z vybraných termínu zrušit, kliknutím na příslušné pole se opět metodou GET pošlou potřebné údaje pro vymazání termínu z pole rezervací. Přihlášený uživatel dále může spravovat vlastní účet a přehled svých rezervací. Implementací správy uživatelského účtu se dále zabývá kapitola 4.12.
Obrázek 4.2: Přehled rezervací.
4.6
Implementace části pro pracovníky
Část pro pracovníky je rozšířená o možnost zobrazení přehledu všech rezervací a o seznam všech klientů. V přehledu všech rezervací je opět použit kalendář PHP Calendar Class Version
4.7. IMPLEMENTACE ČÁSTI PRO ADMINISTRÁTORA
19
1.4, o kterém se zmiňuji v kapitola 4.13. Při výpisu klientů je seznam seřazen abecedně podle atributu „name“. Je zde rovněž možnost zobrazení rezervací libovolného klienta. Povel o případém vymazání (stornování) dané rezervace se ve všech případech posílá pomocí HMTL formuláře metodou POST.
4.7
Implementace části pro administrátora
Část pro administrátora je rozšířená o funkce pro správu. Jedná se konkrétně o možnosti přidávat a měnit údaje o jednotlivých zařízeních, objektech a jejich cenách. U daných zařízení je pak možnost nastavit, zda se má provádět tzv. dynamické zlevňování (last-minute slevy) a to zadáním dvou údajů: kolik hodin před daným termínem má dojít k zlevnění a o kolik se má původní cena změnit (zadává se v procentech). Administrátorské rozhraní dále umožňuje přidávat další pracovníky do systému či měnit jejich oprávnění. Provedené úpravy se ve všech případech posílají pomocí HMTL formuláře metodou POST a následně se ukládají do databáze.
4.8
Implementace části pro superadministrátora
Superadministrátorská část je rozšířená o správu systému Drupal a jeho přídavných modulů. Tato část využívá již vytvořeného rozhraní systému Drupal.
4.9
Napojení na CMS Drupal
Napojení mého systému na Drupal je provedeno pomocí administračního rozhraní pro přidávání modulů, které je běžnou součástí tohoto CMS nástroje. Před tím než lze modul zapnout, je zapotřebí ho zkopírovat do adresáře sites/all/modules (viz kapitola B.2 Instalace a konfigurace).
4.9.1
Využití funkcí HOOK
Při každém obnovení stránky systém Drupal volá předem definované funkce, kterým se říká HOOKs (háčky). Obsah těchto funkcí se dá v rámci modulu editovat a libovolně k nim přidávat další příkazy. Mnou vytvořený modul využívá těchto HOOK funkcí: • reservations_menu – Tato funkce provádí přidávání položek do hlavního navigačního menu systému Drupal a nastavuje jejich vlastnosti. Dále pak stanovuje cesty pro názvy stránek v URL adrese (a rovněž upravuje jejich práva). • reservations_perm – Tato funkce definuje názvy přístupových práv, které jsou v modulu využity.
20
4.10
KAPITOLA 4. IMPLEMENTACE
Autorizace k systému
Při vstupu do systému je potřeba se přihlásit vyplněním příslušného uživatelského jména a hesla. Autorizace k systému je řešena pomocí vestavěného rozhraní systému Drupal. V databází jsou uložené jednotlivé uživatelské účty v tabulce „user“. Při každém přihlášení dochází k ověření příslušného uživatelského jména a hesla. Heslo je pak v databázi zahashované pomocí MD5. Systém Drupal zajišťuje automatické odhlašování a obdobné funkce spojené s bezpečným používáním uživatelského účtu.
4.11
Systém přístupových práv
Přístupová práva jsou pro modul definovana v souboru _perm.php jako HOOK funkce pro systém Drupal (viz kapitola 4.9.1). V tomto systému jsou pak práva dále přiřazována k jednotlivým rolím. V samotném kódu se nachází řada podmínek, které testují, zda má uživatel danou roli a tedy i příslušné právo. Pokud ano, zobrazí se požadovaný obsah aplikace; pokud ne, zobrazí se hlášení o nepovoleném přístupu.
4.12
Správa uživatelů a uživatelských účtů
Správa uživatelů a uživatelských účtů je řešená pomocí vestavěného rozhraní systému Drupal pod položkou Uživatelé v administrátorském rozhraní.
4.13
Kalendář
Pro funkci kalendáře jsem použil a upravil freewarovou aplikaci PHP Calendar Class Version 1.4 od autora Davida Wilkinsona. Tato aplikace je volně ke stažení na adrese http://www.cascade.org.uk. Kalendář je navržen tak, že všechna políčka (dny) vytvářejí odkaz, kterým se pomocí metody GET posílají informace o zvoleném dni, měsíci a roce. Tato aplikace nabízí i řadu pomocných funkcí pro přednastavení názvů měsíců a jednotlivých dnů (původní nastavení je v angličtině), nastavení prvního dne v týdnu apod. Vzhled kalendáře se dá snadno skinovat pomocí kaskádových stylů.
Kapitola 5
Testování Testováním se ověřuje předpokládaná činnost a funkčnost dané aplikace. Cílem testu je objevit skryté chyby a nedostatky a ověřit chování při zatížení a výpadku. Některé testy byly pro větši objektivnost provedeny druhou osobou. Systém byl ověřen třemi druhy testů: • Test funkčnosti. • Test kompatibility. • Uživatelský test.
5.1 5.1.1
Test funkčnosti Část pro nepřihlášeného uživatele
• Vytvoření nového uživatelského účtu. • Přihlášení do systému.
5.1.2
Část pro přihlášené uživatele
• Zvolení daného zařízení (služby). • Zvolení požadovaného data. • Označení příslušného termínu. • Označení příslušného termínu jako náhradník. • Odznačení příslušného termínu. • Potvrzení rezervace. • Změna osobních údajů a údajů o rezervacích. • Odhlášení ze systému.
21
22
KAPITOLA 5. TESTOVÁNÍ
5.1.3
Část pro pracovníky
• Výpis uživatelů a změna jejich údajů o rezervacích. • Přehled všech rezervací.
5.1.4
Část pro administrátory
• Změna nastavení obejktů. • Úprava a přidávání zařízení a objektů. • Úprava a přidávání ceny. • Nastavení dynamického zlevňování (last-minute slevy). • Přidávání pracovníků.
5.1.5
Část pro superadministrátory
• Nastavení systému Drupal a jeho přídavných modulů. • Změna grafického vzhledu (témat).
5.2
Kompatibility
Správná funkce systému byla testována pod internetovými prohlížeči: • Firefox v. 3.0.10 • Internet Explorer v. 7.0 • Google Chrome v. 2.0 Při testech na jednotlivých internetových prohlížečích nebyly nalezeny žádné závažné problémy a nedostatky.
5.3
Uživatelský testy
Uživatelský test probíhal na testovací verzi systému z 8.6.2009. Součástí testu bylo ověření správné činnosti a použitelnosti uživatelského rozhraní. Poslední částí pak bylo testování srozumitelnosti uživatelské příručky. Testující osobou byl můj bratr Bc. Lukáš Höger, student ČVUT FEL, oboru Výpočetní technika. Výsledky testu se nachází v příloze C.
Kapitola 6
Závěr Stěžejním cílem celého projektu bylo vytvořit univerzální rezervační systém se specializací pro zařízení se službami. Takto vytvořená aplikace by měla poskytovat komplexní řešení pro rezervaci s možností úpravy parametrů dle potřeby daného zařízení. Projekt si kladl poměrně vysoké nároky na široký okruh funkčních požadavků. I když se vyskytla řada menších komplikací, bylo těchto požadavků téměř ve všech případech dosaženo. Jediné vyjímky tvoří možnost pravidelné rezervace na libovolnou dobu dopředu a možnost nastavení slevy pro klienta. Testování aplikace neprokázalo žádnou zásadní chybu, která by s konečnou platností ovlivnila funkčnost systému. Výsledkem práce je produkt, který je výhledově schopný konkurovat podobným aplikacím na trhu. Řeší klíčové požadavky, které jsou pro tyto produkty marketingově zajímavé (možnost nastavení last-minute slev, systém náhradníků apod.). Program je navržen tak, aby se mohl dále vyvíjet a rozšiřovat dle požadavků uživatele. Databázový model je navíc přizpůsobený i pro aplikaci typu Ticketpro - tedy portálu, kde by měly firmy účet na jednom serveru a uživatel by z jedněch stránek mohl provádět rezervace ve více zařízeních najednou. Aplikaci bych chtěl v nejbližší době využít v praxi a podle potřeby ji rozšířit či doladit. Zejména pak v oblasti nastavení služeb, statistických výpisů a upozorňování zákazníků na blížící se rezervaci e-mailem či SMS zprávou. Hlavní cíl projektu se podařil naplnit. Výsledkem práce je funkční rezervační systém umožňující snadné změny a případná rozšíření.
23
24
KAPITOLA 6. ZÁVĚR
Příloha A
Použité zdroje A.1
Seznam literatury
[1] Gilmore W. Jason. Velká kniha PHP a MySQL 5. Zoner Press, Brno, 2007 [2] Václavek Petr. JavaScript - Hotová řešení. Zoner Press, Brno, 2003 [3] Kiszka Bogdan. UML 2 a unifikovaný proces vývoje aplikací. Computer Press, Brno, 2007 [4] Siever Ellen. Linux v kostce. Computer Press, Praha, 1999
A.2
Internetové odkazy
[1] Interval.cz http://interval.cz [2] ABC Linuxu http://www.abclinuxu.cz [3] PHP Builder http://www.phpbuilder.com [4] Validator W3C - validace XHTML http://validator.w3.org [5] W3S school - XHTML http://www.w3schools.com/xhtml
25
26
PŘÍLOHA A. POUŽITÉ ZDROJE
[6] W3S school - Java script http://www.w3schools.com/js [7] How to create JavaScript tutorial - příklady http://www.howtocreate.co.uk/tutorials/javascript/examples [8] Stránky předmětu X36WWW ČVUT v Praze http://amun.felk.cvut.cz/x36www [9] PHP.net – knihovna GD http://www.php.net/gd [10] Stránky předmětu Softwarové inženýrství X36SIN ČVUT v Praze http://service.felk.cvut.cz/courses/x36sin [11] Visual Paradigm UML http://www.visual-paradigm.com/VPGallery/diagrams [12] Wikipedia http://www.wikipedia.com [13] Developer Zone, MySQL - Dokumentace k MySQL http://dev.mysql.com/doc [14] Manifest Dogma W4 - strategie pro tvorbu webu http://www.pixy.cz/dogma/dogmaw41/cs
Příloha B
Uživatelská příručka B.1
Univerzální rezervační systém
Univerzální rezervační systém je aplikace, která umožňuje vytvářet rezervace přes webové rozhraní. Systém je navržen tak, aby se dal jednoduše přizpůsobit potřebám daného zařízení (otevírací doba, intervaly, ve kterých se dají provádět rezervace apod.). Systém je rozdělen do pěti prostředí (podle uživatelských rolí): • Prostředí pro veřejnost umožňuje vytvořit nový uživatelský účet či se přihlásit. • Prostředí pro přihlášené uživatelé umožňuje procházet přehledem zařízení a volných termínů, vytvářet rezervace, úpravovat uživatelský účet, rušit a mazat vlastní rezervace. • Prostředí pro pracovníky umožňuje procházet výpisem klientů a jejich rezervací a přehledem všech rezervací systému. Jednotlivé rezervace může podle potřeby mazat (stornovat). • Administrátorské prostředí umožňuje spravovat daný systém. Přidávat, mazat a upravovat dané položky a jejich nastavení. • Superadministrátorské prostředí umožňuje měnit konečnou konfiguraci, strukturu a podobu systému (včetně grafické podoby).
B.2
Instalace a konfigurace
Požadavky a nároky: Systému Drupal vyžaduje tyto požadavky na provoz (některá nastavení webhostingu nejsou bohužel v ČR vždy zcela běžné): • webový server (Apache, IIS, doporučuji Apache), • PHP verze alespoň 5.2,
27
28
PŘÍLOHA B. UŽIVATELSKÁ PŘÍRUČKA
• alespoň 24MB limit paměti pro PHP, doporučuji však vyšší, • povolen soubor .htaccess a modul mod_rewrite pro čisté URL, • povolené funkce v PHP: glob(), move_uploaded_file(), copy(), • MySQL (či PostgreSQL) alespoň verze 5.0, • PostgreSQL (či MySQL) alespoň verze 7.3.
B.2.1
Instalace
1. Z přiloženého CD zkopírujte obsah adresáře Drupal na webový server. 2. Spusťe instalační skript a postupujte dále podle pokynů. 3. Zkopírujte z CD adresář „Reservations“ do "drupalovského"adresáře sites/all/modules/. 4. Spustě skript „sites/all/modules/reservations/prvni_spusteni.php“ pro přidání příslušných údajů do databáze. 5. Přihlaste se do Drupalu a pod rozhraním „Administrace -> Prvky webu -> moduly“ zapněte příslušný modul „Reservations“.
Obrázek B.1: Zapnutí modulu Reservations.
Pokud by při instalaci Drupalu došlo ke komplikacím, doporučuji se obrátit na domovskou stránku Drupalu na adrese www.drupal.org (či na českou www.drupal.cz).
B.3
Umístění projektu na internetu
Projekt je rovněž umístěn na internetové adrese „www.rezervace.udeska.info“.
B.4. ZÁKLADNÍ STRUKTURA SYSTÉMU
B.3.1
Přístupové údaje
• běžný uživatel - uživatelské jméno: user, heslo: user, • pracovnik - uživatelské jméno: pracovnik, heslo: pracovnik, • administrátor - uživatelské jméno: admin, heslo: admin, • superadministrátor - uživatelské jméno: su, heslo: su.
B.4
Základní struktura systému
Struktura systému je rozdělena do dvou stěžejních částí: • obsah stránky • pravý boční panel
Obrázek B.2: Základní struktura systému.
29
30
PŘÍLOHA B. UŽIVATELSKÁ PŘÍRUČKA
B.5 B.5.1
Uživatelská příručka pro klienta Vytvoření nového účtu
Vytvoření nového účtu v systému se provádí po kliknutí na „Vytvořit nový účet“ v pravém bočním panelu. Pro úspěšné dokončení registrace je potřeba vyplnit uživatelské jméno, e-mailovou adresu a adresu trvalého bydliště. Vyplňujte tyto údaje velice pečlivě, obzvláště pak e-mailovou adresu (bude Vám na ni zasláno heslo pro přihlášení spolu s dalšími instrukcemi).
B.5.2
Přihlášení
Přihlášení se provádí zadáním příslušného uživatelského jména a hesla v pravém bočním panelu.
Obrázek B.3: Přihlášení do systému.
B.5.3
Vytvoření rezervace
Při vytváření rezervace je zapotřebí provést následující operace: • zvolit příslušné zařízení, • vybrat vhodný datum v kalendáři, • kliknutím na políčko s cenou vybrat příslušný čas (opětovným kliknutím lze výběr zrušit), • potvrdit výběr rezervace kliknutím na REZERVUJ.
B.5. UŽIVATELSKÁ PŘÍRUČKA PRO KLIENTA
31
Obrázek B.4: Přehled volných termínů.
B.5.4
Vytvoření rezervace jako náhradník
Pokud je daný termín obsazen, systém umožňuje zažádat o rezerervaci jako náhradník. Postupuje se při ní stejně jako při normální rezervaci, jen s tím rozdílem, že se nevybírá volný termín, ale již zarezervovaný. Po dokončení rezervace se do databáze zapíše poznámka a datum a čas, kdy byla náhradní rezervace vytvořena. Tato informace bude brána v potaz personálem firmy, pokud bude původní rezervace zrušena.
B.5.5
Úprava osobních údajů a hesla
Klikněte na položku „Můj účet“ v pravém bočním panelu. Poté kliknete na „Upravit“. Údaje libovolně změňte a potvrďte tlačítkem „Poslat“.
B.5.6
Přehled a úprava vytvořených rezervací
Klikněte na položku „Mé rezervace“ v pravém bočním panelu. Pro smazání dané rezervace klikněte na „Smazat“.
32
PŘÍLOHA B. UŽIVATELSKÁ PŘÍRUČKA
Obrázek B.5: Přehled vlastních rezervací.
B.6 B.6.1
Uživatelská příručka pro pracovníka Přehled všech rezervací
Klikněte na položku „Přehled všech rezervací“ v pravém bočním panelu. V kalendáři si zvolte datum, pro který chcete přehled zobrazit. Pro smazání dané rezervace klikněte na „Smazat“.
Obrázek B.6: Přehled všech rezervací.
B.6.2
Seznam klientů
Klikněte na položku „Seznam klientů“ v pravém bočním panelu. Pro zobrazení rezervací daného klienta klikněte na „Seznam rezervací“.
B.7. UŽIVATELSKÁ PŘÍRUČKA PRO ADMINISTRÁTORA
33
Obrázek B.7: Seznam klientů.
B.7 B.7.1
Uživatelská příručka pro administrátora Přidávání a úprava zařízení
Ve výpisu zařízení vyberte jednu ze tří možností: přidat zařízení, odstranit zařízení a upravit zařízení. Podle potřeby vyplňte či upravte příslušné formuláře a konečné údaje potvrďte tlačítkem „Odeslat“.
Obrázek B.8: Přidávání a úprava zařízení.
B.7.2
Přidávání a úprava jednotlivých objektů
Ve výpisu volných termínů klikněte na „Přidat objekt“ (pro přidání nového objektu) a nebo na „Upravit objekt“ (pro úpravu objektu).
34
PŘÍLOHA B. UŽIVATELSKÁ PŘÍRUČKA
Při veškerých úpravách potvrďte vždy změny tlačítkem „Odeslat“.
Obrázek B.9: Přidávání a úprava objektů.
B.7.3
Přidávání a úprava ceny
Ve výpisu volných termínu klikněte na „Přidat cenu“ (pro přidání nové ceny do objektu) a nebo na „Upravit cenu“ (pro úpravu současné ceny v objektu). Pokud se při zadávání ceny zadá hodnota -1, znamená to, že je v daném termínu objekt zavřen (využívá se pro konkrétní termíny - svátky apod.). Pokud se při zadávání ceny nepokryje celá otvírací doba, termíny, které zbyly se tváří jako uzvařené. Při veškerých úpravách potvrďte vždy změny tlačítkem „Odeslat“.
Obrázek B.10: Přidávání a úprava ceny.
B.7.4
Nastavení dynamického zlevňování
Vyberte příslušné zařízení a u daného objektu zvolte „Upravit objekt“. Ve spodní části formuláře vyplňte kolik hodin předem má zlevnění nastat a o kolik procent se má cena snížit. Nastavení potvrďte tlačítkem Odeslat.
B.7.5
Přidávání pracovníků do systému
Klikněte na položku „Uživatelé“ v pravém bočním panelu. Klikněte na „Přidat uživatele“, vyplňtě příslušné údaje a zvolte roli „pracovník“. Údaje potvrďte kliknutím na „Vytvořit nový účet“.
B.8. UŽIVATELSKÁ PŘÍRUČKA PRO SUPERADMINISTRÁTORA
35
Obrázek B.11: Nastavení dynamického zlevňování.
Obrázek B.12: Přídání role pracovník.
B.8 B.8.1
Uživatelská příručka pro superadministrátora Přidání administrátora do systému
Klikněte na položku „Uživatelé“ v pravém bočním panelu. Klikněte na „Přidat uživatele“, vyplňtě příslušné údaje a zvolte roli „admin“ (podobně jako při přidávání pracovníka v kapitole B.7.5). Údaje potvrďte kliknutím na „Vytvořit nový účet“.
B.8.2
Nastavení vzhledu
Klikněte na položku „Administrace“ v pravém bočním panelu. Pod blokem „Prvky webu“ klikněte na „Témata vzhledu“. Z daného seznamu si vyberte dané téma vzhledu zaškrtnutím položek „Povoleno“ a „Výchozí“. Pro další nastevní klikněte u daného tématu na odkaz „konfigurace“.
36
PŘÍLOHA B. UŽIVATELSKÁ PŘÍRUČKA
Obrázek B.13: Nastavení vzhledu.
Příloha C
Posudky testů C.1
Uživatelský test
Vypracoval: Bc. Lukáš Höger Testováno na PC: Duron 1200 Mhz, 256 MB RAM, Windows XP, Rozlišení 1024x768, Mozilla Firefox v. 3.0
Dostal jsem přístup k rezervačnímu systému předinstalovaném na webserveru, uživatelskou dokumentaci a funkční přístupové účty včetně superuživatele s nejvyššími právy. Testy proběhly v podobě vytvoření nového zařízení, rezervování objektů a odzkoušení funkcí jednotlivých rolí uživatelů. Nastavení zařízení a parametrů vnořených objektů mi příjde jako zdařilé. Provedení rezervace je praktické - jednoduché a rychlé. Na aplikaci mě oslovuje vhodné oddělení systému pro uživatelské role navštěvník, přihlašený uživatel, pracovník, administrátor a superadministrátor. Umožňuje to efektivní správu jednotlivých častí systému. Velkým přínosem je i podrobné nastavení přístupových práv jednotlivých skupin uživatelů. Při testování jsem použil uživatelskou dokumentaci. Musím však podotknout, že systém je velice intuitivní a lze se v něm snadno vyznat i bez pořeby manuálu. Drobné připomínky pro zpříjemnění ovládání aplikace jsem odevzdal autorovi. Celkově mi aplikace připadá jako povedená.
37
38
PŘÍLOHA C. POSUDKY TESTŮ
Příloha D
Datové schéma databáze D.0.1
ER-diagram (datové schéma)
39
40
PŘÍLOHA D. DATOVÉ SCHÉMA DATABÁZE
Obrázek D.1: ER-diagram.
Příloha E
Obsah přiloženého CD • Reservations – adresář se zdrojovými kódy projektu, • Bc_prace – adresář obsahující elektronickou podobu textu,bakalářské práce, • Drupal – instalační soubory systému Drupal.
41