2012 Rezervační systém Tvorba WWW stránek Vytvoření rezervačního systému pro rezervaci motokár,ubytování a atrakcí Marek Svoboda Motokáry Motobydlo 30.12.2012
Obsah 1.Základní charakteristika... 3 a) Téma semestrální práce... 3 b) Určení funkce systému... 3 c) UML use case diagram... 4 d) Aktivity Diagram... 5 e)rich Picture... 6 f) E-R diagram... 6 2.Základní vlastnosti databáze... 7 a) Navázání spojení s databází... 7 b)ukončení spojení... 8 c) Ukázka vykonání SQL dotazu v PHP... 8 3. Popis tabulek a jejich atributu... 8 a)tabulka Uživatele... 8 4.Struktura adresáře... 9 5. Závěr...11 Vypracoval: Marek Svoboda 2012/2013 Stránka 2
1.Základní charakteristika a) Téma semestrální práce Jako téma semestrální práce jsem si zvolil Motokáry Motobydlo. Systém by měl umožňovat rezervaci atrakcí motokár ubytovaní a jídla. Jedná se o systém pro malé a střední podniky působící v oblasti motokár a ubytovaní. Systém jsem navrhl jako vhodnou náhradu klasického systému zapisování objednávek na papír. Aplikace je naprogramovaná v jazyce PHP,HTML 5 a CSS3, javascript a využívá databázi Oracle. Jelikož je zimní období, implementoval jsem do stránek skript na sněžení b) Určení funkce systému Motobydlo je multifunkční uživatelský systém, který rozeznává různé skupiny uživatelů a různá práva. Vše je definováno pomocí tabulek v databázi a je možné tyto atributy měnit bez zásahu do zdrojového kódu aplikace. Do aplikace by se dále mohl implementovat guestbook, galerie a rezervace dalších komponent jako je rezervace motokár a jídla pro dané ubytovaní. Základními skupinami jsou: Neregistrovaný uživatel - Může se registrovat a sledovat novinky na hlavni ploše a zobrazit kontakt. Registrovaný uživatel - Může provádět rezervace ubytovaní, odhlásit se a vypsat svoje rezervace. Zaměstnanec - Může spravovat rezervace vkládat nové a vypsat uživatele kteří jsou v systému registrovaní. Administrátor - Může vkládat rezervace a vypsat je dále může vypsat uživatele a případně je smazat, přidat uživatele a přiradit jim práva 0- registrovaný uživatel 1- zaměstnanec 2- admin, dále může vypsat uživatele do XML a spravovat hlavní plochu pomocí TinyMce Vypracoval: Marek Svoboda 2012/2013 Stránka 3
c) UML use case diagram Fakulta elektrotechniky a informatiky Vypracoval: Marek Svoboda 2012/2013 Stránka 4
d) Aktivity Diagram Fakulta elektrotechniky a informatiky Vypracoval: Marek Svoboda 2012/2013 Stránka 5
e)rich Picture f) E-R diagram Vypracoval: Marek Svoboda 2012/2013 Stránka 6
2.Základní vlastnosti databáze a) Navázání spojení s databází Ukázka PHP kódu, který zajišťuje spojení s databázovým serverem. Pro komunikaci s databází je použito PHP PDO. <?php class Application { private $user = 'st32461'; private $pass = 'ST32461'; private $host = 'fei-sql1'; private $charset = 'UTF8'; private $e = null; private $c = null; public $db; public function connect() { $this->db = oci_connect($this->user, $this->pass, $this->host, $this- >charset); } if (!$this->db) { } $this->e = oci_error(); die("nepovedlo se přihlásit"); Vypracoval: Marek Svoboda 2012/2013 Stránka 7
b)ukončení spojení function close() { } oci_close($this->db); $this->c = null; $this->e = null; return true; Fakulta elektrotechniky a informatiky c) Ukázka vykonání SQL dotazu v PHP Výpis rezervací přihlášeného uživatele, které udělal: $vysledek = $db->dotaz('select OD,DO,CisloPokoje from Rezervace join Obsazeno using(id_rezervace) join Uzivatele using(id_osoby) join Pokoje using(id_pokoje) where login=\''. $_SESSION['identity']['Login']. '\' and PlatnostRezervace=1'); 3. Popis tabulek a jejich atributu a)tabulka Uživatele Uživatelé do této tabulky se ukládají informace o uživateli, jeho přihlašovací jméno, heslo, telefon a email. Dále jeho křestní jméno a příjmení. CREATE TABLE "uzivatele"( "id_osoby" Number(6,0) NOT NULL, - Přiřazuje každému uživateli jedinečné ID "id_adresy" Number(6,0) NOT NULL, - Id adresy přiřazovaných dalších údajů k tabulce. "role" Number(1,0) NOT NULL, - práva které je přirazeno uživateli "password" Varchar2(120 BYTE) NOT NULL, - Heslo uložené v HASHi "username" Varchar2(30 CHAR) NOT NULL, - Uživatelské jméno login PK Vypracoval: Marek Svoboda 2012/2013 Stránka 8
"telefon" Number(9,0) NOT NULL, "email" Varchar2(60 CHAR) NOT NULL, "jmeno" Varchar2(30 CHAR) NOT NULL, "prijmeni" Varchar2(30 CHAR) NOT NULL - Telefon uzivatele - Email uzivatele - Jméno uživatele - přijmení uživatele ); 4.Struktura adresáře WWW css.css kaskádový styl index.php - hlavní stránka, includuje ostatní stránky registrace.php tato stránka registruje uživatele session.php tato stránka hlídá session stránky uvod.txt Soubor do kterého se ukládá obsah úvodní plochy xmlexport.php Stránka kterou se importují data z db do XML - Uživatele class ovládacích prvků stránky (Connect a veškeré dotazy do DB) application.php připojení k databázi auth.php veškeré funkce k ostatním částem webu functions variables.php pages administrace_rezervaci.php Stránka vypisuje rezervace a případně se dají smazat. Vypracoval: Marek Svoboda 2012/2013 Stránka 9
form.php Registrační formulář který se volá stránkou registrace.php která formulář zpracovává. index.php Vypisuje se obsah uloženy v souboru uvod.txt kontakt.php vypisují se v něm pouze kontaktní údaje na majitele podniku moje_rezervace.php Na této stránce se vypisují rezervace daného uživatele Obsazenepokoje.php Vypisují se tím aktivní rezervace pro daný pokoj. pridani_zamestnance.php- Touto stránkou administrátor přidává lidi. prihlaseni.php Touto stránkou se přihlašují všichni do systému TyniMce.php Touto stránkou administrátor mění hlavní plochu. uživatel_rozhrani.php Tato stránka zjišťuje kdo je přihlášen do systému. Vloz_Rezervaci.php Touto stránkou se vkládají veškeré rezervace. vypis_uzivatele.php Touto stránkou se vypisují všichni uživatelé v systému vypis_uzivatele_admin.php Touto stránkou se vypisují všichni uživatelé v systému a administrátor může uživatele smazat jscript tinymce - složka editoru obrazky banner.jpg - banner stránek favicon.ico favicon stránky Vypracoval: Marek Svoboda 2012/2013 Stránka 10
5. Závěr V této semestrální práci jsem měl možnost osvojit si nové poznatky při práci s databázemi a vývoji webových aplikací. Dobře navržená databáze může opravdu ušetřit spoustu času a je velmi dobrým nástrojem k udržení konzistence a smysluplnosti dat. Z pohledu uživatele by bylo dobré dodělat galerii a guestbook a případné odeslání registrace s ověřovacím kódem nebo odeslání údajů o vytvořené rezervaci na email klienta, dále by bylo dobré udělat nějaký profil uživatele. Z pohledu programátora by se daný systém mohl dále vyvíjet o další prvky pro zaměstnance, jako tisk faktury. Dále systém pro bar a jídelnu, díky kterému by bylo možné sledovat, kolik zbývá daných surovin nebo pití na baru. Dále malý e-shop pro prodej reklamních a upomínkových předmětů. Bohužel tyto systémy nejsou implementovány z důvodu časově náročného vývoje, jako je export na různé webové stránky typu www.heureka.cz nebo export faktur do účetního programu Pohoda. Přihlášení do systému se provádí následnými přihlašovacími údaji: admin-admin k administrátorskému účtu zamestnanec zamestnanec - k zaměstnaneckému účtu uzivatel uzivatel - k uživatelskému účtu Práce je odladěna pro prohlížeč FireFox a Maxthon (bohužel se v prohlížeči FireFox nezobrazuje kalendář při vkládání datumů v rezervaci). V ostatních prohlížečích je aplikace funkční, ale header je na hlavní ploše o pár pixelů větší, než by měl. Tato chyba by se dala odstranit úpravou headru pro každý prohlížeč zvlášť nebo úpravou CSS. Vypracoval: Marek Svoboda 2012/2013 Stránka 11