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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 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 2admin, dále může vypsat uživatele do XML a spravovat hlavní plochu pomocí TinyMce
Vypracoval: Marek Svoboda 2012/2013
Stránka 3
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
c) UML use case diagram
Vypracoval: Marek Svoboda 2012/2013
Stránka 4
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
d) Aktivity Diagram
Vypracoval: Marek Svoboda 2012/2013
Stránka 5
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
e)Rich Picture
f) E-R diagram
Vypracoval: Marek Svoboda 2012/2013
Stránka 6
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
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. 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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
b)Ukončení spojení function close() { oci_close($this->db); $this->c = null; $this->e = null; return true; } 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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
"telefon" Number(9,0) NOT NULL,
- Telefon uzivatele
"email" Varchar2(60 CHAR) NOT NULL,
- Email uzivatele
"jmeno" Varchar2(30 CHAR) NOT NULL,
- Jméno uživatele
"prijmeni" Varchar2(30 CHAR) NOT NULL - 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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
│ 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
Fakulta elektrotechniky a informatiky Návrh a tvorba WWW stánek a databázové systémy 2
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