SZAKDOLGOZAT. Molnár Gábor



Hasonló dokumentumok
Mikroszámla. Interneten működő számlázóprogram. Kézikönyv

Webáruház felhasználói útmutató

Webáruház felhasználói útmutató

Logon megrendelő felület

Vihar 2.0 rendszer Felhasználói kézikönyv

Kérjük, hogy mielőtt elkezdené használni a Csavarhat webáruházat, gondosan olvassa végig ezt a segédletet.

Csavarda mobil áruház

Playlist.hu Kiadói kézikönyv

Felhasználói kézikönyv a WEB EDInet rendszer használatához

FELHASZNÁLÓI KÉZIKÖNYV

1. Nyissa meg a honlapot. 2. Kattintson a Rendelek. 3. Adja meg a felhasználónevét és jelszavát. 4. Kattintson a Belépés

Duál Reklám weboldal Adminisztrátor kézikönyv

WordPress segédlet. Bevezető. Letöltés. Telepítés

QB-Suli Felhasználói útmutató verziószám: március 4.

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

I-SZÁMLA KFT. VEVŐI FELHASZNÁLÓI FIÓK HASZNÁLATI ÚTMUTATÓ

DigiSkills. D3.5 Digiskills Leltár Kézikönyv

EKÁER használati utasítás

NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET

Megrendelés menete. 1. Válassza ki az Ön igényeinek megfelelő terméket!

Bóra Adatcsere. A webes modul működésének részletesebb leírását a csatolt dokumentum tartalmazza.

KISZÁLLÍTÁSI SEGÉDLET 1

FELHASZNÁLÓI KÉZIKÖNYV

Kézikönyv online bérletvásárláshoz

StartÜzlet online számlázó modul Használati Útmutató

First Voice Kft. Stilldesign Üzletág

Felhasználói kézikönyv. omunáldata

VECTRUM e-számla Web felület 1.2 verzió

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség:

Menza Pure Étkező felület Kézikönyv

Felhasználói dokumentáció a teljesítményadó állományok letöltéséhez v1.0

FIR WEBMODUL ALKALMAZÁS DIÁKIGAZOLVÁNY IGÉNYLÉS

Felhasználói kézikönyv

GLS címke kezelő bővítmény GLS online-hoz

A Down Alapítvány weboldalának (honlap) használata Weboldal szerkesztés

Felhasználói kézikönyv Flaga Online számlarögzítő rendszer V2.0

Albacomp RI Rendszerintegrációs Kft Székesfehérvár, Mártírok útja 9. E K O P - 1. A. 2 - A D A T Á L L O M Á N Y O K

A mobil alkalmazás. Felhasználói útmutató - Android

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

SZOLGÁLTATÓI NYILVÁNTARTÁSI RENDSZER FELHASZNÁLÓI KÉZIKÖNYV

DMS One Oktatási Portál Felhasználói segédlet. DMS One Zrt

Diákigazolvány. Belépés> Adminisztráció> Iskolai oktatás képes menü> diákigazolvány> diákigazolvány igénylés

Sú gó az ASIR/PA IR Públikús felú lethez

Hiteles Elektronikus Postafiók

FŐMENÜ... 2 BEVÉTELEZÉS...

OTP ADLAK Adómentes Lakáshitel-támogatás. Alapszolgáltatás KÉZIKÖNYV. OTP ADLAK alapszolgáltatás - munkáltatói portál

Felhasználói kézikönyv

VELUX VIKI-Online rendelés és árajánlat készítés Rendelés rögzítés

Hungaropharma Zrt. WEB Áruház felhasználói útmutató. Tartalomjegyzék

POSZEIDON dokumentáció (1.2)

Telenor Magyarország MS Office 365 telepítési útmutató

Apisshop webáruház Felhasználói dokumentáció

JAVA webes alkalmazások

PartSoft Informatikai Kft. KÖNNY felhasználói kézikönyv 1 Általános információk Számítástechnikai alapok Felhasználói ismeretek...


Felhasználói útmutató (Adott programverzióhoz érvényes)

Playlist.hu Felhasználói kézikönyv Nyilvános előadási jogdíj - háttérzene. Verziószám: 1.0. Dátum: február 20.

Belépés Budapest, Ady Endre utca

Tisztelt Felhasználó!

Parlagfű Bejelentő Rendszer

A mobil alkalmazás. Felhasználói útmutató - ios

ElektrO-ParT elektronikai alkatrész nyilvántartó program leírás.

Az Önök által megigényelt biztosítások gyors és egyszerű kezelésére szolgál Compline Utasbiztosítási Rendszerünk.

Felhasználói kézikönyv. ÜFT szolgáltatás. Magyar Nemzeti Bank

A Szoftvert a Start menü Programok QGSM7 mappából lehet elindítani.

Mobil Partner telepítési és használati útmutató

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató

Visitgyula.com Szálláshely adminisztrációs felület használati útmutató

Útmutató. Elektronikus ügyintézéshez a oldalon július 25. Oldal: 1 / 8

CAMLAND Beruházás-megfigyelő

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

Lincos Kft. megújuló weboldal. A Lincos Kft. weboldala, webáruháza hamarosan megújul, az alábbi képek segíthetnek Önnek az eligazodásban.

Számlaközpont Gazdaságfejlesztő Iroda Kft.

FELHASZNÁLÓI KÉZIKÖNYV

Microsec Számítástechnikai Fejlesztő zrt. Microsec web-szignó. Felhasználói útmutató. ver Budapest, július 06.

LOGON HASZNÁLATI ÚTMUTATÓ

Útmutató szivárgásvizsgálat-köteles berendezéseket érintő csoportos műveletekhez

NAV online számla revol Express. Regisztráció a NAV online számlabejelentés oldalán

Felhasználói dokumentáció. a TávTagTár programhoz. Készítette: Nyíri Gábor, hdd@nc-studio.com GDF Abakusz regisztrációs kód: GDFAba43

VALUTAISMERTETŐ FUNKCIÓNÁLIS SPECIFIKÁCIÓ

shop.haberkorn.hu Rendeljen online egyszerűen és gyorsan!

Tartalomjegyzék. 1. Rövid áttekintés Az alkalmazás bemutatása Vonalak Részletes lista... 5

Tele Élettel Programportál. Adminisztrátori segédlet

Könyvtárellátó Nonprofit Kft. Szülői Ügyfélkapu Felület

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Órarendkészítő szoftver

Példa webáruház kialakítás rendszerdokumentáció

ADATSZOLGÁLTATÁS központi honlap használata esetén

SzámlaCenter Felhasználói Kézikönyv

A Statisztikai adatszolgáltatás menüpont alatt végezhető el az adatlap kitöltése. 3 Statisztikai adatszolgáltatás menetének részletes bemutatása

Egyszerű számlázó program kezdő vállalkozások részére

KTI Közlekedéstudományi Intézet Nonprofit Kft. Vasúti Vizsgaközpont

SportinvazioClub felhasználói kézikönyv v

SCnet Vásárlói Applikáció. Felhasználói kézikönyv

Oszkar.com Android alkalmazás v1.2

A Perkapun keresztül a gazdálkodó szervezetek és a jogi képviselővel eljáró felek nyújthatják be beadványaikat. A szolgáltatást kizárólag

Tájékoztató e-közmű regisztrációhoz

TERC V.I.P. hardverkulcs regisztráció

PAS számlázó szoftver Használati útmutató

epos - Felhasználói leírás (MOBIL egyenleg feltöltés, Web áruházban történő vásárlás)

Átírás:

SZAKDOLGOZAT Molnár Gábor Debrecen 2014

Debreceni Egyetem Informatikai Kar Üzleti alkalmazás fejlesztése Java technológiával Témavezető: Dr. Kósa Márk Szabolcs adjunktus Készítette: Molnár Gábor programtervező informatikus BSc Debrecen 2014

Tartalomjegyzék Köszönetnyilvánítás... 4 1 Bevezetés... 5 2 Az üzleti alkalmazás... 7 2.1 Webáruház, e-kereskedelem... 7 2.2 Alkalmazott technológiák... 7 2.2.1 JavaServer Pages (JSP)... 7 2.2.2 Java Servlet... 7 2.2.3 JavaScript, jquery, AJAX... 7 2.2.4 Bootstrap 3, HTML5, CSS3... 8 2.3 A webáruház funkcionális követelményei... 9 2.3.1 Használati eset: Böngészés... 9 2.3.2 Használati eset: Keresés... 10 2.3.3 Használati eset: Rendezés... 10 2.3.4 Használati eset: Regisztráció... 11 2.3.5 Használati eset: Bejelentkezés... 11 2.3.6 Használati eset: Termék kosárba tétele... 11 2.3.7 Használati eset: Vásárlás... 12 2.3.8 Használati eset: Kijelentkezés... 12 2.4 Az adminisztrációs felület funkcionális követelményei... 12 2.4.1 Használati eset: Oldalak... 12 2.4.2 Használati eset: Rendelések, Számlák... 13 2.4.3 Használati eset: Termékek... 14 2.4.4 Használati eset: Kategóriák... 14 2.4.5 Használati eset: Gyártók... 15 2.4.6 Használati eset: Adóosztályok... 15 2.4.7 Használati eset: Szállítási módok... 16 2.4.8 Használati eset: Fizetési módok... 17 2.4.9 Használati eset: Kedvezmények... 17 2.4.10 Használati eset: Felhasználók... 18 2.4.11 Használati eset: Felhasználói csoportok... 18 2.4.12 Használati eset: Adminisztrátorok... 18 2.4.13 Használati eset: Profil... 18 2.5 MVC szemlélet... 18 2.6 Az alkalmazás... 19 2

2.6.1 Rendszerkövetelmény... 19 2.6.2 Szerkezet... 20 2.6.3 Részletes felépítés... 21 2.7 Adatbázis... 34 2.7.1 Az adatbázisban szereplő táblák... 35 2.7.2 Kapcsolódás az adatbázishoz... 41 3 A rendszer szolgáltatásainak részletes ismertetése... 42 3.1 Webáruház... 42 3.1.1 Termékek... 42 3.1.2 Bejelentkezés, Regisztráció... 43 3.1.3 Vásárlás... 44 3.2 Adminisztrációs felület... 45 3.2.1 Bejelentkezés, Vezérlőpult, Oldalak, Cégadatok... 45 3.2.2 Rendelések, Számlázás... 45 3.2.3 Webáruház adminisztrálása... 46 3.2.4 Felhasználók, Adminisztrátorok, Profil... 49 3.3 Képernyőképek mobileszközön... 50 3.3.1 Webáruház... 50 3.3.2 Adminisztrációs felület... 51 4 További fejlesztési lehetőségek... 52 5 Összefoglalás... 54 6 Irodalomjegyzék... 55 3

Köszönetnyilvánítás Hálával tartozom Kósa Márk adjunktusnak a szakmai támogatásáért és a folyamatos segítségnyújtásáért a tanulmányaim során és a szakdolgozatom elkészítése alatt. Nélküle szakdolgozatom nem jöhetett volna létre. Továbbá köszönetet szeretnék nyilvánítani Tanáraimnak, hogy a tanulmányaim alatt mindig megmutatták a megfelelő irányt az új ismeretek elsajátítására, és Önmagam továbbfejlesztésére. Enélkül az iránymutatás nélkül ma nem állhatnék itt egy ilyen szakdolgozati munkával a hátam mögött. Végül, de nem utolsó sorban Szüleimnek és Szeretteimnek szeretnék köszönetet mondani, hogy mindig mellettem állnak és támogatnak a céljaim elérésében. Megmutatták, hogy sosem szabad feladni, hogy az álmaimért mindig küzdeni kell. Ha nem lettek volna, akkor szakdolgozatom sem készülhetett volna el. 4

1 Bevezetés A szakdolgozati témám egy üzleti alkalmazás fejlesztése Java technológiával. Ez önmagában eléggé tág fogalom és elég sokféle üzleti folyamatokat támogató, illetve ellátó szoftverrendszer kerülhet ebbe a kategóriába. Viszont én ennek egy szűkebb, de mégis összetett részhalmazának a fejlesztését tűztem ki magam elé, mégpedig egy olyan webáruház elkészítését, ami nem csak a szó szoros értelmében webáruház, hanem képes ellátni a feladatok üzleti oldalát is. Ezt úgy tudtam elérni, hogy a webáruház adminisztrációs felületét továbbgondolva és kiegészítve beleépítettem számlázó és raktárkészlet nyilvántartó funkcionalitásokat is. Így az alkalmazásomnak három fő feladat ellátásával kell megküzdenie, nem feltétlenül ebben a sorrendben: a vásárlók rendelésének feldolgozása, az üzlet árukészletének kezelése, és persze a számlázás. Mindezek webes felületen történnek meg. Hogy miért választottam a webet a szakdolgozatom futtatási felületének? Ennek több oka is van. A legfőbb ok, és mivel már említettem is, hogy egy webáruházról van szó, így egyértelmű volt számomra, hogy a szoftverem számlázó és a raktárkészlet nyilvántartó komponenseit is internetes felülettel látom el és a webáruház mellett a szerveren futtatom. Második szempont is lényeges, ami nem más, mint a platformfüggetlenség. Olyan technológiákat használtam fel a fejlesztés során a Java nyújtotta lehetőségek mellett, amelyeket a mai operációs rendszerek modern böngészői kihasználnak, és ha nem is teljes mértékben, azaz apró eltérések lehetnek, de ugyanolyan megjelenítést biztosítanak a felhasználói felületnek minden platformon. Itt külön ki szeretném emelni a mobileszközöket. Ugyanis úgy készítettem el ezt a rendszert, hogy a modern okostelefonok, táblagépek és a lehető legtöbb mobileszköz képes legyen a saját korlátainak megfelelően megjeleníteni. Ezzel el is árultam a harmadik fő szempontot, ami a könnyű elérhetőség. Gondoljunk csak bele, manapság nem csak a nagyobb, esetleg kisebb cégek kiváltsága a webáruház, akár mi magunk is egyéni vállalkozóként indíthatunk egy webáruházat és árulhatjuk az interneten, akár a saját magunk által elkészített termékeinket is, ha akarjuk. Ezzel szeretném bizonyítani a könnyű elérhetőség erős mivoltát, illetve mindez biztosít számunkra egyfajta rugalmasságot is. Akár utazás közben, vagy egy kávé mellett a kávézóban 5

el tudjuk intézni az ügyeinket, hiszen a legtöbb helyen már van internet hozzáférésre lehetőség, de akár mobilinternetre csatlakozva is tevékenykedhetünk. Ezek voltak a fő szempontok és okok, hogy miért választottam a webet a futtatási felületnek, de most feltehetnénk azt a kérdést, amire még nem kaptunk választ, hogy miért ezt a témát választottam szakdolgozatomnak? Már elég régóta érdekeltek az üzleti folyamatokat segítő, ellátó alkalmazások, így igyekeztem jobban elmerülni ebben a témában. Utánajártam és nézelődtem, hogy most milyen lehetősége van egy olyan személynek, aki éppen webáruházat szeretne nyitni. Megannyi módot kínálnak az interneten számunkra, közöttük egyéni webáruház fejlesztése, vagy akár webáruház bérlésére is van lehetőség, de ezek nagy számban nem tartalmaznak számlázó és/vagy raktárkészlet nyilvántartó komponenseket, vagy esetleg külön szoftverhez valamiféle API-n keresztül kapcsolódva adnak lehetőséget számlázásra. Továbbá nem csak ezt a hiányosságot véltem felfedezni, nagyon kevés webáruház van felkészítve a mobileszközök által való megjelenítésre. Így ezeket a hiányosságokat célom volt a saját alkalmazásomban kiküszöbölni. Szerettem volna megtapasztalni, hogy egy ilyen mértékű szoftverrendszer fejlesztése során milyen problémákba ütközhetek, azokat a problémákat hogyan tudom kezelni, megoldani és alternatívákat találni rájuk. Továbbá szerettem volna megismerkedni a Java EE technológiáival és más webes technológiákkal a szakdolgozatom megírása során. Azért választottam ezt a témát, mert egy olyan szakdolgozatot szerettem volna, ami számomra kihívásokkal teli. 6

2 Az üzleti alkalmazás 2.1 Webáruház, e-kereskedelem Az egyik leggyakoribb weboldal típus manapság az interneten a webáruház. Ez egy olyan weblap, ahol termékeket vagy szolgáltatásokat értékesítenek az oldal tulajdonosai. Általában online bevásárló kosárral rendelkeznek ezek a weboldalak, így virtuálisan pakolhatjuk be a kosarunkba a megvásárolni kívánt termékeket, szolgáltatásokat. Végül szintén egy úgynevezett virtuális pénztárnál választhatjuk ki a szállítás és a fizetés módját, illetve ugyanitt fejezzük be a vásárlást is [24]. Az internet gyors térhódításával a bolttulajdonosok hamar észrevették az új üzleti lehetőséget az e-kereskedelemben, ami a webáruházak elterjedéséhez és az online kereskedelem megerősödéséhez vezetett. 2.2 Alkalmazott technológiák 2.2.1 JavaServer Pages (JSP) A JavaServer Pages (röviden JSP) egy olyan Java technológia, aminek a segítségével dinamikusan tudunk HTML, XML vagy egyéb dokumentumokat generálni HTTP kérésekre reagálva. A JSP oldalból java servlet forráskód generálódik. Szintaxisában az alábbi nyelvi elemek alkalmazhatók: statikus adat (például HTML), direktívák, scriptelemek és változók, akciók, elemkönyvtárakban definiált tagek. A JSP 2006 májusa óta a J2EE specifikáció része [21]. 2.2.2 Java Servlet Egy olyan Java objektum, amely HTTP kérést dolgoz fel és HTTP választ generál. Hasonlóképp oldja meg a tartalom generálás problémáját, mint például a PHP, a CGI vagy az ASP.NET. A servleteket a webszerver servlet container komponense kezeli, amely feladatai közé tartozik a servletek életciklusának kezelése és az URL-ek hozzárendelése a servletekhez [20]. 2.2.3 JavaScript, jquery, AJAX A JavaScript (röviden JS) egy objektumalapú scriptnyelv, amelyet elterjedten használnak weboldalakon, de Windows 8 és 8.1 alkalmazások is készíthetők a JavaScript alkalmazásával. 7

Jellemzően a futtatási környezete egy webböngésző, de Windowsos környezetben wscript.exe segítségével, míg Linuxos környezetben a nodejs-szel futtatható. Főbb adattípusai: elemi adattípusok (String, Number, Boolean), speciális típusok (Null, Undefined), két összetett típus (Object, Array). A jquery egy népszerű JavaScript keretrendszer, amely a HTML kód és a kliens oldali JavaScript közötti kapcsolatot hangsúlyozza. Célja, hogy leválassza a JavaScript kódot a HTML kódról amennyire csak lehetséges. Ezeket különböző eseményvezérlők segítségével oldja meg úgy, hogy azonosítókon keresztül kommunikál a weboldal HTML részének egyes elemeivel [4]. Az AJAX vagy hosszabban Asynchronous JavaScript and XML egy olyan technika, amivel interaktív webalkalmazásokat tudunk létrehozni. A weboldal a háttérben kis mennyiségű adatot cserél a szerverrel, így nem kell mindig újratölteni az oldalt, ha a felhasználó valamit módosít. Ez a technika nagymértékben növeli az oldalak interaktivitását, sebességét és használhatóságát. 2.2.4 Bootstrap 3, HTML5, CSS3 A HTML5 a HTML (Hypertext Markup Language) jelölőnyelv korábbi verzióinak egy újragondolt és átdolgozott változata. Bevezetett jó néhány új elemet (más néven taget, címkét) és tulajdonságot is, amelyek a modern weboldalakon jellemzően alkalmazott szerkezetre kínálnak új megoldásokat. Néhány változtatás szemantikai jellegű, más elemek új funkciók elérését biztosítják. Bár a jelölések hasonlósága ellenére a HTML5 már nem SGML-en alapszik, de úgy tervezték, hogy visszafele kompatibilis legyen [23]. A CSS3 a Cascading Style Sheets angol kifejezés rövidítése, a 3-as szám pedig a verziószámát jelöli. Ez egy stílusleíró nyelv, amely a HTML vagy XHTML típusú strukturált dokumentumok megjelenéséért felel. Ezen kívül használható bármilyen XML alapú dokumentum stílusának leírására is, például: SVG, XUL stb. [22]. A Bootstrap 3 egy front-end fejlesztői keretrendszer, mely immár a 3. verziójánál tart. Ez a keretrendszer ötvözi a CSS3, HTML5, illetve a jquery által nyújtott lehetőségeket, ezzel biztosítva a fejlesztő számára webalkalmazások gyors fejlesztésének lehetőségét [3]. 8

2.2.5 A webáruház funkcionális követelményei Ebben a fejezetben külön csak az alkalmazásom webáruház részére térnék ki és a webáruház felhasználói szempontjából írnám le a funkcionális követelményeket. A webáruház szerint a felhasználókat vagy vásárlókat két csoportra tudjuk osztani. Ezek a csoportok rendre a látogató és a regisztrált vásárló vagy egyszerűen vásárló. A két csoport között a regisztráció tesz különbséget, így hiába a látogató és a vásárló is el tudja végezni ugyanazt a webáruházban, mégis van némi különbség a lehetőségeik között. A továbbiakban használati eset (use case) diagramok segítségével szeretném szemléltetni a felhasználók lehetőségeit. 2.2.6 Használati eset: Böngészés 1. ábra: Böngészés használati eset diagram A látogató és a vásárló egyaránt tud a webáruházban fellelhető termékek között böngészni, kategóriák között váltani, illetve ha nem fér ki egy oldalra a terméklista, akkor a termékoldalak között lapozni (1. ábra). 9

2.2.7 Használati eset: Keresés 2. ábra: Keresés használati eset diagram A látogató és a vásárló is tud a termékek között keresni. A keresés form kitöltésével a kereső a termékek nevében, leírásában és paraméterlistájában keres, és ezek által ad releváns adatot vissza a felhasználónak (2. ábra). 2.2.8 Használati eset: Rendezés 3. ábra: Rendezés használati eset diagram A látogató és a vásárló is tudja rendezni a termékeket több szempont alapján csökkenő vagy növekvő sorrendbe. Ezek a szempontok: a dátum szerinti, a név szerinti és az ár szerinti rendezés (3. ábra). 10

2.2.9 Használati eset: Regisztráció 4. ábra: Regisztráció használati eset diagram A látogatónak, mielőtt megvásárolná a kosárba rakott termékeket, regisztrálnia kell. A regisztrációkor meg kell adnia bizonyos adatokat szállítással, számlázással kapcsolatban, illetve a kapcsolattartót is fel kell tüntetnie. A vásárló már nem regisztrálhat, mert regisztrált fiókkal rendelkezik (4. ábra). 2.2.10 Használati eset: Bejelentkezés 5. ábra: Bejelentkezés használati eset diagram Miután a látogató beregisztrált a webáruházba, rendelkezik felhasználó névvel, ami jelen esetünkben az email, illetve jelszóval a bejelentkezéshez. Bejelentkezés után vásárlóként kezeljük a látogatót. A vásárló nem tud bejelentkezni, mivel már be van jelentkezve a rendszerbe (5. ábra). 2.2.11 Használati eset: Termék kosárba tétele 6. ábra: Termék kosárba tétele használati eset diagram 11

A látogató és a vásárló is tud a korásba terméket berakni, meg tudják adni a termék mennyiségét, illetve változtatni, frissíteni tudják a kosár tartalmát (6. ábra). 2.2.12 Használati eset: Vásárlás Vásárolást csak a bejelentkezett vásárló tud végezni, ugyanis a vásárláshoz szükségesek a regisztráláskor megadott adatok. Értelemszerűen a látogató csak regisztráció és/vagy bejelentkezés után tud vásárolni. 2.2.13 Használati eset: Kijelentkezés 7. ábra: Kijelentkezés használati eset diagram A kijelentkezés lehetősége csak bejelentkezés után érhető el, ezért kijelentkezni csak a vásárló tud bejelentkezés után bármikor (7. ábra). 2.3 Az adminisztrációs felület funkcionális követelményei Az adminisztrációs felülettel szemben felállított funkcionális követelményeket mutatnám be ebben a fejezetben, az előző fejezethez hasonlóan használati eset diagramok segítségével. Az adminisztrátorokat itt négy csoportra, pontosabban négy szintre lehet tagolni. Ezek a szintek jogosultság alapján különböznek egymástól. A négy csoport a legalacsonyabb szinttől a legmagasabb szintig: felhasználó, moderátor, adminisztrátor, super user. A használati esetek ábrázolják az egyes szintek lehetőségeit a rendszerben. 2.3.1 Használati eset: Oldalak Három információs oldalt lehet szerkeszteni az adminisztrációs felületen. Ezek az oldalak: a kapcsolat oldal, a szállítási információk oldal és az általános szerződési feltételeket megjelenítő oldal. Ezek nem törölhetők, csak módosíthatók. A felhasználó szintű adminisztrátorokon kívül minden más szintű admin rendelkezik azzal a joggal, hogy módosítsa az oldalakat. 12

Minden adminisztrátornak van joga az oldalak listázásához, szűréséhez és megtekintéséhez. 2.3.2 Használati eset: Rendelések, Számlák 8. ábra: Rendelések, Számlák listázása használati eset diagram A rendeléseket, számlákat bármely adminisztrátor megtekintheti, listázhatja, illetve szűrheti fontosabb szempontok alapján (8. ábra). 9. ábra: Rendelések, Számlák kezelése használati eset diagram Számlák kiállítására csak a moderátor, adminisztrátor és a super user szintű adminisztrátorok képesek. A felhasználó szintű adminisztrátorok csak ellenőrizhetik a kiállított számlákat. Hasonlóképp visszavonni a számlákat, törölni rendeléseket csak a moderátor, az adminisztrátor és a super user lesznek képesek (9. ábra). 13

2.3.3 Használati eset: Termékek 10. ábra: Termékek kezelése használati eset diagram Termékeket adminisztrációs felületen lehet felölteni, módosítani, illetve törölni. Ezek a lehetőségek csak a moderátor, az adminisztrátor és a super user szintű adminoknak állnak a rendelkezésére (10. ábra). 11. ábra: Termékek listázása használati eset diagram Minden adminisztrátornak joga van megtekinteni, kilistázni, illetve szűrni a termékeket főbb szempontok alapján (11. ábra). 2.3.4 Használati eset: Kategóriák Azokat a kategóriákat törölhetik a felhasználó szintűnél magasabb szintű adminisztrátorok, amelyek üresek vagy nincs alkategóriájuk. Módosítani is csak a moderátor, az adminisztrátor és a super user tudja. 14

Az összes adminisztrátornak joga van kilistázni, megtekinteni és szűrni a kategóriákat adott szempontok alapján. 2.3.5 Használati eset: Gyártók Gyártókat törölni, módosítani a felhasználó szintű adminisztrátorokon kívül bármely adminisztrátornak van joga. Gyártók listázásának és szűrésének jogával az összes admin rendelkezik. 2.3.6 Használati eset: Adóosztályok 12. ábra: Adóosztályok kezelése használati eset diagram Az adóosztályokat létrehozni, módosítani és törölni csak a moderátor, az adminisztrátor és a super user szintű adminok tudnak (12. ábra). 13. ábra: Adóosztályok listázása használati eset diagram Adóosztályokat kilistázni, megtekinteni és szűrni bármelyik adminisztrátor megteheti (13. ábra). 15

2.3.7 Használati eset: Szállítási módok 14. ábra: Szállítási módok kezelése használati eset diagram A moderátor, az adminisztrátor és a super user rendelkezik a szállítási módok felvételének, módosításának és törlésének jogával (14. ábra). 15. ábra: Szállítási módok listázása használati eset diagram Minden adminisztrátor képes kilistázni, megtekinteni és szűrni az egyes szállítási módokat (15. ábra). 16

2.3.8 Használati eset: Fizetési módok 16. ábra: Fizetési módok kezelése használati eset diagram A fizetési módokat csak a moderátor, az adminisztrátor, illetve a super user viheti fel az adatbázisba, módosíthatja, és törölheti az adatbázisból (16. ábra). 17. ábra: Fizetési módok listázása használati eset diagram Fizetési módok kilistázását, szűrését, illetve megtekintését bármely adminisztrátor megteheti, mert rendelkezik azzal a joggal (17. ábra). 2.3.9 Használati eset: Kedvezmények A kedvezményeket csak a moderátor, az adminisztrátor, és a super user szintű adminisztrátorok joga felvenni az adatbázisba, módosítani és törölni. A kedvezmények kilistázását, szűrését és megtekintését az összes admin megteheti. 17

2.3.10 Használati eset: Felhasználók A felhasználókat törölni, módosítani és felvenni az adatbázisba (mint partner) a moderátor, az adminisztrátor és a super user szintű adminisztrátorok joga. Minden admin rendelkezik a felhasználók kilistázásának, szűrésének és megtekintésének jogával. 2.3.11 Használati eset: Felhasználói csoportok Felhasználói csoportokat csak a moderátor, az adminisztrátor és a super user hozhat létre, módosíthat és törölhet. Az összes adminisztrátornak van joga a felhasználói csoportokat kilistázni, megtekinteni és szűrni főbb szempontok alapján. 2.3.12 Használati eset: Adminisztrátorok Csak az adminisztrátor és a super user szintű adminok tudnak új adminisztrátort beregisztrálni, módosítani, illetve törölni az adminisztrátort az adatbázisból. Minden adminisztrátor rendelkezik a többi adminisztrátor kilistázásának, szűrésének és megtekintésének jogával. 2.3.13 Használati eset: Profil Minden adminisztrátor tudja a saját adatait módosítani. Profilmódosítás esetén tudnak jelszót módosítani is. 2.4 MVC szemlélet 18. ábra: Modell Nézet Vezérlő (MVC) tervezési minta diagram A fejlesztés során az MNV (MVC) szemlélet mód figyelembevételével igyekeztem elkülöníteni az adatok elérését és az üzleti logikát az adatok megjelenítésétől és a felhasználói 18

interakcióktól. Ezzel biztosítottam azt, hogy a felhasználói felület ne befolyásolja a kezelést, illetve az adatok a későbbi fejlesztések során, ha szükséges, könnyen átszervezhetőek legyenek a felhasználói felület (UI) változtatása nélkül (18. ábra). 2.5 Az alkalmazás 2.5.1 Rendszerkövetelmény A kliens szempontjából a rendszer futtatásához elegendő bármely olyan operációs rendszer, amelyen futtatható olyan böngésző, ami a modern HTML5, CSS3, JavaScript technológiákat képes megjeleníteni. A fejlesztés alatt a rendszer tesztelése desktop eszközön több böngészőben (Microsoft Internet Explorer 11, Mozilla Firefox 28, Google Chrome 34, Opera 19) Windows 8 operációs rendszer alatt történt. Továbbá mobil eszközön Android 4 operációs rendszer alatt Google Chrome 34 böngészőben folyt a tesztelés. A szerveroldalról nézve a rendszernek szüksége van egy olyan platformra, ami Apache Tomcat és MySQL szervereket képes futtatni. 19

2.5.2 Szerkezet 19. ábra: Csomagdiagram Az ábrán (19. ábra) látható csomagdiagram mutatja be az üzleti alkalmazás szerkezetét és az egyes csomagok közötti kapcsolatot. A web application csomag tartalmazza mind az adminisztrációs felületet, mind a webáruház felületet létrehozó nézet fájlokat. A szoftver tervezésekor az MVC tervezési minta figyelembevétele mellett nagy hangsúlyt fektettem a webáruház és az adminisztrációs felület különválasztására. Úgy hoztam létre az egyes csomagokat, hogy a webáruház és az adminisztrációs felülethez tartozó vezérlőket külön helyeztem el, ellenben mivel egy alkalmazásról van szó, így vannak olyan csomagok, amelyeket mind a webáruház és mind az adminfelület egyaránt használ a futtatás során. Ilyen csomagok például a project.connection vagy a project.model. A project.model, a project.connection, a project.listener, a project.exception és a project.enums csomagokban található osztályok önállóan is megállják a helyüket, viszont a 20

többi csomagban található osztályok ezeket az osztályokat használják fel az egyes metódusaik végrehajtásakor. 2.5.3 Részletes felépítés 20. ábra: A project.admin.administration.servlet csomag AdminLogServlet doget() dopost() adminlogin() AdminModify doget() dopost() adminpasswordmodify() validatepassword() adminmodify() AdminServlet doget() dopost() deleteadmin() adminregistration() CompanyServlet 21

dopost() insertcompany() InvoiceDataServlet doget() InvoiceServlet doget() dopost() increaseitemqt() removeinvoiceitem() updateinvoice() createinvoice() createinvoiceitem() decreaseitemqt() getinvoiceitemlist() InvoiceStornoServlet doget() increaseitemqt() updateinvoice() PageServlet dopost() insertpage() UserServlet Metódusok: doget() dopost() deleteuser() userregistration() UserGroupServlet dopost() insertorupdateusergroup() 22

21. ábra: A project.admin.controller csomag AdminC checkadminpwd() getadminbyusername() getadminbyid() getadmins() getnextid() ItemTaxC selecttax() gettaxbyid() getnextid() UsersC selectusers() selectusergroups() selectusergroupnamebyid() colorisebystatus() 23

colorisebytype() getnextgroupid() getnextid() PageC getpagebyname() getpagebyid() getpages() ItemProducerC selectproducer() getproducerbyid() getnextid() ItemPictureC selectitempictures() getitempicturebyid() createname() removenotallowedcharandlow er() getnextid() CompanyC getcompanybyid() ItemDiscountC selectdiscounts() selectdiscountsbyid() getnextid() ItemPaymentC selectpayments() selectpaymentswithdelivery() selectpaymentbyid() selectpaymentbyname() getdeliveryidsfromjson() getnextid() ItemC Adattagok: limit orderoptions quantitystring() selectitems() selectitemstoinvoice() getitembyid() splitspecification() getnextid() getitemsbypage() getpagination() getordering() InvoiceC getnewordersnum() getlasrorderid() selectinvoices() selectinvoiceitems() getinvoicebyid() colorizedinvoicestatus() 24

getinvoiceid() getinvoiceitemqt() getinvoiceitemtotal() getinvoiceitemtax() ItemDeliveryC selectdeliveries() selectdeliveriesbypayments() selectdeliverybyid() getnextid() ItemCategoryC selectcategoriesinsteadofthis() selectcategories() selectcategoriesbyparentid() getcategorybyid() getcategoryidbyname() getnextid() createcategorylist() ancestorlist() categoryisempty() howmanyitemsinthecategory() 22. ábra: A project.admin.item.servlet csomag TaxServlet doget() dopost() deletetax() inserttax() ProducerServlet doget() dopost() 25

deleteproducer() insertproducer() PaymentServlet doget() dopost() deletepayment() insertorupdatepayment() ItemServlet doget() dopost() deleteitem() deleteitempictures() insertitem() FileUpload doget() dopost() deleteitempicture() insertpicture() renamefile() getsuffix() DiscountServlet doget() dopost() deletediscount() insertorupdatediscount() CategoryServlet doget() dopost() deletecategory() insertcategory() DeliveryServlet doget() dopost() deletedelivery() insertorupdatedelivery() 23. ábra: A project.connection csomag ConnectMySQLSingleton Adattagok: getconnection() 26

24. ábra: A project.enums csomag InvoiceTypeE Adattagok: rendelés törölt_rendelés teljesített sztornó szállító UserStatusE Adattagok: inaktív aktív letiltott UserTypeE Adattagok: regisztrált partner 25. ábra: A project.listener csomag SessionListener sessiondestroyed() 27

26. ábra: A project.model csomag Admin Adattagok: id loginname password name email permission status Cart Adattagok: userid deliveryid paymentid ci CartItem Adattagok: quantity Category 28

Adattagok: id parent name status Company Adattagok: id name num taxnum eutaxnum banknum addr addr2 phone phone2 fax email Delivery Adattagok: id name price note Discount Adattagok: id bottom top percent usergroupid FileData Adattagok: name size url thumbnailurl deleteurl deletetype - Invoice Adattagok: id userid deliveryname paymentname deliveryprice paymentprice companyname companyaddr companytaxnum companybanknum billname billaddr taxnum banknum shipname shipaddr status fullfilmentdate 29

createdate paymentdate invoiced ii InvoiceItem Adattagok: id invoiceid itemid quantity tax net profit price spec - Item Adattagok: id number name net price spec profit tax quantity category producer status overview specific specification uploaddate modifydate ItemPicture Adattagok: id itemid name path thumbpath JsonMessage Adattagok: message bool - Page Adattagok: id name content Payment Adattagok: id name price deliveryids Producer Adattagok: 30

id name Tax Adattagok: User Adattagok: id name email password phone taxnum banknum i. id ii. name iii. percent iv. value billname billaddr billcity billzip shipname shipaddr shipcity shipzip status type regdatetime UserGroup Adattagok: id name 27. ábra: A project.webshop.cart.servlet csomag CartServlet dopost() CartRefreshServlet doget() 31

dopost() CartPaymentServlet dopost() CartOrderServlet dopost() createorder() createorderitem() decreaseitemqt() getinvoiceitemlist() 28. ábra: A project.webshop.controller csomag UserC comparepasswords() encodepasswords() checkuseremail() checkuseremailisexists() checkuserpwd() getuserbyemail() getuserbyid() comparebillandship() CartC getcart() setcart() setdefaultcart() getsubtotal() gettax() gettotal() getcartitemsqt() 29. ábra: A project.webshop.exception csomag 32

InvalidInputException 30. ábra: A project.webhop.user.servlet csomag Registration dopost() validateinputs() userregistration() LogInOutServlet doget() dopost() userlogin() Modify doget() dopost() refreshusersession() validateinputs() usermodify() userpasswordmodify() validatepassword() 33

2.6 Adatbázis 31. ábra: A szoftver adatbázisának sémája A 31. ábra grafikusan szemlélteti az üzleti alkalmazás mögött álló adatbázist. Ez a séma bemutatja az adatbázisban szereplő és az alkalmazáshoz létfontosságú táblák szerkezetét és a közöttük fellépő kapcsolatot (1 15. táblázat). 34

2.6.1 Az adatbázisban szereplő táblák 1. táblázat: Az admin tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem Az adminisztrátorok azonosítója. login_name varchar(200) Nem Bejelentkezésre szolgáló név. password varchar(40) Nem Bejelentkezéshez szükséges jelszó. name varchar(200) Nem Az adminisztrátor valódi neve. email varchar(200) Nem Az adminisztrátor email címe. permission tinyint(1) Nem Adminfelület kezelésének joga. status enum('inaktív', 'aktív') Nem inaktív Aktív vagy inaktív státuszú-e az admin. registration_date date Nem Regisztráció dátuma. 2. táblázat: A company tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem Azonosító. name varchar(250) Igen NULL Cégnév comp_num varchar(250) Igen NULL Cégjegyzékszám tax_num varchar(250) Igen NULL Adószám eu_tax_num varchar(250) Igen NULL Közösségi adószám. bank_num varchar(250) Igen NULL Bankszámlaszám addr text Igen NULL Székhely addr2 text Igen NULL Telephely phone varchar(250) Igen NULL Telefonszám phone2 varchar(250) Igen NULL Telefonszám 2 fax varchar(250) Igen NULL Fax email varchar(250) Igen NULL Email 3. táblázat: A delivery tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A szállítás módjának azonosítója. name varchar(255) Nem A szállítás módja. price int(11) Nem A szállítás ára. note text Nem A szállítási mód leírása. 35

4. táblázat: Az invoice_item tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem Az elem azonosítója. invoice_id int(10) Nem A dokumentum azonosítója. item_id int(10) Nem A termék azonosítója. quantity int(10) Nem A termék mennyiség. tax int(10) Nem A vásárláskor használt adó százalékban. net double Nem A termék nettó ára. profit int(10) Nem A profit vásárláskor. price double Nem A termék bruttó ára. spec double Nem A termék akciós ára. 36

5. táblázat: Az invoice tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem user_id int(10) Nem delivery_name varchar(250) Nem payment_name varchar(250) Nem delivery_price double Nem A dokumentum azonosítója. A felhasználó azonosítója. A szállítási mód neve. A fizetési mód neve. A szállítás költsége. payment_price double Nem A fizetés költsége. company_name varchar(250) Nem A cég neve. company_addr varchar(250) Nem A cég székhelyének címe. company_tax_num varchar(250) Nem A cég adószáma company_bank_num varchar(250) Nem bill_name varchar(250) Nem bill_addr varchar(250) Nem A cég banszámlaszáma Vevő számlázási neve. Vevő számlázási címe. tax_num varchar(250) Nem Vevő adószáma. bank_num varchar(250) Nem ship_name varchar(250) Nem ship_addr varchar(250) Nem status enum('rendelés', 'törölt rendelés', 'teljesített', 'sztornó', 'szállító') Nem rendelés Vevő bankszámlaszáma. Vevő szállítási neve. Vevő szállítási címe. A dokumentum státusza. fullfilment_date date Nem Teljesítés dátuma. create_date date Nem Létrehozás dátuma. payment_date date Nem Fizetési határidő. invoiced tinyint(1) Nem Megmondja, hogy a rendelést kiszámláztuk-e már. 37

6. táblázat: Az item tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A termék azonosítója. number varchar(200) Nem Termékhez tartozó cikkszám. name varchar(200) Nem A termék neve. net int(10) Nem Nettó ára price int(10) Nem Bruttó ára spec int(10) Nem Akciós ára profit int(10) Nem Profit értéke százalékban. tax int(10) Nem Az adóosztály azonosítója. quantity int(10) Nem A termék mennyisége. category int(10) Nem A termék kategóriája. producer int(10) Nem A termék gyártója. status tinyint(1) Nem 1 Megjelenik-e a termék a webáruházban. overview text Nem A termék leírása. specification text Nem A termék adatai. upload_date date Nem Feltöltés dátuma. modify_date date Nem Módosítás dátuma. 7. táblázat: Az itemcategory tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(11) Nem A kategória azonosítója. parent_id int(11) Nem 0 A szülőkategória azonosítója. name varchar(200) Nem A kategória neve. status tinyint(1) Nem 0 Rejtett vagy látható kategória. 8. táblázat: Az itemdiscount tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem Kedvezmény azonosítója. bottom double Nem Alsóhatár top double Nem Felsőhatár percent int(10) Nem A kedvezmény százalékban. usergroup_id int(11) Nem A felhasználói csoport azonosítója. 38

9. táblázat: Az itempicture tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A kép azonosítója item_id int(10) Nem A termék azonosítója. name varchar(250) Nem A kép neve. path varchar(250) Nem A kép elérési útvonala thumb_path varchar(250) Nem A thumbnail elérési útvonala. 10. táblázat: A page tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(11) Nem Az oldal azonosítója. name varchar(250) Nem Az oldal neve. html text Nem Az oldal tartalma. 11. táblázat: A payment tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A fizetés módjának azonosítója. name varchar(250) Nem A fizetés módjának neve. price double Nem A fizetés módjának költsége. delivery_ids text Nem A fizetés módjához kapcsolt szállítási azonosítókat tartalmazza. 12. táblázat: A producer tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A gyártó azonosítója. name varchar(200) Nem A gyártó neve. 13. táblázat: A tax tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem Az adóosztály azonosítója. name varchar(5) Nem Az adóosztály neve. percent varchar(5) Nem Az adóosztály értéke százalékban. value int(10) Nem Az adóosztály valódi értéke. 39

14. táblázat: A user tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(11) Nem A felhasználó azonosítója. name varchar(200) Nem A felhasználó teljes neve. email varchar(200) Nem A felhasználó email címe. Ezzel tud majd belépni. password varchar(200) Nem Jelszó a belépéshez. phone varchar(200) Nem A felhasználó telefonszáma. tax_num varchar(200) Nem Adószám. bank_num varchar(200) Nem Bankszámlaszám. bill_name varchar(200) Nem Számlázási név bill_addr varchar(200) Nem Számlázási cím bill_city varchar(200) Nem Számlázási város bill_zip varchar(10) Nem Számlázási irányítószám ship_name varchar(200) Nem Szállítási név ship_addr varchar(200) Nem Szállítási cím ship_city varchar(200) Nem Szállítási város ship_zip varchar(10) Nem Szállítási irányítószám status enum('inaktív', 'aktív', 'letiltott') Nem inaktív registered enum('regisztrált', 'partner') Nem regisztrált A felhasználó aktív, inaktív, vagy letiltott. Regisztrált vagy az admin felületen létrehozott partner. reg_date datetime Nem CURRENT_TIMESTAMP A regisztráció dátuma. usergroup_id int(10) Nem 1 A felhasználó csoportjának azonosítója. 15. táblázat: A usergroup tábla Oszlop Típus Nulla Alapértelmezett Megjegyzések id int(10) Nem A felhasználó csoport azonosítója. name varchar(255) Nem A felhasználó csoport neve 40

2.6.2 Kapcsolódás az adatbázishoz 32. ábra: ConnectMySQLSingleton osztály A MySQL adatbázissal az ábrán (32. ábra) látható project.connection csomag ConnectMySQLSingleton osztálya hozza létre a kapcsolatot a JDBC MySQL Connector segítségével. Ez az osztály a Singleton tervezési mintának megfelelően épül fel, hogy az osztályból csak egyetlenegy objektum legyen létrehozható, és ez által csak egy perzisztens kapcsolat jöhessen létre az adatbázissal [1]. Fontos, hogy perzisztens kapcsolatot hozzon létre az alkalmazás, mert minőségbeli romláshoz vezetne a kapcsolatok folyamatos megnyitása és bontása, ami a hálózatot és a szervert is egyaránt terhelné [2]. 41

3 A rendszer szolgáltatásainak részletes ismertetése A képernyőképek Windows 8 rendszer alatt Google Chrome (Verzió: 34.0.1847.116 m) böngészőben készültek. 3.1 Webáruház 3.1.1 Termékek Az ábrán látható kezdőképernyő fogad a webáruház főoldalán. Ezen az oldalon láthatjuk a főmenüt, amelyen tudunk navigálni az egyes aloldalak között (Kapcsolat, Szállítási információk, Általános Szerződési Feltételek, Kosár, Bejelentkezés). A főmenü felett látjuk a weboldal logóját, illetve egy kereső mezőt, ahol kulcsszavak segítségével kereshetünk a termékek között. A kereső mező az összes oldalon elérhető és azonnal a webáruház termékei között tudunk keresni a segítségével. A beírt kulcsszavakat a termék nevekben, a cikkszámokban, a leírásokban és a paraméterekben keresi, és ezek alapján próbál releváns találatot visszaadni a felhasználónak. Bal oldalt találjuk a kategória listát, amelyek lenyithatók alkategóriákra. Az al- és főkategóriák is megnyithatóak, így megtekinthetőek az adott kategóriába tartozó termékek listája. Lenyitni egy kategóriát annak nevére kattintva tudjuk, hogy ha a kategória neve mellett látunk egy három csíkból álló ikont, egyébként, ha nincs ikon, akkor megnyitja azt a kategóriát és a termékek listája kerül a felhasználó elé. Ha egy adott kategória rendelkezik alkategóriákkal, de meg akarjuk nézni a hozzá tartozó termékeket, egyszerűen kattintsunk a három csíkból álló ikonra és máris böngészhetünk a termékek között. [12] Egy navigációs menü, úgynevezett breadcrumb jelzi a felhasználónak, hogy hol van éppen. Az ábrán mutatja, hogy a Alkategória 1 nevű kategóriában vagyunk éppen, ami a Kategória 1 alkategóriája. A breadcrumb segítségével tudunk visszafele navigálni a webáruházon belül [12] [15]. A termékeket tudjuk rendezni a termékek feletti és alatti legördülő lista segítségével. A főbb szempontok, amik alapján sorba rendezhetjük a termékeket az ábrán láthatóak. 42

A terméklista oldalai között tudunk lapozni egy kis navigációs menüvel, amely a termékek alatt és felett is megtalálható egyaránt. Az ábrán láthatunk egy példát. A példa jelzi, hogy három oldalra van osztva a terméklista és az épp aktuális oldal az első oldal. Az első oldal előtti gomb szürkére vált és kikapcsol, mivel az első oldal előtt nincs oldal, így nem is tudunk egyet visszább lépni. A navigációs menü két végén lévő nyíl ikonnal ellátott gombok segítenek nekünk egyet előre, illetve egyet hátra lépni a terméklista oldalai között. Ha rákattintunk egy termék nevére, akkor a termék információs oldala töltődik be. Ezen az oldalon láthatunk több képet a termékről, megtaláljuk a termék nevét, a termék gyártóját, a cikkszámot, a készleten található mennyiséget, a termék leírását és a paraméter listát [7]. A termék leírása és paraméterlistája között az ábrán látható módon válthatunk. 3.1.2 Bejelentkezés, Regisztráció A főmenüben a bejelentkezés gombra kattintva a bejelentkezés és regisztráció aloldal töltődik be. Ha még nincs fiókunk, akkor regisztrálhatunk egyet a jobb oldali regisztrációs űrlap kitöltésének segítségével, ahol meg kell adnunk személyes információkat a bejelentkezéshez és a kapcsolattartás miatt, illetve számlázási és szállítási adatokat a vásárlás érdekében. Egy vagy több fontos mezőt véletlenül nem töltenénk ki, akkor hibaüzenettel jelez nekünk a szoftver, hogy mindenképp töltsük ki a megfelelő adatokkal, mert anélkül nem tudunk beregisztrálni a webáruházba. Ha regisztrációkor a szállítási és számlázási adataink megegyeznek, akkor nem szükséges újból beírni a szállítási adatokat, egyszerűen a checkbox bekapcsolásával át tudjuk másolni a számlázási adatainkat. Regisztráció után a megadott email címünkkel és jelszavunkkal tudunk bejelentkezni a webáruházba. Sikertelen bejelentkezés esetén, az ábrán látható hibaüzenet fogad minket. Sikeres bejelentkezés után visszakerülünk arra az oldalra, ahol bejelentkezés előtt jártunk, ez lehet a főoldal, vagy valamelyik termék információs oldala, esetleg valamelyik kategória, de bármelyik aloldal, ami látható a látogató számára. Bejelentkezés után a főmenüben megjelenik a valódi nevünk menüpontként. Erre a menüpontra kattintva egy legördülő menüben kapunk két lehetőséget. Az egyik a 43

kijelentkezés, a másik pedig a profiloldal. Profiloldalunkon tudjuk az adatainkat és a belépéshez szükséges jelszavunkat módosítani. 3.1.3 Vásárlás Bejelentkezés nélkül is tudunk a kosárba tenni terméket, de amíg nincs a kosárban termék, addig a szoftver jelzi a főmenüben is, illetve a kosár aloldalon is, hogy jelenleg üres a kosarunk. A kosárba űrlap segítségével tudunk a termékből az általunk kívánt mennyiséget belehelyezni a kosárba. Ezt az formot megtaláljuk a termék információs oldalán, illetve a terméklista oldalon is. Az ábrán látható üzeneteket kaphatjuk termék kosárba helyezés esetén. Az első jelzi, ha a művelet sikeresen végrehajtódott, míg a második visszajelez arról nekünk, hogy több terméket szeretnék a kosárba tenni, mint amennyi a valós mennyiség a termékből. Ekkor kiírja a valós mennyiséget, hogy a felhasználó tisztában legyen azzal, hogy mennyit tud még a termékből a kosarába rakni. Miután a terméket raktunk a kosárba és a kosár aloldalra lépünk, be tudjuk állítani a fizetési és a szállítási módot. Beállítás után a Kosár frissítése gombra kattintva tudjuk frissíteni a kosarat, illetve a kosár teljes tartalmát tudjuk törölni a Kosár törlése gombra kattintva. Ha csak egy terméket szeretnénk törölni, akkor a terméknek 0 mennyiséget kell megadni, majd frissíteni a kosarat, így a termék kikerül a kosárból. Ha még nem jelentkeztünk be, akkor be kell jelentkeznünk a megrendelés folytatásához. Bejelentkezés után a kosár felett megjelenik a nevünk, továbbá megjelennek a számlázási és szállítási adataink. Mielőtt véglegesítenénk a megrendelést, ellenőrizni tudjuk a fizetési és szállítási módot, a termékek mennyiségét, a számlázási és a szállítási információkat. Ezen az oldalon nem tudunk semmit módosítani, viszont vissza tudunk lépni az előző pontra, ha esetleg valamit változtatni szeretnénk. A megrendelés megerősítése gombra kattintva küldhetjük el a megrendelésünket, és ha sikeres volt a művelet, akkor a Visszaigazolás oldalra kerülünk, ahol tájékoztat a szoftver a megrendelés sikerességéről. Ezután a kosarunk kiürül és folytathatjuk a vásárlást. 44

3.2 Adminisztrációs felület 3.2.1 Bejelentkezés, Vezérlőpult, Oldalak, Cégadatok Az adminisztrációs felületre lépve az ábrán látható kép fogad minket. Ezen az oldalon az adminisztrátori felhasználónevünkkel és jelszavunkkal tudunk belépni az adminisztrációs felületre. [5] Bejelentkezés után a vezérlőpultra kerülünk. Ezen a helyen tudunk egyszerűen navigálni az admin felület aloldalai között. Illetve az oldalsó menüben is megtaláljuk az egyes oldalakhoz tartozó gombokat. A felső sávban három gombot találunk, melyek csak egy-egy ikonnal vannak feltüntetve. A lánc ikonnal jelzett gombra kattintva meg tudjuk nyitni a webáruház, hogy ha valamit módosítanánk, akkor azt egyszerűen le tudjuk ellenőrizni. A kód ikon jelzi a szoftver névjegyét, illetve a felhasználó ikonnal egy legördülő menüt tudunk megnyitni, amiben a profilunkra, vagy az adminisztrátorok kezelési oldalára tudunk lépni, és ebben a legördülő menüben tudunk kijelentkezni is. Az Oldalak oldalon láthatjuk a webáruházon fellelhető információs oldalakat, amelyek tartalma az adminisztrációs felületen módosítható az egyes oldalak sora végén található Módosítás gomb segítségével. Ebben a táblázatban azonosító és név alapján tudunk keresni az oldalak között. Ha megnyitunk egy oldalt módosításra, akkor a 86. ábrán látható képernyőképet kapjuk. Ezen az oldalon láthatjuk a módosítani kívánt oldal nevét (amit nem módosíthatunk) és egy wysiwyg szerkesztőt a tartalom szerkesztésére. A wysiwyg, hosszabban What You See Is What You Get, jelentése, hogy azt kapjuk, amit látunk. Ezzel a HTML szerkesztővel pontosan olyanra tudjuk formálni az oldal tartalmát, amilyennek szeretnénk látni magán a főoldalon is. Akár HTML kódot, képeket, videókat is tudunk belehelyezni. A Mentés gombra kattintva tudjuk elmenteni a változtatásokat. A Cégadatok oldalon tudjuk felvinni és módosítani cégünk adatait. Az ábrán láthatjuk, hogy cégünk mely adatait szükségesek megadni a szoftver teljes és helye működéséhez. Itt is szintén a Mentés gombra kattintva menthetjük el a változtatásokat. 3.2.2 Rendelések, Számlázás Új rendelés beérkezése esetén jelez nekünk a szoftver. Az új rendelések számát írja ki egy piros négyzetbe a Rendelések menüpont neve mellé. 45

A rendelések menüpontra kattintva megtaláljuk a rendelések, számlák, szállító levelek, törölt rendelések és sztornó számlák listáját. Itt az egyes oszlopok szerint tudunk szűrni, illetve a műveleteket tudunk végezni az egyes dokumentumokkal. Továbbá új számlák és szállító levelek készítésére is van lehetőségünk a táblázat feletti menü gombjaira kattintva. Az ábrán látható műveleteket tudjuk elvégezni az egyes dokumentumokkal. A rendeléseket ki tudjuk számlázni, meg tudjuk tekinteni, illetve tudjuk törölni. A törölt rendeléseket meg tudjuk tekinteni. A sztornó számlákat meg tudjuk tekinteni és ki tudjuk nyomtatni. Továbbá a szállító leveleket ki tudjuk számlázni, ki tudjuk nyomtatni, meg tudjuk tekinteni, illetve sztornózni tudjuk. Végül a számlákat sztornózni tudjuk, van lehetőségünk megtekinteni és kinyomtatni. Az x ikon jelzi a rendelés törlését, a nyomtató ikon a nyomtatást jelzi, a szem ikon a megtekintést, míg a kis papír ikon a kiszámlázást szimbolizálja. Rendelés esetén a szem ikonra kattintva az ábrán látható képernyőkép fogad minket. Egy rendelést így tudunk megtekinteni. Számlázás esetén más képernyőkép fogad minket, itt rendes számla formátumban láthatjuk a számlánkat, amit a CTRL + p gombokkal akár nyomtatási nézetben meg is tudunk tekinteni, de ki is nyomtathatjuk. Elsősorban ez elektronikus számla. Ha ki akarunk számlázni egy rendelést, vagy mi magunk készítünk új számlát az ábrán látható form segítségével tudjuk ezt megtenni. Itt jobb felül kiválaszthatjuk a vásárlót, akinek számlázni szeretnénk. Kiválasztás után megjelennek a számlázási adatai. Beállíthatjuk a fizetési és szállítási módokat, a keltezést, a teljesítés idejét és a fizetési határidőt. Termékeket tudunk kiválasztani listából és hozzáadhatjuk a számlázni kívánt termékekhez, ekkor megjelenik a táblázatba a termék. A termékek mennyiségét, nettó, bruttó árát változtathatjuk. A szoftver automatikusan számolja ezekből a szállítási díjból a nettó összeget, az áfa és a bruttó végösszeget. 3.2.3 Webáruház adminisztrálása A webáruház beállításait az oldalmenü webáruház menüpont alatt tudjuk beállítani. Itt a termékekkel, a kategóriákkal, a gyártókkal, az adóosztályokkal, a szállítási módokkal, a fizetési módokkal és a kedvezményekkel végezhetünk műveleteket. 46

33. ábra: Termékek oldal A termékek oldalon láthatjuk a webáruházba feltöltött termékek listáját. Ezen az oldalon az oszlopokban feltüntetett terméktulajdonságok között tudunk szűrni. Itt tudjuk módosítani a termékeket a Módosítás gombra kattintva. Meg itt láthatjuk, hogy a termékhez van-e kép feltöltve. Több terméket is tudunk egyszerre törölni, egyszerűen csak ki kell jelölni a termék sorelején lévő checkboxot és a Törlés gombra kell kattintanunk (33. ábra) [10]. A termékfeltöltés vagy módosítás oldalon tudjuk a termék egyes tulajdonságait beállítani. Az árat, a nevet, a cikkszámot, a leírást, a paraméter listát, azt hogy megjelenjen-e a termék a webáruház főoldalán. A Mentés gombra kattintva tudjuk elmenteni a terméket vagy a változtatásokat. A műveleti menü felett található a Termék és a Képfeltöltés menüpontok. A Képfeltöltés menüpontra kattintva léphetünk át a termékhez tartozó képfeltöltési formhoz [16]. A Feltöltés gombra kattintva tudjuk kiválasztani a feltölteni kívánt képeket. Egyszerre több képet kiválaszthatunk, majd a kiválasztás után egy progress bar jelzi a feltöltés állapotát. Feltöltés után azonnal megjelenik egy előnézeti kép a feltöltött képből, a kép új neve, illetve egy Törlés gomb. A képeket a Törlés gomb segítségével tudjuk törölni. A kategóriák oldalon a kategóriák állapota, azonosítója, neve, szülőjének neve és azonosítója, illetve a kategóriába tartozó termékek alapján tudjuk szűrni. Hasonlóképp a termékekhez a kategóriákból is tudunk egyszerre többet törölni. Csak azok a kategóriák törölhetőek, amelyek üresek és/vagy nincs alkategóriájuk. Létrehozni kategóriát az Új 47

kategória gombra kattintva tudunk. Módosítani kategóriát a Módosítás gombra kattintva tehetjük meg [13]. A kategóriafeltöltés vagy módosítás oldalon elnevethetjük a kategóriát, beállíthatjuk a szülőkategóriát és az állapotát, majd a Mentés gombra kattintva elmenthetjük a változtatásokat. A gyártók listáját a gyártók neve és azonosítója alapján tudjuk szűrni. Ezen az oldalon tudunk továbblépni az új gyártó létrehozása oldalra és a gyártó módosítása oldalra. Több gyártót is tudunk egyszerre törölni a korábbi módszerek alapján. Új gyártó és gyártó módosítása esetén csak a gyártó nevét tudjuk megadni. Az adóosztályok oldalon tudunk törölni adóosztályt, továbblépni a módosítás és a létrehozás oldalra. Adóosztály létrehozásakor, illetve módosításkor a nevet, a százalékot és a valódi értéket tudjuk megadni. Az előzőekhez hasonlóan tudjuk szűrni a szállítási módokat ezen az oldalon. Több szállítási módot tudunk egyszerre törölni. Kiválaszthatunk egy szállítási módot módosításra és újat tudunk létrehozni. A szállítási mód feltöltésekor vagy módosításakor a szállítási mód nevét, a költséget és egy leírást tudunk megadni. Fizetési módok oldalon a fizetési módokkal tudunk műveleteket végezni. Ezek a műveletek a törlés, a módosítás, a szűrés és az új létrehozása. Ezeket a korábbiakhoz hasonlóan tudjuk megtenni. Fizetési módhoz hozzárendelhetünk szállítási módokat. Így megoldhatjuk azt például, hogy ne legyen, mondjuk postai szállítás esetén utánvétes fizetés. Megadhatjuk a fizetési mód nevét és költséget is szabhatunk ki rá. A kedvezmények oldal az előzőekhez hasonlóan működik. Kilistázza egy táblázatba az adatbázisban fellelhető kedvezményeket, melyeket tudunk szűrni, módosítani, de új kedvezményt is létre tudunk hozni ezen az oldalon. 48

Kedvezmények esetén meg tudjuk adni a kedvezmény alsó és felső határát. Ezek közé a határok közé kell esnie a vásárlás végösszegének, hogy életbe lépjen a kedvezmény. Továbbá megadhatjuk a kedvezmény százalékos értékét és azt a felhasználócsoportot, amihez hozzá szeretnénk rendelni a kedvezményt. 3.2.4 Felhasználók, Adminisztrátorok, Profil A felhasználókkal kapcsolatos beállításokat az oldalmenü felhasználók menüpontja alatt tudjuk elvégezni. Felhasználókat is tudjuk szűrni a táblázat oszlopai szerint. Törölhetünk, letilthatunk és aktívvá tehetünk felhasználókat. Módosíthatjuk az adataikat és létrehozhatunk partnereket. Regisztrált felhasználó csak a webáruházba való regisztráláskor jön létre [10]. Itt fel tudunk tölteni az adatbázisba partnert. A partner az egy olyan felhasználó, aki nem rendelkezik a webáruházba belépési joggal, mivel nincs felhasználó neve és jelszava, de tudunk neki számlát kiállítani. Ezen az oldalon megadhatjuk a partner általános információit, a szállítási és számlázási adatait. Akár cégeket is be tudunk regisztrálni ezen a felületen. A felhasználócsoportok között tudunk szűrni név és azonosító alapján. Egyszerre több csoportot vagyunk képesek törölni. Kiválaszthatunk egyet módosításra és új felhasználócsoportot hozhatunk létre az adatbázisban. Ezen az oldalon a felhasználócsoport egyetlen egy tulajdonságát tudjuk beállítani, a felhasználócsoport nevét. A Mentés gombra kattintva menthetjük el a változtatásokat. Az adminisztrátorok oldalon láthatjuk az adminisztrátorok listáját. A super user szintű adminisztrátort csak önmaga tudja módosítani és nem törölhető. A többi adminisztrátor módosítható és törölhető az adminisztrátor szintű adminok és a super user által. Új admint is létrehozhatunk ezen az oldalon az Új admin gombra kattintva [5]. Adminisztrátor létrehozásakor vagy módosításakor meg kell adnunk az adminisztrátor nevét, egy jelszót (ez a jelszó alapértelmezetten 12345, és az admin bejelentkezésekor meg kell változtatni), az admin teljes nevét, az email címét, az állapotát és a jogosultsági szintet. Super user nem adható, abból csak egy lehet. Profiloldalunkon tudjuk módosítani a jelszavunkat, a teljes és a felhasználói nevünket, illetve az email címünket. 49

3.3 Képernyőképek mobileszközön A képernyőképek Android (Verzió 4.4.2) rendszer alatt Google Chrome (Verzió 34.0.1847.114) böngészőben készültek. 3.3.1 Webáruház 34. ábra: Webáruház főoldala 50

3.3.2 Adminisztrációs felület 35. ábra: Adminisztrációs oldalra bejelentkezés 51