DIPLOMOVÁ PRÁCE
Anotace: Diplomová práce je zamerena na popis a predevším na rešení online rezervacního systému rekreacního objektu. Výsledkem rešení jsou internetové stránky umožnující zákazníkum jednoduchou rezervaci vybraného pokoje ve zvoleném termínu. Krome této verejné cásti pak stránky obsahují administracní cást pro kompletní nastavení parametru pokoju, cen, fotogalerie, atd. Nejduležitejší cástí administrace je správa rezervací, která má za úkol zjednodušit a zrychlit rutinní práci obsluhy.
Annotation: The thesis focuses on the description and particularly the design of the online booking system of a recreational facility. The goal of the thesis is to develop a website which enables customers effortless reservation of a chosen room in a chosen period. In addition to the publicly accessible part, the website also contains an administrative part for the set up of rooms, prices, photo gallery etc. The most important administrative part is the booking management system, the task of which is to facilitate and accelerate the everyday work of the staff.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-1-
DIPLOMOVÁ PRÁCE
Podekování Dekuji vedoucímu diplomové práce Ing. Janu Roupcovi Ph.D. za metodické vedení, vstrícnou spolupráci a cenné rady pri zpracování diplomové práce.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-2-
DIPLOMOVÁ PRÁCE
Cestné prohlášení Prohlašuji, že jsem diplomovou práci vypracoval samostatne, na základe uvedené literatury a pod vedením vedoucího diplomové práce.
………………. V Brne dne : 18.10.2006
Radek Martinka
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-3-
DIPLOMOVÁ PRÁCE
Obsah : 1. ÚVOD .....................................................................................................................................................................................5 1.1. REZERVACNÍ SYSTÉM ..................................................................................................................................................... 5 1.2. VÝBER PROSTREDÍ.......................................................................................................................................................... 7 2. ANALÝZA PROBLEMATIKY........................................................................................................................................9 2.1. DVOUVRSTVÝ MODEL.................................................................................................................................................... 9 2.2. ADMINISTRACNÍ CÁST .................................................................................................................................................. 11 2.2.1. Definice pokoju ........................................................................................................................................................12 2.2.2. Nastavení cen...........................................................................................................................................................12 2.2.3. Fotogalerie ...............................................................................................................................................................14 2.2.4. Nastavení textu.......................................................................................................................................................14 2.2.5. Rezervace.................................................................................................................................................................15 2.2.6. Seznam zákazníku..................................................................................................................................................16 2.3. VEREJNÁ CÁST .............................................................................................................................................................. 17 2.3.1. Hlavní stránka (HomePage).....................................................................................................................................17 2.3.2. Rezervace pokoju......................................................................................................................................................18 3. REŠENÍ PROBLÉMU ....................................................................................................................................................21 3.1. SEZNAM SKRIPTU.......................................................................................................................................................... 21 3.2. DATABÁZOVÁ STRUKTURA.......................................................................................................................................... 22 3.3. XHTML A CSS VALIDITA............................................................................................................................................ 26 3.4. ÚVODNÍ STRÁNKA (INDEX .PHP)................................................................................................................................. 27 3.5. ADMINISTRACNÍ CÁST .................................................................................................................................................. 27 3.5.1. Definice pokoju ........................................................................................................................................................27 3.5.2. Nastavení cen...........................................................................................................................................................30 3.5.3. Fotogalerie ...............................................................................................................................................................32 3.5.4. Nastavení textu.......................................................................................................................................................35 3.6. VEREJNÁ CÁST .............................................................................................................................................................. 36 3.6.1. Hlavní stránka (HomePage).....................................................................................................................................36 3.6.2. Rezervace pokoju......................................................................................................................................................37 4. ZÁVER .................................................................................................................................................................................45 SEZNAM OBRÁZKU ..........................................................................................................................................................46 SEZNAM POUŽITÉ LITERATURY .............................................................................................................................47 PRÍLOHY ................................................................................................................................................................................48
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-4-
DIPLOMOVÁ PRÁCE
1. Úvod Z názvu zadání diplomové práce je patrné, že výsledkem mého úsilí by mely být internetové stránky rekreacního objektu. Jde o rezervacní systém chaty, pomocí kterého by si mohli zákazníci zamluvit vybraný pokoj ve zvoleném termínu. Soucástí systému je krome zákaznické sekce také sekce administracní, která zajištuje kompletní nastavení a správu techto webových stránek. Následující kapitoly popisují analýzu rezervacního objektu jako celku, ve kterých uvádím obvyklá rešení bežne se vyskytujících komercních rešení a zároven je porovnávám s mým návrhem. Po analýze prijde na radu rešení dílcích problému a podrobný popis jednotlivých skriptu diplomové práce. Ke každé kapitole s rešením problému jsem priložil minimálne jeden screenshot z hotových stránek, címž by si lidé, kterí mou práci budou císt, meli udelat jasnou predstavu o funkcnosti rezervacního systému.
1.1. Rezervacní systém Pri samotném pocátku internetu se webové stránky skládaly výhradne ze statického HTML. Postupným vývojem, zdokonalováním programovacích jazyku a tím pádem i zvyšujícím se nárokum uživatelu zacaly být statické stránky nahrazovány dynamickými. Ty spolecne s databází byly schopny zajistit provoz naprostým novinkám typu internetové obchody. Krome rozmachu ruzného online prodeje paralelne vzkvétají i jiná odvetví, typicky internetové denníky, diskusní fóra, technická podpora atd. Do této skupiny by se dal jiste zaradit i rezervacní systém hotelového, knižního ci cestovního charakteru.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-5-
DIPLOMOVÁ PRÁCE Následující práce má za úkol vytvorit práve rezervacní systém rekreacního objektu. Pri prvotní analýze celé problematiky bylo pomerne prekvapivé zjištení, že se na internetu nevyskytují žádné volne širitelné a modifikovatelné verze jakéhokoli rezervacního systému. Taktéž popis problematiky rezervací není nikde rešen. Plyne z toho, že rezervacních systému není naprogramováno tolik jako již zmínených internetových obchodu. Po prozkoumání celé rady internetových stránek ruzných druhu rekreacních objektu bych rezervacní systém rozdelil do dvou základních skupin. První skupinou jsou stránky, které se rezervací v pravém slova smyslu nedají ani nazvat. Jedná se o jednoduchý formulár s kontaktními informacemi, požadovaným datem a poctem osob. Na základe techto informací pak personál rekreacního objektu v rámci svého informacního systému zjistí, zda je pro klienta volné místo ci nikoli. Tento zpusob rezervace ve svém dusledku nic nereší – neulehcí práci ani zákazníkovi, ani samotné obsluze. Krome toho vetšinou ani neumožnuje vybrat pokoj dle i sekundárních parametru, jako je napríklad vybavení ci fotografie pokoje.
Obr. 1)
Typická ukázka rezervace „prvního typu“, kdy volné místo overuje obsluha
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-6-
DIPLOMOVÁ PRÁCE
Druhou skupinou jsou pak stránky sautomatickou kontrolou volného místa a okamžité sdelení výsledku zákazníkovi. Ty jsou naprostým opakem a negují tak prakticky všechny výše popsané nevýhody. Výsledkem mé práce má být druhý prístup k rezervaci, tedy plne automatický rezervacní systém požadující jen minimální úcast lidských zdroju pri rutinní práci. Stránky by mely být naprogramovány tak, aby si klient jednoduše zvolil pokoj, datum ubytování a odjezdu, pocet prípadných spolu rekreantu. Po odeslání takového požadavku by mel být neprodlene spraven o dostupnosti a o predpokládané cene pobytu.
1.2. Výber prostredí Ze zadání diplomové práce je patrné, že rezervacní systém má být naprogramován v jazyce PHP. PHP v soucasnosti patrí do skupiny nejrozšírenejších programovacích jazyku internetových aplikací. Není nezajímavé, že vznikl zcela náhodou díky Rasmu Lerdofovi, který si v jazyce C naprogramoval pro vlastní potreby nové prostredí pro evidenci prístupu k jeho webovým stránkám. Ostatní uživatelé si toto prostredí oblíbili, a tak zacal velký rozkvet PHP. Za ta léta doznal jazyk velkého vývoje, pricemž od páté, tedy aktuální verze, byla zaclenena již rozumná podpora OOP. V soucasnosti se zdá být díky Jave a .NETu mírne na ústupu. Volba verze PHP pro diplomovou podléhala verzi jazyka, na kterém beží informacní systém. Jelikož se jedná o verzi 4.x, i já jsem zvolil tutéž. Z výše uvedeného duvodu, tj. nedostatecné podpory OOP této verze, jsem zvolil procedurální prístup. Výber databáze byl taktéž jednoduchý – zvolil jsem si MySQL pro její jednoduchost, rychlost a také licencní podmínky.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-7-
DIPLOMOVÁ PRÁCE
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-8-
DIPLOMOVÁ PRÁCE
2. Analýza problematiky Po podrobném prozkoumání požadavku ze strany administracní a také ze strany klientské bylo nutné rozhodnout, jaký model bude nejvýhodnejší použít.
2.1. Dvouvrstvý model Žádnou novinkou není fakt, že všechny dynamické stránky pracující nad databází se dají rozdelit do nekolika vrstev. Pocet vrstev by se dal chápat jako pocet nutných kroku mezi informacním systémem prodejce a výslednou www stránkou, kterou má možnost shlédnout zákazník. Je zrejmé, že malé internetové obchody budou mít techto vrstev méne, než eshopy s velkým množstvím produkt manageru a nepreberným množstvím zboží. Následující obrázek ukazuje, jak tyto vrstvy vypadají v praxi u velkého internetového obchodu.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
-9-
DIPLOMOVÁ PRÁCE
Obr. 2)
Trívrstvý model internetového obchodu oXyShop
Z obrázku je patrné, že výchozím bodem je informacní systém prodejce. V rámci první vrstvy data putují pres datový konektor do vrstvy druhé – v ní se nachází obvykle samotný internetový obchod propojený s produktovou databází a ta je zase propojena s marketingovou cástí. Tretí vrstvou jsou pak samotné www stránky cerpající data z obchodu a marketingu. Vrstvy se samozrejme mohou prolínat i jinak, napr. informacní systém prodejce muže být spojen prímo s druhou vrstvou, prípadne tretí vrstva bývá spojena s druhou. Vše záleží na složitosti a rozsahu celého systému. Jelikož se mé zadání diplomové práce svou složitostí nemuže rovnat s uvedeným internetovým obchodem, je zrejmé, že i model vrstev bude vypadat odlišne. Rezervacní systém jsem rozdelil do dvou vrstev, kde v základní vrstve je databáze a na ní jsou postavené dve na sobe nezávislé cásti – administracní a verejná.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 10 -
DIPLOMOVÁ PRÁCE
Obr. 3)
Dvouvrstvý model rezervacního systému
Administracní cást slouží ke kompletní správe rezervacního systému, verejná pak k samotnému rezervování. V následujících kapitolách obe cásti proberu dukladneji.
2.2. Administracní cást Jedním z požadavku na administrativu je jednoduchost a minimální casová nárocnost pro obsluhu. Ta musí mít nástroje pro vytvárení a editaci pokoju, nastavení cen, správu samotné rezervace a s tím související seznam zákazníku. Následující seznam uvádí jednotlivé cásti administrace: •
Definice pokoju
•
Nastavení cen
•
Fotogalerie
•
Nastavení textu
•
Rezervace
•
Seznam zákazníku
Výše zmínené cásti administrace jsou podrobneji probrány v nekolika následujících podkapitolách.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 11 -
DIPLOMOVÁ PRÁCE
2.2.1. Definice pokoju Pokoje jsou základním stavebním kamenem celého systému. Na základe vytvorených pokoju se budou odvíjet další funkce, jako je nastavení cen ci rezervace. Každý pokoj by mel mít definovaný název, podle kterého by jej zákazníci identifikovali, cenu, za kterou je možné pokoj pronajmout, dále maximální možnou kapacitu a v neposlední rade poznámku s prípadnými dodatecnými informacemi. Výše uvedené parametry pokoje jsou pouze ty, které má možnost zákazník videt na stránkách pri rezervaci. Z hlediska správy je však nutno pocítat i s dalšími atributy. Tím prvním je viditelnost pokoje – jedná se o to, zda -li není potreba daný pokoj ze seznamu všech pokoju z nejakého duvodu odstranit. Muže se stát, že bude napríklad v rekonstrukci, ci je rezervován pro soukromé úcely, a proto by nebylo vhodné ho vubec vystavovat. Dalším duležitým parametrem je preference pri vyhledávání. Tím je myšleno, že správce rekreacního zarízení chce preferovat jeden pokoj pred druhým. Pri hledání volného místa mu pak stránky nabídnou pokoje v poradí na základe nastavené preference. Otázkou zustává, zda-li to má v rámci malého rekreacního objektu smysl implementovat. Podle mého názoru je rekreacní chata príliš malá na to, aby takováto funkce mela význam a proto ji programovat nebudu.
2.2.2. Nastavení cen Jedním z nejduležitejších faktoru pri výberu toho ci onoho pokoje je samozrejme cena. Ta se dá vázat bud na osobu, nebo na celý pokoj. U malých objektu pak bývá zpravidla ješte možnost rezervace celého zarízení a to za cenu nižší, než je soucet cen za jednotlivé osoby, resp. soucet cen pokoju. V praxi se nejcasteji vyskytuje model takový, že je cena udána za osobu, ovšem v prípade nezaplnení celé kapacity pokoje se pak ušlý zisk majitele promítne do príplatku každého rekreanta.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 12 -
DIPLOMOVÁ PRÁCE V našem prípade se však s cenami kalkuluje naprosto odlišne. Na základe požadavku ze strany školy jsou ceny definovány tak, že zamestnanci mají jinou cenu než jejich rodinní príslušníci, kamarádi atd. Je proto nutné zavést vztahy mezi školou a klienty a následne jim definovat cenu za noc. Navíc cena se nezvyšuje pri nezaplnení kapacity pokoje. Platební systém ukazuje následující tabulka (hodnoty i vztahy jsou vymyšleny): Vztah
Cena [Kc]
Zamestnanec
100,-
Rodinní príslušníci
150,-
Prátelé
200,-
V prípade rekreace zamestnance s tríclennou rodinou a jedním kamarádem by výsledná cena byla dána souctem 100 Kc + 3x 150 Kc + 200 Kc a byla by nezávislá na kapacite pokoje. U definice cen bývá zpravidla možnost nastavení ruzných hodnot ruzným pokojum. Napríklad pokoj s balkónem a kabelovou televizí bude mít zcela jiste jinou hodnotu než ten, kterému toto vybavení chybí. Tato funkce je podle mého názoru jednou ze základních a nemela by proto chybet žádnému rezervacnímu systému. Další užitecnou funkcí bývá casová závislost ceny. Napríklad na Silvestra bývá cena jiná než v dobe letních prázdnin. Jelikož je v našem prípade cena za osobu po celý rok konstantní, nebude potreba tuto závislost programovat. U rekreacních objektu s velkou kapacitou pak bývá ješte možnost hromadného precenení. Napríklad v minulosti pri zmene DPH z 22% na 19% by stacilo jedno kliknutí a ceny by byly aktuální. Stránky však budou reprezentovat malý objekt a je proto zbytecné hromadnou zmenu ceny pridávat. Za predpokladu, že stránky budou sloužit malému rekreacnímu objektu, nemela by jiste chybet cena za pronájem celé chaty. Ta pochopitelne nebude dána souctem cen maximální kapacity, ale bude stanovena fixní cástka, která bude urcite nižší. Rezervace všech míst u velkých Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 13 -
DIPLOMOVÁ PRÁCE objektu se deje pouze na základe ústní dohody, protože riziko zneužití stránek k zablokování celé velké chaty je vysoké.
2.2.3. Fotogalerie V dnešní dobe je zboží, at už je v jakékoli podobe, bez patricné fotodokumentace vlastne neprodejné. Proto máme u vetšiny internetových obchodu náhledy, strední a velké rozmery fotografií, doplnkové fotky atd. Ne jinak je tomu u ubytovacích zarízení - obrázek západu slunce na Jadranu zanechá v klientovi zcela jiné pocity než jen text s názvem pobytu. Potencionální zájemce o ubytování by mel mít jasnou predstavu, jak to na zvoleném míste vypadá ci vjakém stavu jsou jednotlivé pokoje. K tomu slouží nedílná soucást každé webové prezentace, kterou je fotogalerie. Galerie rekreacního objektu bude vázána na již nastavené pokoje. Znamená to, že po jejich vytvorení bude moci obsluha nahrát na server fotografie vybraného pokoje. Každý obrázek by mel mít dve velikosti. Menší sloužící pro náhled a vetší potom pro detailnejší zobrazení. Samozrejmostí je možnost prirazení fotografií jen urcitému, prípadne všem pokojum. Nahrávání na server se vetšinou reší pomocí jednoduchého formuláre, pricemž se fotky nakopírují do predem pripraveného adresáre a do databáze se ukládá pouze název souboru.
2.2.4. Nastavení textu Jedním z požadavku na systém je minimální casová nárocnost pri bežném provozu. Obsluha tedy potrebuje nástroje, které by zastupovaly její rutinní cinnosti. V rámci správy rezervace bude potreba mimo jiné posílat emaily s potvrzením ci zamítnutím rezervace. Bylo by proto vhodné mít možnost automatického poslání takového Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 14 -
DIPLOMOVÁ PRÁCE emailu, který by mel prednastavenou formu. Obsluha by tak jednoduše klikla napríklad na tlacítko “Potvrdit rezervaci” a systém by se postaral o zbytek rutinních úkonu. V sekci nastavení textu by tedy byl definován potvrzovací email s dalšími instrukcemi napr. o platbe, dále zamítavý email, kontaktní informace, emailová adresa pro komunikaci atd.
2.2.5. Rezervace Rezervace je rozhodne tím nejduležitejším z celé diplomové práce. Obsluha by v této sekci mela videt obsazenost jednotlivých pokoju, potvrzené a nepotvrzené objedná vky, a pomocí jednoduchých funkcí s temito daty pracovat. K výpisu výše zmínených objednávek bude sloužit prehledná tabulka s výpisem pokoju a kalendárem, ve které bude barevne rozlišeno, který pokoj je obsazen a který ne. Obsazenost prvního týdne mesíce cervence by mohla vypadat následovne: Pokoj Pokoj 1 Pokoj 2
Sobota 1.7 1.7
Nedele 2.7 2.7
Pondelí 3.7 3.7
Úterý 4.7 4.7
Streda 5.7 5.7
Ctvrtek 6.7 6.7
Pátek 7.7 7.7
Cervená barva symbolizuje potvrzenou rezervaci, zelená nepotvrzenou. Z tabulky je tak na první pohled patrné, jak jsou na tom s obsazeností jednotlivé pokoje. Systém potvrzené a nepotvrzené objednávky je dán tak, že po rezervaci pokoje a termínu zákazníkem se zamluvenému pokoji automaticky nastaví zelená barva. Aby se obsluha nemusela každou chvíli dívat, zda nepribyla nová rezervace, bude s každou novou rezervací pro pracovníka vygenerován email s upozornením. Na základe rozhodnutí obsluhy se pak zelená rezervace bud potvrdí, nebo zruší. V prípade potvrzení se barva zmení na cervenou a vygeneruje se potvrzovací email s dalšími pokyny ohledne pobytu. V opacném prípade se zelená zmení na bílou a klient obdrží email se zamítavým stanoviskem.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 15 -
DIPLOMOVÁ PRÁCE Samotné potvrzování a zamítání rezervací bude skrz nedostatek místa v tabulce rešeno pomocí prídavného seznamu potvrzených a nepotvrzených objednávek. Krome prehledu o obsazenosti pokoju bude mít obsluha ješte prehled o rezervacích, které nejsou vyrešeny. Jedno z možných rešení je následující: Pokoj Pokoj 2 Pokoj 2 Pokoj 1
Datum 1.7 – 2.7 4.7 – 7.7 2.7 – 5.7
Zaplaceno Ne Ne Ano
Potvrdit/zrušit Potvrdit/zrušit Zrušit
Princip potvrzování a rušení rezervací je z této tabulky zrejmý. Po odsouhlasení a odeslání potvrzovacího emailu klient zadá jména a vztahy všech svých rodinných príslušníku a prátel, se kterými plánuje pobyt v rekreacním objektu. Až na základe tohoto zadání mu bude spocítána celková cena za ubytování. Tato funkce je však mimo rozsah diplomové práce a není tak její soucástí (viz kapitola 2.2.6). Krome potvrzování a rušení rezervací muže obsluha také manuálne rezervovat pokoj. V tomto smeru bude mít možnosti jako jakýkoli jiný klient a zpusob rezervace bude popsán v kapitole 2.4.2.
2.2.6. Seznam zákazníku Každá internetová aplikace mající co do cinení se zákazníky má svou databázi s jejich kontaktními informacemi. Tato databáze v drtivé vetšine prípadu je všem uživatelum internetu logicky skryta. Kontakty tak slouží vetšinou pouze pro vlastní potrebu subjektu. Velké podnikatelské subjekty mají pomerne propracovaný systém nad touto databází, který jim umožnuje kontrolovat, vyhledávat, modifikovat ci pridávat kontaktní informace. Problémoví zákazníci zvyklí pro pobavení rezervovat pobyty ci nakupovat zboží na cizí jména se mohou díky tomuto systému dockat nemilého zamítnutí u popsaných cinností.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 16 -
DIPLOMOVÁ PRÁCE Na základe dohody s vedoucím diplomové práce však tento systém nebudu implementovat, protože v dobe vývoje stránek jsme nemeli potrebné podklady pro komplexní vyrešení celé problematiky seznamu zákazníku.
2.3. Verejná cást Následující kapitoly se zabývají druhou cástí stránek rezervace, a to cástí verejnou. Jedná se o stránky dostupné všem uživatelum, na kterých najdou všechny potrebné informace a hlavne možnost rezervace pokoju. Puvodní myšlenka byla taková, že se stránky budou skládat z hlavní stránky (HomePage), informacích o pokojích a rezervace. S další a další úpravou návrhu jsem pak dospel k záveru, že posledne dve zminované sekce bude lepší spojit v jednu. Verejná cást se tedy bude skládat z následujících stránek •
Hlavní stránka (HomePage)
•
Rezervace pokoju
Stejne jako v administracní cásti, i zde venuji každé stránce kapitolku s krátkou analýzou problému.
2.3.1. Hlavní stránka (HomePage) V komercní sfére je úvodní stránka jednou z nejduležitejších cástí prezentace. V dnešním svete velkého výberu a konkurence musí homepage na zákazníka zapusobit kladne tak, aby si ji i pro príšte zapamatoval. Veškerý obsah – a to nejen na úvodní stránce – musí být prehledný a nesmí klást vysoké nároky na uživatelské znalosti internetu. Uvedených zásad se drží i tato práce, což nebude skrz jednoduchost celého projektu velký problém. Úvodní stránka je statická, nebot její obsah se mení tak málokdy, že vytváret tabulku v
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 17 -
DIPLOMOVÁ PRÁCE databázi a rešit nejakým zpusobem dynamicnost je zbytecné. Text na této stránce obsahuje všechny hlavní informace o chate, poloze a další duležité náležitosti. Jediným dynamickým prvkem na stránce je kontakt, u kterého existuje predpoklad castejší aktualizace než u popsaných informacích. Ten se generuje z nastavení textu popsaného v kapitole 2.2.4.
2.3.2. Rezervace pokoju Spousta webových stránek s rezervacemi má oddelené samotné pokoje od rezervací. Myslím tím to, že mají pro pokoje a jejich popisy, ceny, fotky jednu stránku a pro rezervaci mají stránku jinou. Z osobní zkušenosti vím, že to není príliš štastné rešení. Pokud si totiž vyberu pokoj, s císlem pokoje na papírku prekliknu do sekce s rezervacemi a tam teprve zjistím, že je pokoj obsazen, tak nejsem z pohledu zákazníka vubec nadšen. To je ten hlavní duvod, proc si myslím, že je lepší spojit obe dve cásti do jedné stránky. Zákazník tak má prehled jak o pokojích s jejich parametry, tak i o aktuální obsazenosti. Navíc se v tomto prípade nabízí možnost prehlednejší rezervace pouze u zvoleného pokoje. Mám tím na mysli, že zákazník se po kliknutí na pokoj dostane nejen k bližším informacím o nem, ale také k možnosti rezervace jen a pouze tohoto pokoje. Na verejnou cást rezervace kladu velký duraz, nebot se de facto jedná o jedinou stránku, která bude pro zákazníky videt. Proto musí být maximálne jednoduchá a pritom nabízet vše, co je k rezervaci zapotrebí. Zákazník na této stránce musí najít seznam všech pokoju s uvedenou kapacitou, cenou atd. Krome toho by bylo vhodné zobrazit také obsazenost techto pokoju s možnou rezervací. Další volbou by pak byl výber nejakého pokoje, pomocí nehož by se zákazník dostal k fotografiím a také k rezervaci. Aby byla samotná rezervace pokud možno co nejjednodušší, je ideální napríklad na nejakém kalendári zvolit data nástupu a odjezdu. Tím se odstraní problém z nekolika Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 18 -
DIPLOMOVÁ PRÁCE rezervacních systému na internetu, kde se tato data zadávala napr. ve formátu rrrr.mm.dd. Z programovacího hlediska je to sice velmi jednoduché, ovšem existuje velká skupina lidí, kterí o významu techto písmenek nemají ani zdání. Po výberu dat príjezdu a odjezdu by pak zamestnanec školy obdržel email se zprávou, že objednávka byla vložena do systému, a že se v brzké dobe docká potvrzení nebo zamítnutí rezervace. Zákazník, který se školou nemá v rámci pracovního úvazku nic spolecného, by potom musel vyplnit kontaktní údaje, pricemž by také dostal email s výše uvedenou zprávou.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 19 -
DIPLOMOVÁ PRÁCE
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 20 -
DIPLOMOVÁ PRÁCE
3. Rešení problému Po kompletní analýze rezervacního systému prichází praktická cást diplomové práce. Celá tretí kapitola se bude venovat rešení dílcích problému a bude také detailne popisovat každou naprogramovanou funkci doplnenou patricnými screenshoty. Jen pro úplnost dodám, že jsem skripty vyvíjel pod PHP 4.4.3 a databází MySQL 4.0.4 beta. Vývojové prostredí, pokud se tak tento program dá oznacit, používám již nekolik let v podobe Ultra Editu a pro pohodlnejší práci s databází potom PHP Admin verze 2.8.2.1.
3.1. Seznam skriptu Na úvod by se jiste slušelo predstavit jednotlivé skripty, tedy všechny soubory dávající jako celek diplomovou práci. Krome pojmenování skriptu uvedu také velmi strucný popis, co který skript delá. •
index.php – úvodní stránka s rozcestníkem
•
nastaveni.php – nastavení potvrzovacích a zamítavých emailu, kontaktní informace
•
pokoje.php – vytvárení a editace pokoju v rekreacním zarízení
•
fotky.php – vytvárení a editování fotogalerie
•
cenik.php – pridávání a zmeny cen za osobu a noc
•
rezervace.php – potvrzování/zamítání rezervací, pridávání nových
•
homepage.php – úvodní stránka pro zákazníky
•
public_pokoje.php – kompletní rezervace, seznam pokoju a cen
•
funkce.php – podpurné funkce pro všechny skripty
•
styly.css – soubor s definovanými styly
•
konec_html.php – skript pro ukoncení tagu body a html
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 21 -
DIPLOMOVÁ PRÁCE •
include/listovani_kalendare – skript pro zmenu mesíce kalendáre
•
include/vytvor_session.php – session promenné rezervace
•
include/vytvor_session2.php – session promenné kalendáre
•
include/zrus_session.php – odstranení session promenných
Poslední ctyri skripty jsou umísteny v adresári include. Jsou to vetšinou jen cásti z nejakého celku, které se ovšem nekolikrát opakovaly a proto jsem je umístil tímto zpusobem.
3.2. Databázová struktura Velmi duležitou a pri návrhu stránek prímo nejduležitejší cástí je pochopitelne návrh databáze. Od první verze došlo behem konzultací k nekolika úpravám, pricemž tabulky s položkami ukazuje následující obrázek.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 22 -
DIPLOMOVÁ PRÁCE
Obr. 4) Struktura SQL databáze
Krome samotné struktury tabulek jsou z obrázku patrné také vztahy mezi jednotlivými tabulkami pomocí primárních a cizích klícu. Celkem logicky je popis zapotrebí zacít od nejvýše postavené tabulky – rezervace. Struktura tabulky: rezervace id_rezervace
PK, int(11)
od
date
do
date
volnych_mist tinyint(4) id_pokoje
CK,smallint(6)
zaplaceno
tinyint(1)
nahradnik
tinyint(1)
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 23 -
DIPLOMOVÁ PRÁCE potvrzeno
tinyint(1)
Primárním klícem je zde id_rezervace s parametrem autoincrement pro automatické zvyšování tohoto císla o jednicku. Položka s volnými místy je pripravena pro implementaci seznamu zákazníku, kde bude ukazovat kolik ješte lze ubytovat v pokoji lidí. S tabulkou pokoje (popsána níže) je svázána pomocí cizího klíce id_pokoje. Tabulka pokoje má tento tvar: pokoje id
PK, smallint(6)
nazev
varchar(100)
kapacita
tinyint(1)
poznamka
varchar(255)
viditelnost
tinyint(1)
První položka (id) je primárním klícem a má nastavený parametr autoincrement. Na pokoje navazuje tabulka ceny_pokoju s touto strukturou: ceny_pokoju id
PK, smallint(6)
id_pokoje
CK, smallint(6)
prislusnik
varchar(50)
cena
smallint(6)
Primární klíc je zde položka id s autoincrementem, s tím že tabulky jsou svázány pomocí cizího klíce id_pokoje. Další tabulkou prímo navazující na pokoje jsou fotky. fotky id
PK, smallint(6)
id_pokoje
CK, smallint(6)
maly
varchar(100)
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 24 -
DIPLOMOVÁ PRÁCE velky
varchar(100)
Struktura fotek je témer identická s predešlou tabulkou, položka id je inkrementální a má primární klíc. Svázání je zajišteno taktéž cizím klícem stejného jména. Predposlední tabulka nese název zakaznici. zakaznici id_zamestnance PK, int(11) jmeno
varchar(30)
prijmeni
varchar(30)
telefon
varchar(20)
email
varchar(40)
id_rezervace
CK, int(11)
Ta slouží jednak pro provázání mezi rezervací a zákazníkem (pomocí cizího klíce id_rezervace), ale také je pripravena pro ukládání kontaktních informací spolu rekreantu zadavatele rezervace. Poslední tabulka nese jméno nastaveni a není svázána s žádnou jinou. nastaveni potvrzovaci_mail blob zamitavy_mail
blob
kontakt
blob
kontaktni_email
varchar(100)
cena_cele_chaty
int(11)
První tri položky jsou neomezeného typu blob, aby emaily a kontakt mohl obsahovat libovolne dlouhý text. Poslední dve položky jsou zrejmé z tabulky.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 25 -
DIPLOMOVÁ PRÁCE Samotné pripojení k databázi má na starost funkce pripoj_db() umístená v souboru funkce.php. Kontrola pripojení je umístena v témže souboru, pricemž pri neúspešném spojení je vypsána hláška o neúspechu.
3.3. XHTML a CSS validita Jedním z požadavku na internetové stránky je validita jejího kódu dle standardu organizace W3C. Pokud je stránka oznacena za XHTML a CSS validní, mela by se zobrazovat ve všech internetových prohlížecích stejne a hlavne bezchybne. To je ovšem pouze teorie, nebot z praxe mohu potvrdit naprostý opak. Soucástí správne napsané stránky jsou pochopitelne základní tagy, jež jsem umístil na zacátek skriptu funkce.php. Ten se pomocí direktivy include dostává na zacátek každého skriptu. Stejným zpusobem je vyrešen také konec HTML stránky, který je umísten v souboru konec_html.php.
Obr. 5)
Oznámení o XHTML validite
Kontrola validity se provádí pomerne jednoduše na webových stránkách organizace, kde stací do formuláre vložit URL adresu kontrolovaných stránek. Tamní skript potom projede kód stránek a oznací je bud za validní, prípadne nevalidní s výpisem všech chyb. Obdobným zpusobem je rešena také validita CSS. Styly jsou umísteny v externím souboru styly.css s tím, že do tela skriptu se dostanou díky základním tagum, které jsem popsal výše.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 26 -
DIPLOMOVÁ PRÁCE
3.4. Úvodní stránka (index.php) Úvodní stránka by se dala oznacit za rozcestník mezi obema sekcemi a všemi skripty. Je vytvorena ciste pro potreby této práce – ve výsledku nebude videt ani v administraci, ani pro verejnost. Její jednoduchý vzhled, který pro tyto úcely stací, zobrazuje následující obrázek.
Obr. 6)
Úvodní stránka (index.php)
3.5. Administracní cást Stejne jako ve druhé kapitole i zde zacnu rešení od administracní cásti. Jen steží by se totiž dal rešit problém rezervace pokoju ve verejné cásti, pokud by nebyly pokoje vubec nadefinovány. Prístup k této cásti stránek by mela mít pouze obsluha, tj. školou zvolený pracovník. Autentifikace obsluhy není soucástí diplomové práce, nebot díky identifikacnímu císlu každého zamestnance v informacním systému se administracní cást zobrazí pouze vybraným osobám.
3.5.1. Definice pokoju Jak jsem již uvedl v analýze, definice pokoju je tím prvním krokem, který je potreba ucinit pro splnení úcelu techto stránek. Celý skript je umísten v souboru pokoje.php a má tedy za úkol
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 27 -
DIPLOMOVÁ PRÁCE definovat nové, respektive editovat stávající pokoje. Pridání nového pokoje ukazuje následující obrázek:
Obr. 7)
Formulár pro pridání nového pokoje
K vyplnovaným hodnotám bych snad jen dodal komentár u viditelnosti, která slouží k zobrazení ci nezobrazení pokoje na stránkách. Pokoj nebude videt, pokud se zadá císlo 0, v opacném prípade zobrazen bude. Zámerne jsem toto polícko neomezil pouze na hodnotu 0/1, nebot hodnota by se dala v budoucnu využít k preferenci vyhledaných pokoju. Duvod, proc jsem tuto funkci nepridal jsem uvedl v analýze. Takovou zajímavostí je programové rešení – formulár se generuje automaticky na základe položek v databázové tabulce pokoje. Jméno položky vypisuje funkce nazev_sql_polozky(), která dostává jako vstupní parametr odkaz na select MySQL_Query, a poradí položky. Takto získaný text se ješte zformátuje do požadovaného tvaru a vypíše se. Zpusob popsaného rešení má jednu velkou výhodu – v prípade potreby napríklad pridání jednoho parametru pokoje stací pouze do tabulky pokoje vložit novou položku a skript se nemusí upravovat. Po vyplnení všech náležitostí a následném odeslání formuláre pomocí tlacítka vytvorit se v seznamu pokoju, který je umístený nad formulárem, vypíše nove pridaný pokoj. Tento krok se opakuje do té doby, než se do databáze uloží všechny pokoje rekreacního strediska. Výsledek by mohl vypadat následovne:
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 28 -
DIPLOMOVÁ PRÁCE
Obr. 8)
Seznam všech pokoju v rekreacním objektu
Na obrázku 6 lze videt seznam všech pokoju rekreacního objektu. Pokoje lze pomocí odkazu v hlavicce tabulky trídit podle názvu pokoje, kapacity, poznámky a viditelnosti. U každého pokoje je také dvojice odkazu Edituj a Smazat. Druhý zminovaný nemá smysl príliš popisovat, protože jeho funkce je zrejmá. Odkaz Edituj umožní editaci již vytvoreného pokoje a to tak, že se data nahrají do formuláre pro pridání nového pokoje. Pokud je potreba upravit nastavení Malého pokoje, bude to vypadat následovne:
Obr. 9)
Seznam všech pokoju v rekreacním objektu
Pro prehlednost se krome objevení samotných parametru v políckách formuláre zmení také hlavicka s informací o editaci pokoje a text odesílacího tlacítka.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 29 -
DIPLOMOVÁ PRÁCE
3.5.2. Nastavení cen Zpusobu plateb jsem se podrobneji venoval v kapitole 2.2.2 a proto rovnou prejdu k rešení. Skript je umísten v souboru cenik.php a po databázové stránce je spjat s pokoji. Princip pridávání, mazání a zmen ceny je analogický s definicí pokoju.
Obr. 10)
Pridání nové ceny za osobu a noc
Oproti pokojum zde nastala menší zmena v podobe zatrhávacích checkboxu, které se generují na základe seznamu pokoju. Jsou zde umístený proto, aby šla definovat ruzná cena pro ruzné pokoje. Ponevadž se však predpokládá shodná cena pro všechny pokoje, tak jsou checkboxy standardne zatržené. Pro ukázku zadám novou cenu pro zamestnance školy a pro jeho rodinné príslušníky. Výsledek se projeví v prehledu všech cen.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 30 -
DIPLOMOVÁ PRÁCE
Obr. 11)
Prehled všech cen
Seznam cen šel vypsat také ve dvou rádcích, ovšem v tom prípade by se musely složite rešit ruzné ceny ruzných pokoju. Dále nepredpokládám, že by príslušníku bylo takové množství, že by se v seznamu cen nedalo orientovat. Pro snazší orientaci je opet možnost razení zobrazení podle pokoju, príslušníku a také podle ceny. Taktéž v seznamu cen se objevují odkazy pro smazání a editaci záznamu. Jelikož se jedná o naprosto stejnou funkcnost jako u mazání a editaci pokoju, nepokládám za nutné prikládat další obrázek s popisem. Krome nastavení výše uvedených cen je také zapotrebí nastavit cenu za pronájem celé chaty. Jelikož by bylo zbytecné vytváret pro jednu hodnotu novou databázovou tabulku, rozhodl jsem se ji pridat do tabulky nastaveni. Skript samozrejme zustává stejný, takže ceny se nastavují na jednom míste. Následující obrázek ukazuje, jakým zpusobem se nastavuje cena za rezervaci celé chaty:
Obr. 12)
Formulár pro zmenu ceny za rezervaci celé chaty
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 31 -
DIPLOMOVÁ PRÁCE
Zmena ceny je v tomto prípade velmi jednoduchá – stací prepsat hodnotu ve formulári a kliknout na zmenit.
3.5.3. Fotogalerie Fotogalerii má na starosti skript fotky.php a databázová tabulka fotky. Skript má taktéž prímou souvislost s definicí pokoju. Princip pridávání, editování a mazání fotografií je z principu HTML mírne odlišný a proto tuto sekci proberu podrobneji.
Obr. 13)
Pridání nové fotografie
Z obrázku je patrná i funkcnost – pomocí tlacítek Procházet se vybere fotografie ve dvou rozlišeních. Malá fotografie slouží pro náhled, velká potom pro detailní zobrazení (hodnoty rozlišení nechávám plne na obsluze). Doporucuji se však držet pravidla, že malé fotky budou mít vždy stejnou alespon výšku. Ve verejné cásti by totiž ruznorodá výška obrázku nevypadala nejlépe. Další duležitou poznámkou je velikost fotek – stále mnoho uživatelu internetu si neuvedomuje, že napríklad nekomprimovaný formát bmp budou lidé stahovat déle, než komprimovaný jpg. Ackoli stránky nijak neomezují v maximální velikosti priložených fotek, doporucuji co nejmenší velikost. Tu lze dosáhnout napríklad pomocí programu Adobe Photoshop (funkce uložit pro web).
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 32 -
DIPLOMOVÁ PRÁCE Fotografie je možné priradit jednomu, ale také více pokojum. Podporované formáty nejsou dány programováním, nýbrž samotnými prohlížeci. Ctyrka nejrozšírenejších internetových prohlížecu bez problému zobrazuje obrázky jpg, gif, png, bmp a další. Po vyplnení potrebných polícek formuláre se fotky uploadnou do adresáre fotky. Tento adresár je menitelný na zacátku samotného skriptu v príkazu define, jehož druhý parametr je práve dotycná složka. Seznam fotek potom muže vypadat napríklad takto:
Obr. 14)
Seznam všech fotografií
Stejne jako v predešlé kapitole, i tento seznam vypadá ponekud neprehledne. Zde jsem zvolil tento zpusob proto, že v opacném prípade by bylo nutné k fotografii vypisovat seznam pokoju. Pri vetším množství pokoju by byla prehlednost ješte horší a navíc by vubec nebylo prehledné, kolik má který pokoj fotek. Temito neduhy mnou navržený seznam netrpí, nebot jako ostatní, i tento lze trídit podle vlastních požadavku – podle pokoje ci podle fotografie.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 33 -
DIPLOMOVÁ PRÁCE Za zmínku také stojí rozlišení fotografií, které je uvedeno v závorkách za jménem souboru. Na príkladu je krásne videt, že výška malého obrázku je všude 150 pixelu a ve verejné cásti by se melo zobrazovat vše v porádku. Na rozlišení velké fotografie už nesejde, protože po rozkliknutí náhledu se fotka zobrazí v rodicovském okne. Mazání je opet rešeno jedním kliknutím na patricný odkaz. Co se však týce editování, to dostálo zmen. Pokud klikneme na editování u fotografie pokoj2v.jpg, modifikuje se formulár tímto zpusobem:
Obr. 15)
Editace fotografie
Pri editaci již uložené fotky se dá editovat pouze její zarazení k pokojum. Polícka Malá a Velká fotka jsou prázdná skrz princip uploadování souboru. Problém spocívá v tom, že po výberu souboru pro upload se fotka nahraje do defaultního adresáre, který je dán nastavením PHP. Z odkazu na tento soubor je potreba zjistit jeho jméno a hlavne ho zkopírovat do cílové složky, nebot po dokoncení behu skriptu je fotka automaticky ze standardního adresáre smazána. A zde je ten problém – cesty k fotkám v políckách formuláre nelze nejakým zpusobem vygenerovat z dat databáze. I kdyby ty cesty byly správné a soubor by na tom míste opravdu existoval, nebyl by zkopírován do adresáre PHP a tudíž by jej nebylo možné zkopírovat do našeho adresáre s ostatními fotkami. Z výše uvedeného vyplývá, že pokud je potreba nahradit jednu fotku druhou, je nutné nejprve tu starou smazat a novou poté nahrát klasickým zpusobem.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 34 -
DIPLOMOVÁ PRÁCE
3.5.4. Nastavení textu Jak jsem psal vanalýze diplomové práce, nastavení textu má za úkol predevším zvýšit efektivitu práce obsluhy. Mely by to zajistit preddefinované texty potrebné pro nekolik rutinních cinností. Skript je umísten v souboru nastaveni.php a v databázi jej predstavuje tabulka nastaveni. Jak jsem však predeslal u cen, tabulka nastaveni nese také informace o cene za rezervaci celého objektu.
Obr. 16)
Stránka s nastavením textu
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 35 -
DIPLOMOVÁ PRÁCE Z priloženého screenshotu je zrejmé, že se jedná o velice jednoduchou stránku s nekolika poli textarea a jedním klasickým inputem. Prvním dve položky jsem již nekolikrát objasnil, proto nebude potreba dalšího komentáre. Pole kontakt obsahuje kontaktní informace na obsluhu a zobrazuje se na homepage verejné cásti. Poslední položka slouží pro odeslání potvrzovacího nebo zamítavého emailu, resp. pro adresu odesílatele – do hlavicky from. Editace výše uvedených textu je velmi jednoduchá. Stací dle libosti upravit text a poté zmácknout tlacítko zmenit.
3.6. Verejná cást Jak jsem již uvedl v analýze, verejná cást se bude skládat pouze ze dvou stránek. Tou první bude homepage, druhá pak samotná rezervace a s tím spojené funkcionality. 3.6.1. Hlavní stránka (HomePage) Textový obsah hlavní stránky ponechám spíše samotné obsluze, protože ta nejlépe ví, které informace by zákazníci potrebovali vedet. Stránka je tedy na první pohled statická, nicméne ve spodní cásti se zobrazují kontaktní informace brané z databáze. Následující obrázek ukazuje, jak by mohla tato stránka vypadat:
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 36 -
DIPLOMOVÁ PRÁCE
Obr. 17)
Ukázka homepage (text i obrázek je ilustrativní)
3.6.2. Rezervace pokoju Touto kapitolou se dostáváme ke smyslu celé diplomové práce. Jedná se vlastne o jedinou stránku, kterou zákazníci uvidí. Stránka je výstupem skriptu public_pokoje.php a má co do cinení témer se všemi tabulkami databáze.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 37 -
DIPLOMOVÁ PRÁCE Po otevrení stránky se v její horní cásti zobrazí seznam se všemi pokoji, kapacitami, poznámkami a také s rozsahem cen. Tento rozsah je ve formátu minimální až maximální ceny za osobu. Je to rešeno tímto zpusobem práve skrz atypický zpusob platby.
Obr. 18)
Seznam všech pokoju s nekolika vypsanými parametry
V prípade zájmu zákazníka o fotografie, prípadne o výcet cen, je možnost kliknout na odkaz názvu pokoje. Tím se dostane do podrobných informací pokoje. V jeho horní cásti je opet identický výpis pokoju, tentokrát však pouze vybraného. Pod ním je kompletní výcet cen následující kalendárem s možností rezervace (popis a princip rezervace je popsán níže). Následuje fotogalerie, která je spjata s vybraným pokojem. Je tvorena malými náhledy, na které stací kliknout a v témže okne se zobrazí velká fotografie. U náhledu je krásne videt, proc je vhodné dodržovat stejnou výšku všech malých fotek. Ruzné vertikální rozmery by totiž mely neblahý vliv na vzhled stránky. Na úplném konci je odkaz s návratem na seznam všech pokoju.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 38 -
DIPLOMOVÁ PRÁCE
Obr. 19)
Detaily vybraného pokoje (kalendár je skrz formátování uríznut)
Pod seznamem se všemi pokoji se nachází tabulka symbolizující kalendár aktuálního mesíce spojený se seznamem pokoju. Barevný podklad nekterých polícek rozlišuje obsazený a volný pokoj. Zelená barva pritom ríká, že pokoj je predbežné zamluvený (rezervace ješte nebyla potvrzena obsluhou), cervená pak o definitivní rezervaci pokoje. Nad tímto kalendárem je mesíc s rokem a šipky, pomocí kterých se listuje vždy o mesíc dopredu ci dozadu.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 39 -
DIPLOMOVÁ PRÁCE
Obr. 20)
Detail kalendáre s ukázkou obsazeností pokoju (skrz formátování uríznut)
Zobrazení kalendáre má na starosti pomerne složitá funkce ukaz_kalendar v souboru funkce.php. Jako parametry se jí dávají bud aktuální nebo zvolený datum a také id pokoje, pokud se má zobrazit kalendár jen u nej. Samotná rezervace se provádí velmi jednoduše - v kalendári se vybere datum nástupu a odjezdu (pracuje i obrácene), pricemž po kliknutí na první datum je znemožneno vybrat druhé datum u jiného pokoje.
Obr. 21)
Výber prvního data pri rezervaci
Ihned po výberu prvního data vyskocí pod kalendárem tlacítko na jeho zrušení. To je pro prípad ukliknutí. Pokud se zadá i druhé datum, pribude k rušícímu tlacítku také tlacítko pro potvrzení vybrané rezervace a také objednávaný termín.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 40 -
DIPLOMOVÁ PRÁCE
Obr. 22)
Zrušení/Potvrzení vybrané rezervace
V prípade zrušení rezervace k ní opravdu dojde a stránky se vrací do výchozího stavu. Pokud však zákazník rezervaci potvrdí, tak se stane hned nekolik vecí. V prvé rade se zjistí, zda-li se jedná o zamestnance školy ci cizího zákazníka. To se deje pomocí id zamestnance, které rezervacní systém prebírá z informacního systému školy. V prvním prípade je sled operací následující - do databáze se uloží objednaný termín a také identifikacní císlo zamestnance školy. Toto id je svázáno s id rezervace v tabulce zákaznici. Po uložení do obou tabulek se zamestnanci ukáže text s potvrzením, že jeho rezervace byla uložena do systému a v brzké dobe se docká reakce obsluhy. Obsluze se na to odešle email s upozornením, že se v systému objevila nová objednávka.
Obr. 23)
Potvrzení o uložení rezervace do databáze
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 41 -
DIPLOMOVÁ PRÁCE
V prípade druhém, tedy kdy si termín zarezervoval zákazník nepocházející ze školy, je potreba na nej zjistit kontakt. Proto se zobrazí jednoduchý formulár se jménem, príjmením, telefonem a emailem.
Obr. 24)
Formulár pro získání kontaktu
Po odeslání dochází k podobnému sledu operací jako u zamestnance školy. Nejprve se uloží do tabulky rezervace vybraný termín a do zákazníku kontaktní informace (neukládá se id jako v predešlém prípade). Princip svázání obou tabulek je identický. Taktéž cizí zákazník je obeznámen s úspešnou operací a obsluze je odeslán email. Všechny vkládané údaje prochází validací, aby se omezilo riziko útoku a také aby se zamezilo uložení nesmyslných údaju. Email se kontroluje pomocí regulárních výrazu a každý retezec je zformátován pro bezpecné uložení do databáze (jsou odstraneny apostrofy, lomítka a další nežádoucí znaky). V prípade pokusu o uložení kontaktu v nesprávném formátu je zákazník upozornen výrazným nápisem s patricným oduvodnením.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 42 -
DIPLOMOVÁ PRÁCE
Obr. 25)
Špatne vyplnený formulár
Po výše zmínené rezervaci se má zamestnanec školy ci cizí zákazník možnost presvedcit o úspechu své objednávky v podobe zeleného podkladu vybraného termínu.
Obr. 26)
Výsledek rezervace
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 43 -
DIPLOMOVÁ PRÁCE
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 44 -
DIPLOMOVÁ PRÁCE
4. Záver Diplomová práce pojednává o problematice rezervacního systému rekreacního objektu. Je rozdelena do dvou cástí. Tou první je analýza rezervací, ve které se podrobne zkoumá rezervacní systém z pohledu zákazníka i obsluhy. Cást druhá pak popisuje rešení rezervacního systému a dala by se oznacit za dokumentaci k naprogramovaným stránkám. Výsledek mé práce jsou tedy internetové stránky, které umožnují jednoduché nastavení parametru pokoju, cen a fotografií. Zákazníci mohou na základe tohoto nastavení intuitivne rezervovat pokoje a obsluha rezervaci bud potvrdí nebo zamítne. Grafickou stránkou rezervacního systému jsem se príliš nezabýval, nebot predpokládám implementaci do školního informacního systému. Pro toto zaclenení je potreba ponechat grafiku velmi strídmou a usnadnit tak práci pri sjednocování vzhledu. Pro nasazení do ostrého provozu je potreba naprogramovat pouze ukládání všech rekreantu a s tím související generování ceny. Seznam rekreantu je také nutné uložit do souboru pdf pro pozdejší tisk. Pri implementaci je pak nutné priradit do patricné session promenné identifikacní císlo zamestnance školy, na jehož základe se bude mimo jiné zobrazovat administracní sekce. Dále je potreba nastavit adresár pro ukládání fotografií, sjednotit databázi MySQL s Oradlem a v neposlední rade upravit vzhled stránek.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 45 -
DIPLOMOVÁ PRÁCE
Seznam obrázku Obr. 1)
Typická ukázka rezervace „prvního typu“, kdy volné místo overuje obsluha................ 6
Obr. 2)
Trívrstvý model internetového obchodu oXyShop .................................................... 10
Obr. 3)
Dvouvrstvý model rezervacního systému................................................................... 11
Obr. 4)
Struktura SQL databáze ............................................................................................. 23
Obr. 5)
Oznámení o XHTML validite.................................................................................... 26
Obr. 6)
Úvodní stránka (index.php) ....................................................................................... 27
Obr. 7)
Formulár pro pridání nového pokoje......................................................................... 28
Obr. 8)
Seznam všech pokoju v rekreacním objektu............................................................... 29
Obr. 9)
Seznam všech pokoju v rekreacním objektu............................................................... 29
Obr. 10)
Pridání nové ceny za osobu a noc.......................................................................... 30
Obr. 11)
Prehled všech cen.................................................................................................. 31
Obr. 12)
Formulár pro zmenu ceny za rezervaci celé chaty .................................................. 31
Obr. 13)
Pridání nové fotografie.......................................................................................... 32
Obr. 14)
Seznam všech fotografií......................................................................................... 33
Obr. 15)
Editace fotografie .................................................................................................. 34
Obr. 16)
Stránka s nastavením textu..................................................................................... 35
Obr. 17)
Ukázka homepage (text i obrázek je ilustrativní) .................................................... 37
Obr. 18)
Seznam všech pokoju s nekolika vypsanými parametry .......................................... 38
Obr. 19)
Detaily vybraného pokoje (kalendár je skrz formátování uríznut)........................... 39
Obr. 20)
Detail kalendáre s ukázkou obsazeností pokoju (skrz formátování uríznut)............ 40
Obr. 21)
Výber prvního data pri rezervaci............................................................................ 40
Obr. 22)
Zrušení/Potvrzení vybrané rezervace .................................................................... 41
Obr. 23)
Potvrzení o uložení rezervace do databáze............................................................. 41
Obr. 24)
Formulár pro získání kontaktu............................................................................... 42
Obr. 25)
Špatne vyplnený formulár...................................................................................... 43
Obr. 26)
Výsledek rezervace................................................................................................. 43
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 46 -
DIPLOMOVÁ PRÁCE
Seznam použité literatury [1]
Kosek, J.: PHP – Tvorba interaktivních internetových aplikací. GRADA Publishing, Praha, 1998
[2]
Castagnetto J., Rawat H., Schumann S., Scollo Ch., Veliath D. – PHP programujeme profesionálne. Computer Press, Praha, 2001
[3]
Schlossnagle G. – Pokrocilé programování v PHP 5. Zoner Press, Praha, 2004
[4]
Lacko L. – SQL Hotová rešení. Computer Press, Brno, 2003
[5]
Prokop M. – CSS kaskádové styly pro webdesignéry. Mobil Media, Praha, 2003
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 47 -
DIPLOMOVÁ PRÁCE
Prílohy Soucástí diplomové práce je CD se všemi zdrojovými kódy a se strukturou SQL databáze. CD dále obsahuje diplomovou práci v elektronické podobe a všechny použité obrázky.
Rezervacní systém rekreacního objektu Vysoké ucení technické v Brne, Fakulta strojního inženýrství, Ústav automatizace a informatiky
- 48 -