VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Informační systém pro rezervaci pokojů hotelu SPORT Programátorská příručka systému Příloha bakalářské práce 2006 Radka Bystroňová
Obsah 1. Specifikace aplikace 2 2. Struktura aplikace (adresáře, soubory, třídy) 3 2.1 Adresáře... 3 2.2 Skripty WWW stránek... 3 2.3 Soubory... 4 2.4 Speciální třídy aplikace... 4 2.5 Doplňkové komponenty... 4 2.6 Databáze... 5 2.7 Vývojové prostředí... 5 3. Obsahu souborů web.config 6 1
1. Specifikace aplikace Z principu fungování internetové technologie WWW stránek je zřejmé, že IS hotelu Sport bude pracovat v architektuře Client-Server. Server je zde chápán, jako počítač či skupina počítačů, na kterých běží celý systém a provádějí se zde databázové a funkční operace. Pro potřeby provozu tohoto IS je možné použít jakýkoliv HTTP server splňující níže uvedené požadavky. Klientem je pak počítač, který se serverem komunikuje prostřednictvím internetu či intranetu a jediným jeho úkolem je komunikace s uživatelem pomocí klientského software (internetového prohlížeče). Pro implementaci a vývoj celé aplikace jsem zvolila platformu Microsoft.NET 2.0, konkrétně v prostředí pro tvorbu webových aplikací ASP.NET 2.0. Platforma Microsoft.NET Framework je nová technologie od Microsoftu pro vývoj aplikací, jak pro desktopové či mobilní zařízení, tak i pro web. Mimo své technické možnosti dokáže platforma také nabídnou širokou škálu programovacích jazyků: C# C++.NET VB.NET J# Tato aplikace byla implementována konkrétně v programovacím jazyce C#. Jako vývojové prostředí jsem zvolila Microsoft Visual Studio 2005, což je komplexní vývojové prostředí aplikace obsahující nejen výkonný editor zdrojových kódů, ale také nabízející rozšířené funkce, jako je ladění, krokování, správa projektů, atd. Dalším prvkem určujícím aplikační prostředí systému je SŘBD. Vazba systému na tuto část by měla být co nejmenší, aby byla zaručena co největší přenositelnost výsledného IS. Z tohoto důvodu zahrnuje návrh i implementace tzv. SQL layer. Jde o množinu tříd, ke kterým se při implementaci přistupuje jednotně, ale každá z nich provádí požadované funkce odlišně, v závislosti na použitém SŘBD. Protože se jedná o internetový či intranetový informační systém, je možné jeho klientskou část provozovat na kterémkoli operačním systému, který obsahuje internetový prohlížeč, a to zadáním internetové adresy http://bys030.aspdotnet.sk. Minimálním požadavkem tedy je internetový prohlížeč Internet Explorer, Opera, Mozilla, Netscape,... Typickým problémem je zde kompatibilita jednotlivých prohlížečů. Tento IS je vyvíjen za podpory vývojového prostředí Visual Studio, které disponuje nástroji pro zajištění a udržení kompatibility a standardů webových stránek (XHTML, HTML, CSS, ). Nicméně i tak dochází k problémům s interpretací dat, a to zejména mezi prohlížeči různých výrobců. Při vývoji jakéhokoliv IS je tedy nutné dbát na to, jakým způsobem jsou výsledné WWW stránky zobrazeny v různých prohlížečích, které mohou uživatelé používat. 2
2. Struktura aplikace (adresáře, soubory, třídy) 2.1 Adresáře Admin adresář obsahující stránky a jejich třídy přístupné pouze pro uživatelé s rolí admin All adresář obsahující stránky a jejich třídy přístupné pouze pro uživatelé s rolí admin, user nebo chief User adresář obsahující stránky a jejich třídy přístupné pouze pro uživatelé s rolí user Chief adresář obsahující stránky a jejich třídy přístupné pouze pro uživatelé s roli chief nebo admin App_Code adresář pro uložení společných tříd aplikace, které je možné využívat ze všech tříd celé aplikace App_Data adresář pro uložení databáze aplikace App_GlobalResources adresář pro uložení globalizace stránek, konkrétně pro menu v češtině a v angličtině App_LocalResources adresář pro uložení lokalizace stránek, konkrétně lokalizace v češtině a v angličtině Modules adresář pro uložení vizualizací jednotlivých komponent Images adresář pro uložení obrázku 2.2 Skripty WWW stránek Accommodation.aspx stránka zobrazující seznam ubytování Acommodation_archive.aspx stránka zobrazující seznam starých ubytování Accommodation_new.aspx stránka která umožňuje zobrazit detail, editaci nebo zvoleni období nového ubytování bez rezervace Accommodation_new_with.aspx stránka která umožňuje zvolení rezervace pro ubytování hosta Accommodation_new_without.aspx stránka která umožňuje zadání údajů o ubytování a vytvoření ubytování Add.aspx stránka, ke které má přístup pouze administrátor a slouží k přidáni nového uživatele, vloženi jeho osobních údajů a specifikace jeho role All_users.aspx stránka, ke které má přístup pouze administrátor a slouží k zobrazení seznamu všech uživatelů Bill.aspx stránka která zobrazí detail účtu Bill_archive.aspx stránka zobrazující seznam všech vystavených účtů Companies.aspx stránka zobrazující seznam firem v databázi Companies_new.aspx stránka, která umožňuje zobrazit detail, editaci nebo vytvoření nové firmy Default.aspx úvodní stránka aplikace Extras.aspx stránka zobrazující seznam příplatku a slev v databázi Estras_new.aspx - stránka která umožňuje zobrazit detail, editaci příplatku a slev, nebo vytvoření nového příplatku a slevy, ale k editaci a vytvoření nového příplatku a slevy má přístup pouze uživatel s rolí admin Foods.aspx stránka zobrazující seznam stravy v databázi Foods_new.aspx - stránka která umožňuje zobrazit detail a editaci stravy, nebo vytvoření nové stravy, ale k editaci a vytvoření nové stravy má přístup pouze uživatel s rolí admin Gains.aspx stránka která zobrazí formulář pro zvolení období pro přehled tržeb Guests.aspx stránka zobrazující seznam hostů v databázi 3
Guests_new.aspx stránka, která umožňuje zobrazit detail, editaci nebo vytvoření nového hosta PasswordChange.aspx umožňuje změnit heslo uživateli který je právě přihlášen Payment_methods.aspx stránka, která zobrazí seznam způsobu platby Payment_methods_new.aspx - umožňuje zobrazit detail, editaci nebo vytvoření nového způsobu platby, ale k editaci a vytvoření nového způsobu platby má přístup pouze uživatel s rolí admin Print_Bill.aspx zobrazí účet pro tisk Print_Extras.aspx zobrazí seznam příplatku a slev pro tisk Print_Foods.aspx zobrazí seznam stravy pro tisk Print_Payment_methods.aspx zobrazí seznam způsobů plateb pro tisk Print_Rooms.aspx zobrazí seznam pokojů pro tisk Reservations.aspx stránka zobrazující seznam rezervací Reservations_archive.aspx stránka zobrazující seznam rezervací v archívu (stornované, staré a ubytované rezervace) Reservations_new.aspx stránka která umožňuje zobrazit detail, editaci nebo zvoleni období nové rezervace Reservations_new2.aspx stránka která zobrazí 2. krok při rezervaci, tj. výběr pokoje a hosta, zadání poznámky a uložení zadané rezervace do databáze Rooms.aspx stránka zobrazující seznam pokojů v databázi Rooms_new.aspx stránka, která umožňuje zobrazit detail, editaci nebo vytvoření nového pokoje User_detail.aspx stránka která zobrazí údaje přihlášeného uživatele User_new.aspx stránka, ke které má přístup pouze administrátor a slouží k zobrazení detailu o vybraném uživateli nebo k editaci údajů vybraného uživatele ViewGains.aspx stránka která zobrazí přehled tržeb za zvolené období 2.3 Soubory MasterPage.master definice základního vzhledu všech www stránek aplikace, který je aplikován automaticky na většinu generované stránky aplikace web.config specifikace přístupových práv k jednotlivým částem systému podle uživatelských rolí a další nastavení tykající se práv, omezení a přístupů Web.sitemap struktura nabídek a přístupových práv k jednotlivým stránkám Global.asax obsahuje implementace metod souvisejících se spuštěním či ukončením celé aplikace style.css soubor s definicemi kaskádových stylu pro výsledné html stránky 2.4 Speciální třídy aplikace DatePicker.cs implementace funkcí pro moduly DateAndTimePicker.ascx a DatePickerModules.ascx pro část Date TimePicker.cs implementace funkcí pro modul DateAndTimePicker.ascx pro část Time Utils.cs třída nabízející základní funkce pro aplikaci, např. připojení k databázi 2.5 Doplňkové komponenty DateAndTimePicker.ascx modul pro uživatelský přívětivý výběr data času DatePickerModules.ascx modul pro uživatelský přívětivý výběr data LocationSelector.ascx modul umožňující výběr států hosta, firmy atd. 4
2.6 Databáze ASPNETDB.MDF databáze aplikace 2.7 Vývojové prostředí Na následujícím obrázku je zobrazeno vývojové prostředí MS Visual Studio. Tento obrázek poskytuje stručný náhled na strukturu projektu a jeho jednotlivých částí (pravá část). 5
3. Obsahu souborů web.config Tento soubor obsahuje specifikaci práv a přístupů k jednotlivým funkcím aplikace a nastavení parametrů důležitých pro běh celé aplikace. Tento soubor je strukturován jako XML soubor. <?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.netconfiguration/v2.0"> <! Připojeni k databázi --> <connectionstrings> <remove name="localsqlserver" /> <add name="localsqlserver" connectionstring="data Source=.\SQLEXPRESS;Database=bys030.aspdotnet.sk_0008;AttachDbFilename= DataDirectory ASP NETDB.MDF;Integrated Security=True;User Instance=True" providername="system.data.sqlclient" /> </connectionstrings> <compilation debug="true"/> <! Nastavení a specifikace autentifikace --> <authentication mode="forms"> <forms loginurl="default.aspx" protection="validation" timeout="300" /> </authentication> <! Povolení autorizace všem uživatelům --> <allow users="*"/> <globalization requestencoding="utf-8" responseencoding="utf-8"/> <rolemanager enabled="true" /> <! Nastavení a specifikace komponenty SiteMap --> <sitemap defaultprovider="aspnetxmlsitemapprovider" enabled="true"> <providers> <clear/> <add name="aspnetxmlsitemapprovider" type="system.web.xmlsitemapprovider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" sitemapfile="web.sitemap" securitytrimmingenabled="true"/> </providers> </sitemap> 6
<! Nastavení a specifikace přistupových práv ke složce Admin --> <location path="admin"> <allow roles="admin"/> <deny users="*"/> </location> <! Nastavení a specifikace přistupových práv ke složce Chief --> <location path="chief"> <allow roles="chief, Admin"/> <deny users="*"/> </location> <! Nastavení a specifikace přistupových práv ke složce User --> <location path="user"> <allow roles="user"/> <deny users="*"/> </location> <! Nastavení a specifikace přistupových práv ke složce All --> <location path="all"> <allow roles="user, Chief, Admin"/> <deny users="*"/> </location> </configuration> 7