České vysoké učení technické v Praze Fakulta elektrotechnická



Podobné dokumenty
public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Helios RED a Internetový obchod

TouchGuard Online pochůzkový systém

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

M I S Y S - W E B. Intranet řešení systému MISYS. Verze Příručka uživatele

KIV/PIA Semestrální práce

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Nutné kroky a nastavení prohlížeče pro přístup do systému REGIS. Autor: Ing. Marek Pučelík


KIV/PIA 2013 Jan Tichava

1 of :27

Rezervační systém Tvorba WWW stránek

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

Uživatelský manuál Radekce-Online.cz

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

Obrázek 6.14: Prohlížec nápovedy

Filr 2.0 Uživatelská příručka k aplikaci Filr Web. Únor 2016

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

DATA ARTICLE. AiP Beroun s.r.o.

Individuální projekt z předmětu webových stránek Anketa Jan Livora

20. Projekt Domácí mediotéka

Funkce Chytrý dotyk. verze 1.4. A-61629_cs

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek

MapleCloud a jeho použ ití. Vladimír Žák

Manuál aplikace Inkaso pohledávek

Šablonovací systém htmltmpl vypracoval: Michal Vajbar, Šablonovací systém htmltmpl

UŽIVATELSKÁ DOKUMENTACE PRO DODAVATELE. Stav ke dni v. 2.0

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Technologie počítačových sítí 5. cvičení

E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky

Informační systém pro rezervaci pokojů hotelu SPORT

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

Obsah. Seznam možných testů. Termíny úkolů

NOVÁ VERZE OBD A JEJÍ VYUŽÍVÁNÍ Ing. Martina Valášková

Uživatelská příručka

Implementovaný webový server HP LaserJet M9040/M9050 MFP Uživatelská příručka

Metodika Portálu pohledávek ve vztahu k uživateli

Teoretické minimum z PJV

sssssssssssssssssssssssssssssssssssssssssssssssssss UŽIVATELSKÁ PŘÍRUČKA ELEKTRONICKÁ PODATELNA - WEBOVÁ ČÁST APLIKACE Verze distribuce:

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

Ostatní portálové aplikace

17. července :51 z moravec@yahoo.com

Metodika. Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009. Sb., o základních registrech. Verze 1.6

Ostatní portálové aplikace

Interaktivní mapy ÚAP Uživatelská příručka

Typický prvek kolekce pro české řazení

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

Manuál k aplikaci SDO PILOT v.0.2

INTERNET SERVIS MANUÁL

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

Uživatelská příručka systému pro administrátory obcí a manuál pro správce portálu

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

O nás. To vše a mnohem více Vám je schopna nabídnout již základní verze publikačního systému bravaweb.

Elektronická zdravotní karta

MAWIS. Uživatelská dokumentace

Mobilní aplikace Novell Filr Stručný úvod

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro administrátora krizového řízení

Centrální evidence závětí NK ČR

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

VYTVÁŘENÍ OBSAHU KURZŮ

Přihlašování do ISCRŘ přes JIP

Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek

CZ.1.07/1.5.00/

Specifikace exportního rozhraní z aplikace

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu

Modul ročních zpráv o výsledcích finančních kontrol

Ostatní portálové aplikace

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Acronis Backup Advanced Version 11.7

Metodická příručka pro učitele. InspIS SET modul školní testování

3D Vizualizace muzea vojenské výzbroje

Kerio Operator. Kerio Technologies

Univerzita Palackého v Olomouci. Služby spojené s Active Directory

Technická specifikace předmětu veřejné zakázky Zhotovení interaktivního webového portálu a mobilních aplikací

Java a Caché IV: Manipulace s objekty

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů. Docházka 3000 Personalistika

e Utility Report Vyjadřování k existenci sítí

Manuál k aukčnímu portálu Diakonie ČCE

a autentizovaná proxy

Rychlý průvodce konfigurací LAN SUITE 2002

UŢIVATELSKÁ PŘÍRUČKA MODUL MECHANIZAČNÍ PROSTŘEDKY APLIKACE - HLÁŠENÍ O PROVEDENÝCH TECHNICKÝCH KONTROLÁCH ZÁKLADNÍ POPIS

Patenty. 1. Spuštění modulu Patenty. 2. Popis prostředí a ovládacích prvků modulu Patenty

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

UŽIVATELSKÁ DOKUMENTACE. TS-ELDAx SMART TRUST electronic ARCHIVE Cloudové rozhraní

Programování v Javě I. Leden 2008

1. Základní informace o WOM

Programování v Javě I. Únor 2009

AR-M256 AR-M316 DIGITÁLNÍ MULTIFUNKČNÍ SYSTÉM. PROVOZNÍ PŘÍRUČKA (pro síťový skener)

Návod na E-Shop. tel.: , fax: , helpdesk: ,

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

ŠKODA AUTO VYSOKÁ ŠKOLA

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv Petr Čulík

Software pro personalizaci karet

Uživatelská příručka pro program

Manuál k aplikaci WANAS

Manuál administrátora FMS...2

2N Access Commander. Základy použití Verze

Transkript:

České vysoké učení technické v Praze Fakulta elektrotechnická ČVUT FEL katedra počítačů Bakalářská práce Internetový obchod se svářecí technikou a příslušenstvím Jan Pičkar Vedoucí práce: Ing. Miroslav Balík, Ph.D. Studijní program: Elektrotechnika a informatika B2612/2257 Obor: Výpočetní technika 2007

ii

Poděkování Tímto bych chtěl poděkovat všem pracovníkům firmy Alis spol. s r.o. za pomoc při zhotovení této bakalářské práce a za poskytnutí potřebné literatury, užitečných rad k vyřešení zadání a také za možnost využití potřebného softwarového a hardwarového vybavení. iii

iv

Prohlášení Prohlašuji, že jsem svou bakalářskou 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 Novém Boru dne 19.8.2007 v

vi

Abstract This work describes the design and possible realizations of an internet shop including the concept for a specific implementation. Abstrakt Tato práce popisuje návrh a možnosti implementace internetového obchodu včetně návrhu konkrétní implementace. vii

viii

Obsah Seznam obrázků... xi 1 Úvod... 1 1.1 Stručná historie Internetu... 1 1.2 Internetový obchod... 2 2 Použité technologie... 4 2.1 Programovací jazyk JAVA... 4 2.2 Servlety... 4 2.3 Java Server Pages... 5 2.4 Hibernate... 6 2.5 Databáze PostgreSQL... 8 2.6 Apache Tomcat... 9 2.7 Eclipse... 9 2.8 Enterprise Architect... 10 3 Popis a vymezení cílů bakalářské práce... 11 4 Analýza požadavků na aplikaci... 11 4.1 Klientský přístup... 11 4.2 Administrátorský přístup... 12 5 Návrh implementace... 14 5.1 Návrh databáze... 14 5.2 Způsob autorizace uživatele... 14 6 Popis implementace... 16 6.1 Vytvoření tabulek databáze... 16 6.2 Autorizace uživatele... 16 6.3 Nákupní košík... 16 6.4 Struktura kódu... 18 7 Testování... 19 8 Porovnání s existujícími obchody... 19 ix

9 Závěr... 20 10 Seznam použité literatury... 21 A Vytvoření tabulek... 22 B Rozdělení kategorií... 24 C Uživatelská příručka... 29 1 Instalační příručka... 29 1.1 Vytvoření databáze... 29 1.2 Instalace obchodu... 29 2 Ovládání administrátorská část... 31 2.1 Objednávky... 31 2.2 Kategorie... 32 2.3 Výrobci... 32 2.4 Zboží... 33 3 Ovládání klientská část... 34 3.1 Základní okno... 34 3.2 Výběr zboží... 34 3.3 Košík... 36 3.4 Objednání... 37 3.5 Přihlášení... 37 3.6 Registrace... 38 3.7 Odhlášení ze systému... 38 D Obsah přiloženého CD... 39 x

Seznam obrázků Obr 2.1 Vývojové prostředí Eclipse... 9 Obr 2.2 Prostředí Enterprise Architect... 10 Obr 4.1 UseCase model... 13 Obr 5.1 E R diagram... 15 Obr. C.2.1 Výpis objednávek... 31 Obr. C.2.2 Objednávka... 31 Obr. C.2.3 Výpis kategorií... 32 Obr. C.2.4 Výpis výrobců... 32 Obr. C.2.5 Výpis zboží... 33 Obr. C.2.6 Detail produktu... 33 Obr. C.3.1 Úvodní strana... 34 Obr. C.3.2 Seznam produktů... 35 Obr. C.3.3 Detail produktu... 35 Obr. C.3.4 Košík... 36 Obr. C.3.5 Objednávka... 37 Obr. C.3.6 Přihlášení... 37 Obr C.3.7 Registrační formulář... 38 xi

xii

1 Úvod 1.1 Stručná historie Internetu Internet je celosvětová veřejná síť, kterou tvoří vzájemně propojené počítačové sítě. Tato "síť sítí" se skládá z miliónů malých domácích, akademických, podnikových a úředních sítí, které vzájemně sdílejí data a služby. Stejně jako řada dalších věcí, vděčí internet za svůj vznik armádě. Americká armáda vyžadovala pro komunikaci systém, který by neměl žádnou centrální složku a síť by tedy fungovala i tehdy, když by byly některé její části zničeny. Vývoj byl financován grantovou agenturou ministerstva obrany USA a probíhal na čtyřech univerzitách: University of California Los Angeles, Stanford Research Institute, University of California Santa Barbara a University of Utah. První datové pakety byly přeneseny 29. října 1969, kdy byl učiněn pokus o přihlášení se na počítač umístěný v SRI z UCLA. Pro vzájemnou komunikaci mezi uzly postupně se rozrůstající sítě byl používán protokol NCP. Uzly přibývaly postupně po celém území USA (13 v roce 1970, 29 v roce 1972, 40 v roce 1973). V roce 1973 pronikl ARPANET do Evropy, když se připojilo Norsko a záhy i Velká Británie. Tehdy se již ukazovaly nové možnosti využití v rámci elektronické poštovní komunikace, kterou o tři roky později poprvé využila i britská královna. V roce 1983 se od ARPANETu oddělila vojenská síť MILNET. Významným mezníkem je ovšem tento rok proto, že od jeho začátku byl definitivně NCP nahrazen protokoly TCP/IP. S nástupem lokálních sítí se ARPANET stále častěji stával pouze páteřní sítí pro přenos. I tuto jeho funkci však postupně přebrala NSFNET (National Science Foundation Network) a v březnu 1990 přišel konec ARPANETu. V roce 1987 je již v síti propojeno 27 000 počítačů a vzniká pojem Internet. V dalších letech je Timem Bernersem-Leejem publikován návrh vývoje WWW a v roce 1991 je nasazen v evropské laboratoři CERN. První WWW prohlížeč, Mosaic, vyvinul Marc Andreessen a dal jej roku 1993 volně k dispozici. Od roku 1994 přestává být Internet pouze akademickou záležitostí a začíná se komercializovat. Jeden z prvních internetových obchodů byl spuštěn v roce 1995. Tímto obchodem byl Amazon.com, který z počátku nabízel prodej knih. Později byla jeho nabídka rozšířena o DVD, CD, počítačové hry, elektroniku, hračky a další. Vytvořeno dle [12] 1

1.2 Internetový obchod Internetové obchodnictví je poměrně nový způsob prodeje zboží, přesto si však za relativně krátkou dobu získalo velkou oblibu prodejců i zákazníků a stalo se standardním způsobem nákupu mnoha druhů zboží. Internetový obchod je aplikace skládající se z mnoha webových stránek. Na stránkách jsou přehledně zobrazeny nabízené produkty včetně malého náhledu, který je možné zvětšit v detailu společně s podrobnějším popisem produktu. Tyto stránky byly z počátku vytvářeny jako statické, později, díky nástupu nových technologií a návaznosti na databáze, začaly být generovány dynamicky. To umožnilo větší komfort obsluhy ze strany zákazníka, obchodníka i správce obchodu. Jak se měnily možnosti tvorby stránek, rozšiřovaly se i požadavky na kvalitu zpracování prezentace obchodu a bezpečnosti bankovních transakcí prováděných v rámci nákupu zboží. V rámci uživatelského rozhraní se vytvořily určité standardy návrhu grafiky a rozmístění ovládacích prvků, takže zákazník při návštěvě různých obchodů se může v klidu soustředit na vlastní nákup a nemusí složitě hledat, jak se dopracovat ke zboží, o které se zajímá. Dnešní internetový obchod, který chce uspět u zákazníků, by měl splňovat několik základních požadavků. Jeho ovládání a grafická úprava musí být provedeny tak, aby zákazníkům umožnily snadnou orientaci v nabídce. Dobré je například využití piktogramů pro vložení zboží do košíku, náhledy, odeslání objednávky apod. Zákazník musí mít možnost získat maximum informací o nabízeném produktu. Tyto informace jsou dostupné v detailu zboží, kde bývají fotografie a jeho podrobný popis. Řada obchodů umožňuje platbu kreditními kartami. Zde je nutné zajistit bezpečnou komunikaci mezi zákazníkem a obchodem, aby nemohlo dojít k získání a zneužití platebních informací třetí stranou. Z hlediska obchodníka nabízí internetový obchod snadný přehled o objednávkách a jejich zpracování. Pokud je databáze obchodu svázána se skladovou evidencí, má obchodník přehled o stavu zásob na skladě. Tyto informace je možné zobrazit i zákazníkům, třeba i s údaji o dodacích lhůtách produktu. 2

Využitím nákupu přes Internet získává zákazník snadný přehled o nabízeném zboží jednotlivých obchodů a tím i rychlý způsob výběru nejvhodnějšího dodavatele, to vše 24 hodin denně a z pohodlí domova. Vzhledem k rostoucímu počtu uživatelů Internetu a ke vzrůstající počítačové gramotnosti obyvatelstva, dává elektronické obchodnictví velké možnosti prodeje a lze očekávat jeho další rozšiřování. 3

2 Použité technologie V této části je uveden základní popis technologií a softwarových produktů využitých při tvorbě této aplikace. 2.1 Programovací jazyk JAVA Java je programovací jazyk vyvíjený od roku 1991 firmou Sun Microsystems, který byl veřejnosti oficiálně představen v roce 1995. Tento jazyk byl vyvíjen na principech C a C++ a má tak s těmito jazyky obdobnou syntaxi. Na rozdíl od nich je však výsledný přeložený kód platformě nezávislý. Překlad zde totiž neprobíhá do jazyka relativních adres, který je v podstatě totožný se strojovým jazykem počítače, ale do pseudojazyka nazývaného byte-code, který je nezávislý na cílovém počítači. Přeložený program je uložen v souborech s vyhrazenou příponou.class. Tento soubor je pak z disku zaváděn do počítače a současně probíhá ověření bajtkódu, což je možné provést jednotně díky nezávislosti bajtkódu na platformě. Po ověření je program spouštěn pomocí interpreteru - Java je tudíž interpretovaný jazyk. Podrobněji v [1], [6] 2.2 Servlety Jde o programy napsané v jazyce JAVA, které běží na webovém serveru a působí jako střední vrstva mezi požadavkem přicházejícím z webového prohlížeče nebo od jiného HTTP klienta a databází či aplikací na serveru HTTP. Jejich úkolem je: 1. Přečíst všechna data odeslaná uživatelem. Tyto údaje se obvykle vkládají do formuláře na webové stránce, ale mohou také pocházet z javovského apletu nebo ze zákaznického programu klienta HTTP. 2. Vyhledat všechny další informace o požadavku, které jsou uloženy v dotazu HTTP. Tyto informace zahrnují podrobnosti o schopnostech prohlížeče, cookies, hostitelském jménu žádajícího klienta atd. 3. Vytvořit výsledky. Tento proces může vyžadovat komunikaci s databází nebo provést přímý výpočet odezvy. 4

4. Zformátovat výsledky uvnitř dokumentu. Ve většině případu toto zahrnuje uložení informací do stránky HTML. 5. Nastavení vhodných parametrů odezvy HTTP. Toto znamená sdělení prohlížeči jaký typ dokumentu se vrací (např. HTML), nastavení parametrů cookies a další takové úkoly. 6. Odeslání dokumentu zpět ke klientovi. Tento dokument lze poslat v textovém formátu (HTML) nebo v binárním formátu (např. obrázky). Podrobnější informace lze nalézt např. v [2] 2.3 Java Server Pages Jak vyplývá z názvu, je technologie JSP postavená na jazyce Java a poskytuje snadný intuitivní způsob tvorby servletů jazyka Java. Toho je docíleno tím, že je možné na stránkách JSP směšovat kód v jazyce HTML s programovacím jazykem. Kód napsaný v jazyce JAVA pomáhá počítači rozhodnout o dalším postupu při vytváření stránky pro klienta (např. zda použít ten či onen element HTML). JSP je veskrze serverová technologie. JSP má vůči ostatním technologiím zřetelnou výhodu. Java není skriptovací jazyk, takže dokument JSP není při každém požadavku interpretován úplně od začátku. Při prvním použití je dokument přeložen do bajtkódu jazyka Java, který je pak spouštěn při dalších požadavcích. Viz. [2], [3] Jednoduchý příklad JSP stránky ahoj.jsp: <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <% String text="světe"; String jmeno = request.getparameter("jm"); if (jmeno!=null) text=jmeno; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>ahoj světe</title> </head> <body> 5

Ahoj <%=text %> </body> </html> Základní struktura odpovídá HTML kódu, ve kterém je závorkami <% %> uvozen kód jazyka Java. Předešlý kód testuje, zda se v HTML požadavku nachází parametr jm. Pokud ano, vypíše jeho hodnotu za slovem Ahoj, jinak je vypsáno slovo světe. Tedy požadavek ahoj.jsp vypíše Ahoj světe a požadavek ahoj.jsp?jm=pepo vypíše Ahoj Pepo. 2.4 Hibernate Hibernate je framework umožňující mapování objektů v jazyce Java do relační databáze. Nezajišťuje však jen mapování Java tříd na databázové tabulky (a převod datových typů jazyka Java na datové typy SQL), ale také poskytuje podporu pro dotazování a zpracování dat navrácených SQL dotazem. Hibernate není vázán na konkrétní typ databáze. Pro komunikaci s databází využívá rozhraní JDBC. Díky tomu je možné změnit typ používané databáze beze změny kódu programu. Tento framework v mnohém zlehčuje práci programátora, který tak nemusí vytvářet vlastní způsob pro zápis a čtení údajů z databáze, a může se soustředit pouze na vývoj aplikace využívající dodané údaje. Podrobněji v [4], [7] Pro propojení s databází využívá Hibernate konfigurační soubor Hibernate.cfg.xml s informacemi o typu databáze, přístupových heslech a mapovacích souborech. Příklad konfiguračního souboru: <?xml version="1.0"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.username">eobchod</property> <property name="connection.password">eobchod</property> <property name="connection.url"> jdbc:postgresql://localhost/eobchod </property> <property name="connection.driver_class"> org.postgresql.driver </property> 6

<property name="dialect"> org.hibernate.dialect.postgresqldialect </property> <mapping resource="cz/hopi/eobchod/sql/test.hbm.xml"/> </session-factory> </hibernate-configuration> Konfigurační soubor pro spojení s databází PostgreSQL přístupovým jménem a heslem eobchod/eobchod a s jednou tabulkou test. Příklad mapovacího Test.hbm.xml souboru pro tabulku Test: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cz.hopi.eobchod.sql"> <class name="test" table="test" lazy="true" > <id name="id" type="long"> <generator class="sequence" > <param name="sequence">test_id_seq</param> </generator> </id> <property name="text" type="string" length="50" /> <property name="datum" type="timestamp" /> </class> </hibernate-mapping> Tento mapovací soubor umožní Hibernate vazbu mezi tabulkou test a třídou Test, jejichž výpisy jsou uvedeny dále. SQL definice tabulky test: CREATE TABLE test ( id serial NOT NULL, text character varying, CONSTRAINT test_pkey PRIMARY KEY (id) ) Třída Test: package cz.hopi.eobchod.sql; import java.io.serializable; import java.sql.timestamp; public class Test implements Serializable { private long id; private String text; private Timestamp datum; public Test(){ public Test(String text) { 7

this.text=text; public void setid(long id) { this.id=id; public long getid() { return id; public void settext(string nazev) { this.text=nazev; public String gettext() { return this.text; public void setdatum(timestamp datum) { this.datum=datum; public Timestamp getdatum() { return this.datum; public String tostring() { return "" + id + ". " + text + " " + datum; V programu Java pak pro získání seznamu všech položek z databáze, které mají v poli text hodnotu TEST, stačí provést následující kód: Configuration configuration = new Configuration(); //nacte konfiguracni soubor Hibernate.cfg.xml configuration.configure(); SessionFactory sessionfactory = configuration.buildsessionfactory(); session = sessionfactory.opensession(); Query q=session.createquery("from Test where text= TEST "); List l=q.list(); for (int i=0;i<l.size();i++) { //vypise nalezene prvky na obrazovku System.out.println(((Test)l.get(i)).toString()); session.close(); sessionfactory.close(); 2.5 Databáze PostgreSQL PostrgeSQL je relační databázový systém vyvíjený jako open source. Během 15 let svého vývoje získal pověst spolehlivého a bezchybného systému. Je spustitelný na řadě hlavních operačních systémů, včetně Linuxu, UNIXu (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) a Windows. Zahrnuje datové typy dle standardů SQL92 a SQL99. Pro PostgreSQL jsou vyvinuta rozhraní pro jazyky C/C++, Java,.Net, Perl, Python, Ruby, Tcl, ODBC a další. Viz. [8] 8

2.6 Apache Tomcat Tomcat je oficiální referenční implementace technologií Java Servlet a Java Server Pages (JSP), obojí vyvíjené pod záštitou společnosti SUN. Viz. [9] 2.7 Eclipse Eclipse je open source vývojové prostředí určené pro programování v jazyce Java. Je však navrženo tak, že je možné jej pomocí modulů nadále rozšiřovat třeba i o podporu jiných jazyků např. C++ nebo PHP. Pluginy poskytují velkou variabilitu pro vývoj aplikací a umožňují tak prostředí Eclipse konfigurovat dle konkrétních požadavků. Viz. [10] Pro vývoj internetového obchod jsem využil plugin J2EE standard tools, který mimo jiné umožňuje editaci a spouštění JSP stránek přímo z prostředí Eclipse. Obr 2.1 Vývojové prostředí Eclipse 9

2.8 Enterprise Architect Program Enterprise Architect (EA) pochází od rakouské firmy Sparx Systems. EA je určen pro platformu Windows. Je to vývojový nástroj pro vytváření vizuálního modelu vyvíjené aplikace, řadí se do skupiny tzv. CASE nástrojů. Využívá objektový modelovací jazyk UML 2.1. Viz. [11] Obr 2.2 Prostředí Enterprise Architect 10

3 Popis a vymezení cílů bakalářské práce Cílem tohoto projektu je navrhnout a realizovat Internetovou aplikaci pro provoz Internetového obchodu se svářecí technikou a příslušenstvím. Podmínky pro implementaci Proveďte analýzu požadavků pro návrh Internetového obchodu, který nabízí svářecí a nástrojařskou techniku. Základní rozdělení zboží do kategorií bude provedeno dle přílohy A. Pro realizaci použijte technologie JSP a databázi PostgreSQL. 4 Analýza požadavků na aplikaci Internetový obchod by měl umožňovat dva základní módy přístupu - klientský a administrativní. Klient zde představuje běžného uživatele zákazníka. Administrátor je obchodník s možností manipulace s Internetovým obchodem. 4.1 Klientský přístup Registrovaný i neregistrovaný zákazník má možnost prohlížet a prohledávat katalog produktů, který je pro lepší orientaci zákazníků rozdělen podle kategorií nebo podle výrobců. Neregistrovaný zákazník může provádět tyto akce: prohlížení produktů prohlíží produkty zařazené v dané kategorii, nebo od vybraného výrobce, prohlížení detailu produktu detail obsahuje podrobné informace k produktu (popis, obrázky), vyhledávání produktů produkt je vyhledáván dle zadané části kódu nebo názvu přidat produkt do košíku libovolný produkt lze přidat do košíku, odebrat produkt z košíku libovolný produkt lze vyjmout z košíku, editovat produkt v košíku může změnit počet objednaných kusů od jednoho produktu, 11

registraci zákazníka - je zaznamenána fakturační a v případě, že se liší, i dodací adresa pro vyřízení objednávek, odeslat košík zákazník je vyzván k registraci, nebo alespoň k zadání základních fakturačních údajů, po té je vygenerována objednávka, potvrdit objednávku souhlasí-li zákazník s údaji v objednávce, může ji potvrdit a tím ji zadá do systému ke zpracování. Registrovaný zákazník může navíc provádět: login přihlášení do sytému (dojde k načtení informací o zákazníkovi), logout odhlášení ze systému, změnu hesla změna uživatelského hesla pro přihlášení do systému, editovat dodací adresu upravuje dodací adresu, která je uložena v systému. 4.2 Administrátorský přístup Je určen pro administraci aplikace provozovatelem obchodu. Přístup je povolen pouze po zadání administrátorského jména a hesla. Administrátor může spravovat katalog produktů a cen, vyřizovat objednávky, pracovat s databází zákazníků apod. editace kategorií vytvoření, odstranění a změna kategorií pro řazení produktů, editace výrobců vytvoření, odstranění a změna výrobců jednotlivých produktů, editace produktů vytvoření, odstranění a změna produktů. U každé položky je možné definovat parametry jako kategorie, výrobce, název, cena, popis, obrázky, administrace objednávek - systém umožní u objednávek nastavovat stav zpracovanosti objednávky, aby objednatel mohl sledovat, v jaké fázi je jeho objednávka: o Objednáno zákazníkem o Odesláno o Dodáno 12

Obr 4.1 UseCase model 13

5 Návrh implementace 5.1 Návrh databáze Databáze bude složena z následujících tabulek. Zákazník - je potřeba evidovat registrované zákazníky. Zákazník musí mít možnost se do sytému přihlásit evidujeme tedy jeho login a heslo. Dále má každý zákazník vlastní fakturační a dodací (nepovinný údaj) adresu. Adresa představuje tabulku fakturačních a dodacích adres. Povinné údaje jsou jméno, příjmení, ulice, č.p., město a PSČ. Objednávka tabulka objednávek. Protože objednávku může vytvořit i neregistrovaný zákazník, je připojena i fakturační a dodací adresa. Toto má výhodu i vzhledem k historii objednávek, kdy u objednávky zůstane vždy ta adresa, pro kterou bylo objednáváno. Položka objednávky obsahuje i cenu produktu, za kterou bylo objednáno (v tabulce produktů je vždy pouze aktuální cena, která se může průběžně měnit) Produkt informace o produktu, vazba na výrobce a kategorii, ve které je produkt zařazen. Atribut jenabizen znamená, zda je produkt v aktuální nabídce. Vzhledem k historii a vazbám produktů na tabulku objednávek se produkty z databáze nemažou, ale je jim nastaven tento atribut na false. Obrázek představuje seznam obrázků k produktu. Ke každému produktu může být přiřazen jeden velký obrázek a jeden malý náhled. Obrázky jsou uloženy přímo v databázi. Výrobce tabulka výrobců Kategorie tvoří strom kategorií, do kterých jsou rozděleny jednotlivé produkty Vazby mezi tabulkami jsou zobrazeny v E-R diagramu na obrázku 5.1 5.2 Způsob autorizace uživatele Některé operace v rámci manipulace s obchodem je nutné zabezpečit heslem a ověřovat tak, zda uživatel má k dané stránce povolen přístup. 14

Obr 5.1 E R diagram 15

Při přihlašování se bude zadané jméno a heslo porovnávat s údaji uloženými v databázi a po té se informace o tom, zda a který uživatel je přihlášen, uloží do session na serveru. Oproti jiným možnostem (parametr předávaný v URL, cookies) je tento způsob autentizace výhodnější. Cookies nemusí mít klient povoleny a nelze se tak na ně plně spolehnout. Pro parametr v URL by bylo potřeba při každém dotazu generovat unikátní sekvenci, ukládat ji do databáze a příchozí dotazy s nimi porovnávat. Session naproti tomu udržuje sám server, pro každé spojení je vytvořena session s unikátním ID, ve které je možné udržovat data potřebná pro toto spojení. Je možné nastavit dobu platnosti session a pokud v určené době nepřijde z daného spojení na server dotaz, je tato session zrušena. 6 Popis implementace 6.1 Vytvoření tabulek databáze SQL příkazy pro vytvoření jednotlivých tabulek databáze jsou uvedeny v příloze A. 6.2 Autorizace uživatele Přihlášení je realizováno porovnáním loginu a hesla se záznamy v databázi. Informace o id přihlášeného uživatele je pak držena v rámci SESSION. V databázi je uložen hash řetězec hesla a při přihlašování dochází pouze k porovnání těchto řetězců. 6.3 Nákupní košík Košík je realizován jako objekt jazyka Java obsahující seznam položek (objekt Polozka) a je uložen v SESSION. Objekt Polozka obsahuje id vloženého produktu a počet požadovaných kusů. public class Kosik { private List seznam; public Kosik() { if (seznam==null) { seznam = new ArrayList(); /** * Prida pouze novou polozku. Pokud je polozka v seznamu, neprida se 16

* @param polozka */ public void add(polozka polozka) { if (find(polozka)==-1) seznam.add(polozka); /** * Odstrani polozku * @param index - index odstranovane polozky */ public void remove(int index) { seznam.remove(index); /** * Varti polozku s danym indexem * @param index * @return */ public Polozka get(int index) { return (Polozka)seznam.get(index); /** * Vraci pocet polozek v kosiku * @return */ public int size() { return seznam.size(); /** * Vraci index nalezene polozky * @param pol * @return index, -1 kdyz nenalezne */ public int find(polozka pol) { for (int i=0; i<seznam.size(); i++) { if (((Polozka)seznam.get(i)).equals(pol)) return i; return -1; Položka košíku: public class Polozka { public final static String ID="id"; public final static String POCET="pocet"; private Map row; public Polozka() { if (row==null) { row=new HashMap(); public Polozka(long id, int pocet) { if (row==null) { row=new HashMap(); row.put(polozka.id, new Long(id)); 17

row.put(polozka.pocet, new Integer(pocet)); /** * Vraci id vlozeneho produktu * @return */ public Long getid() { return (Long)row.get(Polozka.ID); /** * Nastaveni id produktu * @param id */ public void setid(long id) { row.put(polozka.id, new Long(id)); /** * Vraci pocet kusu daneho produktu * @return */ public Integer getpocet() { return (Integer)row.get(Polozka.POCET); /** * Nastaveni poctu kusu produktu * @param pocet */ public void setpocet(int pocet) { row.put(polozka.pocet, new Integer(pocet)); /** * Porovnani * @param pol * @return */ public boolean equals(polozka pol) { if (this.getid().longvalue()==pol.getid().longvalue()) return true; else return false; 6.4 Struktura kódu Část kódu zajištující komunikaci s databází je psána přímo v jazyce Java a je uložena v balíku cz.hopi.eobchod a jeho podadresářích. Zde jsou také uloženy pomocné třídy, jako například třída Func, která obsahuje statické metody využité pro formátování a úpravu textu. Zajišťuje například náhradu znaků, které nejsou v HTML kódu povoleny nebo u nichž by mohlo dojít k záměně za HTML tagy. Vlastní stránky obchodu jsou tvořeny JSP soubory. Zde je celkem přehledně propojena dynamická část tvořená Java kódem se statickým HTML zápisem. Pro formátování výsledného zobrazení jsou využity CSS styly. 18

7 Testování Testování proběhlo v několika krocích. Nejprve byla aplikace spuštěna s prázdnou databází a bylo ověřeno, že nedochází k chybovým výpisům. Po té bylo do databáze přidáno několik položek. Tím bylo prověřeno zadávaní na straně administrátora i zobrazení na straně klienta. Bylo prověřeno chování při zadávání různých požadovaných údajů (např. registrační formulář, změna hesla). Při chybném, nebo nedostatečném vyplnění byl uživatel upozorněn na neúplné vyplnění formuláře. Dále byla ověřena reakce programu na zadání nesmyslných hodnot, např. vložení písmen tam, kde je očekáváno číslo. Program se choval korektně. Na závěr bylo ověřeno zobrazení v různých prohlížečích (MS Internet Explorer, Mozilla Firefox). Zde bylo vidět určité rozdíly ve zobrazení stránek. Tyto rozdíly však nenarušily celkovou strukturu a je možné je zanedbat. 8 Porovnání s existujícími obchody Firem nabízejících svařovací techniku je celá řada. Na Internetu však mají většinou pouhý přehled sortimentu, ale ne plnohodnotný Internetový obchod. Přesto je možné najít i Internetové obchody s nabídkou této techniky. Pro porovnání se mnou vytvořeným programem jsem vybral stránky firmy Omicron (www.gamasvar.cz), která je výrobcem svářecí techniky a firmu Obchody-24 (www.naradi-24.cz) nabízející mimo jiné svářecí techniku a nástroje. Protože nemám přístup k administrátorské části obou obchodů, budu porovnávat pouze část klientskou podle následujících parametrů: obchod má jazykové mutace, zobrazuje novinky/akční nabídky, má diskuzi k jednotlivým produktům, umožňuje vyhledávání a fulltextové vyhledávání, řazení podle parametrů (kromě ceny a názvu), umožňuje porovnání zboží (přehledný výpis parametrů vybraných produktů), možnost výběru způsobu platby. 19

parametr Gamasvar Nářadí-24 můj obchod jazykové mutace ano ne ne akční nabídky ano ano ano novinky ne ano ano diskuze k produktům ne ne ne vyhledávání / fulltext ano/ano ano/ano ano/ne řazení dle vybraných prametrů ne ano ne porovnání zboží ne ano ne výběr způsobu platby ano ne ano Tab 8.1 Porovnání Internetových obchodů 9 Závěr V této práci byl předveden postup při návrhu Internetového obchodu a podle tohoto návrhu byl po té obchod za využití technologií JSP a Hibernate také realizován. Výsledná aplikace nemůže svým rozsahem plně konkurovat profesionálním řešením, přesto však splňuje základní požadavky pro elektronické obchodování. Pro další vylepšení se nabízí řada možností. Bylo by vhodné vytvořit správu jednotlivých uživatelů, rozšířit vyhledávání podle parametrů zboží, přidat možnost diskuze k jednotlivým produktům, nebo alespoň pro celý obchod. Vytvořená aplikace a dokumentace splňuje svým rozsahem a zpracováním požadavky dle zadání bakalářské práce. 20

10 Seznam použité literatury [1] HEROUT, Pavel. Učebnice jazyka Java. [s.l.] : Kopp, 2004. 349 s. ISBN 80-7232- 115-3. [2] BURD, Barry. JSP: JavaServer Pages : Podrobný průvodce. Brno : Computer Press, a.s., 2003. 381 s. ISBN 80-7226-804-X. [3] HALL, Marty. JAVA servlety a stránky JSP. [s.l.] : Neocortex spol. s r.o., 2001. 585 s. ISBN 80-86330-06-0. [4] PEAK, Patrick, HEUDECKER, Nick. Hibernate quickly. [s.l.] : Manning Publications Co., 2006. 425 s. ISBN 1932394419. [5] VOLDÁN, Jan. Internetový obchod. [s.l.], 2006. 41 s. Ceské vysoké ucení technické v Praze - Fakulta elektrotechnická. Bakalářská práce. Dostupný z WWW: <https://dip.felk.cvut.cz/browse/pdfcache/voldaj1_2006bach.pdf>. [6] Java Technology [online]. Sun Microsystems, Inc., c1994-2007 [cit. 2007-08-10]. Dostupný z WWW: <java.sun.com>. [7] Hibernate [online]. Red Hat Middleware, LLC, c2006 [cit. 2007-08-10]. Dostupný z WWW: <www.hibernate.org>. [8] PostgreSQL [online]. PostgreSQL Global Development Group, c1996-2007, 2007-08-07 [cit. 2007-08-10]. Dostupný z WWW: <www.postgresql.org>. [9] Apache Tomcat [online]. The Apache Software Foundation, c1999-2007 [cit. 2007-08-10]. Dostupný z WWW: <tomcat.apache.org>. [10] Eclipse [online]. The Eclipse Foundation, c2007 [cit. 2007-08-10]. Dostupný z WWW: <www.eclipse.org>. [11] UML tools for software development and Modeling - Enterprise Architect Full Lifecycle UML modeling tool [online]. Sparx Systems Pty Ltd., c2000-2007 [cit. 2007-07-01]. Dostupný z WWW: <www.sparxsystems.com.au>. [12] Wikipedia [online]. [2007] [cit. 2007-08-12]. Dostupný z WWW: <www.wikipedia.org>. 21

A Vytvoření tabulek Zde jsou uvedeny SQL příkazy pro vytvoření jednotlivých tabulek. CREATE TABLE adresa ( id serial NOT NULL, jmeno character varying(100), prijmeni character varying(100), firma character varying(100), ulice character varying(100), mesto character varying(100), psc character varying(6), ico character varying(10), email character varying(100), tel character varying(45), teldodaci character varying(45), dic character varying(10), fax character varying(45), CONSTRAINT adresa_pkey PRIMARY KEY (id) ) CREATE TABLE kategorie ( id serial NOT NULL, nazev character varying(50) NOT NULL DEFAULT ''::character varying, popis character varying(255), nadrazenaid integer, disabled boolean, CONSTRAINT kategorie_pkey PRIMARY KEY (id) ) CREATE TABLE objednavka ( id serial NOT NULL, uzivatel integer, adresafakt integer, adresadod integer, datumporizeni timestamp without time zone, datumodeslani timestamp without time zone, datumvyrizeni timestamp without time zone, zpusobuhrady integer DEFAULT 0, stav integer DEFAULT 0, CONSTRAINT objednavka_pkey PRIMARY KEY (id) ) CREATE TABLE objpolozka ( id serial NOT NULL, objednavka integer NOT NULL DEFAULT 0, produkt integer NOT NULL DEFAULT 0, cena double precision NOT NULL DEFAULT 0, pocet integer NOT NULL DEFAULT 0, CONSTRAINT objpolozka_pkey PRIMARY KEY (id) ) 22

CREATE TABLE obrazek ( id serial NOT NULL, bdata bytea, CONSTRAINT obrazek_pkey PRIMARY KEY (id) ) CREATE TABLE produkt ( id serial NOT NULL, nazev character varying(60), popis character varying, cena double precision NOT NULL DEFAULT (0)::double precision, kategorieid integer, jenabizen boolean NOT NULL DEFAULT false, vyrobceid integer, kod character varying(20), obrazekid integer, nahledid integer, akce boolean NOT NULL DEFAULT false, sleva boolean NOT NULL DEFAULT false, novinka boolean NOT NULL DEFAULT true, CONSTRAINT produkt_pkey PRIMARY KEY (id) ) CREATE TABLE uzivatel ( id serial NOT NULL, idadresafakt integer, idadresadod integer, jmeno character varying(100), heslo character varying(100), isadmin boolean NOT NULL DEFAULT false, CONSTRAINT uzivatel_pkey PRIMARY KEY (id) ) CREATE TABLE vyrobce ( id serial NOT NULL, nazev character varying(60), disabled boolean, poznamka character varying(255), CONSTRAINT vyrobce_pkey PRIMARY KEY (id) ) 23

B Rozdělení kategorií Svařování Svařovací zdroje MMA MIG/MAG MIG/MAG-oddělený podavač TIG TIG-AC/DC Plazmy-svařování Plazmy-dělení materiálu Příslušenství Ochranné svařovací kukly a štíty Ochrana zraku a sluchu Oblečení pro svářeče Držáky elektrod a zemnící svorky Svařovací spreje a pasty Propojení a kabely Hořáky TIG Hořáky MIG/MAG Redukční ventily Nástroje a nářadí Svařovací materiály Obalená elektroda Drát-tavidlo Drát-MIG/MAG Drát-TIG Drát-plamen Plněná elektroda Tavidlo Navařovací páska Pájka tvrdá 24

Soustružení Soustruhy CNC soustruhy Stolní soustruhy Klasické soustruhy Příslušenství Nástroje pro soustružení Nože s VBD Nože HSS Nože s SK VBD Frézování Frézky CNC frézky Stolní frézky Vrtací frézky Univerzální frézky Příslušenství Nástroje pro frézování Frézy HSS Frézy z monolitního tvrdokovu Frézy s VBD Frézovací hlavy VBD Vrtání Vrtačky Stolní vrtačky Sloupové vrtačky Naklápěcí vrtačky Příslušenství 25

Nástroje pro vrtání Vrtáky válcové Vrtáky kuželové Vrtáky stupňovité Vrtáky SK Výhrubníky Výstružníky Záhlubníky Broušení Brusky Dvoukotoučové brusky Leštičky Pásové a talířové brusky Brusky na vrtáky Příslušenství Nástroje pro broušení Brusné kotouče Brusná tělíska Řezací kotouče Drátěné kotouče Brousící plátna Lamelové kotouče Leštící kotouče měkké Leštící kotouče tvrdé Brusné a leštící pasty Řezání Pily Pásové pily Kotoučové pily Příslušenství 26

Nástroje pro řezání Pilové pásy Pilové kotouče Kompresory Šroubové kompresory Pístové kompresory Příslušenství Závitování Rámečky Vratidla Závitořezy Závitníky-strojní Závitníky-sadové Závitové čelisti Měřidla Posuvná měřítka Hloubkoměry Výškoměry (nádrhy) Mikrometry Indikátory Základní měrky Kalibry Stojánky Ruční nářadí Ruční nářadí elektrické Ruční nářadí akumulátorové Ruční nářadí pneumatické 27

28

C Uživatelská příručka 1 Instalační příručka 1.1 Vytvoření databáze Způsob vytvoření databáze se může lišit podle použitého databázového klienta. Zde je popsán postup při použití PHPadmin pro PostgreSQL. Po přihlášení do PHPadmin je potřeba založit databázi kliknutím na odpovídající odkaz (zde - Vytvořit databázi). Název databáze bude eobchod a zvolené kódování UTF-8. Po potvrzení je databáze založena a je možné přistoupit k vytvoření jednotlivých tabulek. Databázi je nyní možné editovat kliknutím na její název. V okně editace zvolíme z horního menu SQL. Tím se dostaneme do prostoru pro zadávání SQL příkazů. Zde postupně vkládáme jednotlivé SQL příkazy z přílohy A a stiskem tlačítka Spustit je provedeme. Tím jsou založeny tabulky v databázi. Na závěr je potřeba zapsat počáteční jméno a heslo administrátora pomocí SQL příkazem: insert into uzivatel (jmeno,heslo,isadmin) values ('admin','0dpikunirrvmd8iucuw1hqxnqzc=',true) Základní administrátorské jméno a heslo pro první přihlášení do obchodu je admin / admin. Tím je připravena celá databáze. 1.2 Instalace obchodu Před nahráním balíku war na server je nutné upravit konfigurační soubor hibernate.cfg.xml pro Hibernate. Soubor je uložen v adresáři web-inf/classes. <?xml version="1.0"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.username">eobchod</property> <property name="connection.password">eobchod</property> <property name="connection.url"> jdbc:postgresql://localhost/eobchod </property> <property name="connection.driver_class"> org.postgresql.driver </property> <property name="dialect"> 29

org.hibernate.dialect.postgresqldialect </property> <mapping resource="cz/hopi/eobchod/sql/produkt.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/obrazek.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/kategorie.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/vyrobce.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/adresa.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/uzivatel.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/objednavka.hbm.xml"/> <mapping resource="cz/hopi/eobchod/sql/objpolozka.hbm.xml"/> </session-factory> </hibernate-configuration> Zde je nutné upravit položky username, password a url podle informací od poskytovatele webovského prostoru. Po uložení je možné balík war poslat přes administrátorské rozhraní Apache na server. Tím je obchod nainstalován a připraven k naplnění databáze. 30

2 Ovládání administrátorská část Přístup k administrátorské části je realizován přes stránku admlogin.jsp, kde je nutné zadat jméno a heslo administrátora. Při pokusu o přístup k jiným stránkám administrátorské části je nepřihlášený uživatel vždy přesměrován na admlogin. 2.1 Objednávky Po správném přihlášení je uživateli zobrazena stránka s výpisem objednávek. Na tuto stránku je také možné přejít výběrem položky Objednávky v menu. Zde je ve výběru možné zvolit filtrování pro zobrazení objednávek. V pravém sloupci je možné u jednotlivých objednávek nastavit stav objednávky. Kliknutím na číslo objednávky se zobrazí její detail. Obr. C.2.1 Výpis objednávek Obr. C.2.2 Objednávka 31

2.2 Kategorie Obr. C.2.3 Výpis kategorií Volbou Nová kategorie je možné přidat další hlavní kategorii. Podkategorie se přidávají kliknutím na písmeno P u hlavních kategorií. Editace se provádí po stisku E. Zrušení, případně obnovení kategorie se provede stisknutím Z (O). Při zrušení hlavní kategorie jsou zrušeny i její podkategorie. Obnovení podkategorie současně obnoví i nadřazenou kategorii. 2.3 Výrobci Obr. C.2.4 Výpis výrobců 32

Podle výběru Zobrazit je možné omezit zobrazení výrobců na aktivní (zobrazují se v nabídce obchodu), zrušené a vše. Přepínání výrobce mezi aktivním a zrušeným se děje stiskem odpovídajícího znaku v pravé části výpisu. Nového výrobce lze přidat po kliknutí na odkaz Nový výrobce. 2.4 Zboží Zobrazení zboží je možné omezit pouze na konkrétní kategorii a dodavatele. Kliknutím na E se otevře okno s možností editace produktu a Z provede zákaz zobrazení produktu v nabídce. V editaci je možné měnit jednotlivé údaje produktu. Pokud přidáváme nový produkt od nového výrobce, musí být tento výrobce nejdříve zaveden do systému (viz. menu Výrobce). Obr. C.2.5 Výpis zboží Obr. C.2.6 Detail produktu 33

3 Ovládání klientská část 3.1 Základní okno Po zadání webové adresy se zobrazí základní okno obchodu. Obr. C.3.1 Úvodní strana Okno je rozděleno do třech hlavních částí: horní menu slouží pro navigaci po webu levé menu slouží pro výběr způsobu vyhledávání podle kategorií nebo podle výrobců střední část obrazovky zobrazuje seznam zboží 3.2 Výběr zboží Kliknutím v levém menu na záložku Kategorie nebo Výrobce se zobrazí seznam kategorií (výrobců), ze kterých je pak možné vybrat konkrétní kategorii, která nás zajímá. 34

Obr. C.3.2 Seznam produktů Na obrázku byla vybrána kategorie MIG/MAG. Ve výpisu se zobrazí seznam svařovacích zdrojů od všech výrobců, které jsou k dispozici. Kliknutím na jméno výrobce (zde pouze Omicron) v horní části seznamu omezíme výběr jen na tohoto výrobce. Číslo v závorce udává počet produktů od daného výrobce. Kliknutím na K u jednotlivých položek vložíme vybraný produkt do košíku. Kliknutím na D se zobrazí detail produktu s větším náhledem a s podrobným popisem. Obr. C.3.3 Detail produktu 35

Po ukončení výběru nebo pro kontrolu je možné přejít na košík výběrem položky Košík z horního menu. 3.3 Košík V košíku je možné měnit počet kusů od jednotlivých produktů. Pro zaregistrování změny je nutné zapsat počet kusů a stisknout tlačítko Přepočítat, tím dojde k přepočítání ceny za produkt i celkové ceny objednávky. Obr. C.3.4 Košík Produkt je možné z košíku odstranit vložením počtu 0 a stisknutím tlačítka Přepočítat. Pokud je uživatel spokojen se stavem košíku, je možné provést přípravu objednávky stisknutím Objednat. 36

3.4 Objednání Pokud je uživatel přihlášen, zobrazí se objednávkový formulář po stisknutí tlačítka Objednat z košíku. Pokud není, je potřeba se přihlásit nebo registrovat. Po kontrole správnosti údajů je možné objednávku potvrdit stiskem Objednat. O zaregistrování objednávky je uživatel informován zobrazením čísla objednávky. Pokud údaje nesouhlasí, je možné se stisknutím Zpět vrátit do košíku. Obr. C.3.5 Objednávka 3.5 Přihlášení Přihlášení do sytému je možné provést buď kliknutím na slovo nepřihlášen v levé části horního menu, nebo vybráním položky Zákazník Přihlášení. Zobrazí se formulář pro vložení jména a hesla. Uživatel už musí mít zaveden účet. Pokud jej nemá, je potřeba se registrovat. Obr. C.3.6 Přihlášení 37

3.6 Registrace Registrační formulář se zobrazí z horního menu zvolením Zákazník Registrace. Povinné údaje jsou označeny. V případě, že se fakturační a dodací adresa liší, je potřeba vyplnit i dodací adresu. Obr C.3.7 Registrační formulář 3.7 Odhlášení ze systému menu. Odhlášení ze systému se provede kliknutím na jméno v pravé části horního 38

D Obsah přiloženého CD Na přiloženém CD je uložena dokumentace, zdrojové kódy, soubory a aplikace potřebné pro spuštění Internetového obchodu. Obsah adresářů: Apache webový server Apache Tomcat. PostgreSQL databázový server PostgreSQL. Hibernate Hibernate framework. Java interpreter Java. Dokumentace tato dokumentace v elektronické podobě. Obchod přeložená aplikace Internetového obchodu a SQL skripty pro vytvoření databáze. Zdrojove_kody zdrojové kódy aplikace. 39