Vissza a Feladatok oldalra


WEBTECHNOLÓGIÁK

FUNKCIONÁLIS SPECIFIKÁCIÓ

DVD-CD-kereskedési WEBShop

Gyakorlatvezető:

RÉPÁSI TIBOR



Csoport tagok:


KOVÁCS
ATTILA
Tankör: G-5FP
Nk: B44S1J
E-mail: KOVACS52@IIT.UNI-MISKOLC.HU
SZILÁGYI
LAJOS
Tankör: G-5FP
Nk: AUHWTO
E-mail: SZILAGYI4@IIT.UNI-MISKOLC.HU


2008.11.01.




Tartalomjegyzék:

1. UML Use-Case diagram
2. Oldalak
2.1. Felhasználói (vevő) oldal
2.2. Az adminisztrációs (eladó) oldal
3. Az adatbázistervezés
4. Adattáblák
5. Mysql használata PHP-ből
Munkanapló



1. UML Use-Case diagram

2. Oldalak

2.1. Felhasználói (vevő) oldal

Csak vásárlás esetén fontos a regisztrációt igénylő bejelentkezés. Ennek köszönhetően bárki ismerkedhet az oldallal, pakolhat termékeket a kosárba, olvashat a vendégkönyvben. Így elkerülhetők a feleslegesen történő regisztrációk, mivel csak akkor kell regisztrálni és bejelentkezni, ha valaki valóban szeretne vásárolni. A kosárba pakoláskor több lehetőség is van a tartalom módosítására, megrendelés után erre már nincs lehetőség. Fontosak a helyesen megadott személyes adatok, és mivel ezek változhatnak, lehetőséget kell biztosítani ezek módosítására (kivétel az e-mail cím és a login név). A termékek kategóriákba vannak sorolva, ezek alapján, vagy keresés segítségével találhatók meg az egyes termékek. A termékekhez tartozhat egy kicsi kép, amire kattintva megjelenik annak nagyobb felbontású megfelelője. Ezeken túl, pár apróbb funkció is szerepel, például az elfelejtett jelszó lekérdezése, email küldése az oldal email címére, vagy a navigálás az oldalon. Fontos hogy ellenőrizve legyenek a felhasználóktól bekért adatok.

2.2. Az adminisztrációs (eladó) oldal

Az admin belépése az admin.php oldalon történik, helyen login név és jelszó esetében. Ott határozza meg az eladó tulajdonképpen, hogy mi is jelenjen meg a vevők részére. Központi helyen szerepelnek a termékek, melyek kategóriákba vannak sorolva, és egy kiszerelés és egy áfa rendelődik hozzájuk. Ott lehet feltölteni a szerverre a termékhez tartózó kis és nagy képet. A felhasználó kérésére, vagy az admin döntésére törölhető egy felhasználó. Másik fontos rész a rendelések kezelése, két csoportjuk van. Teljesített, ezek már kiírhatók egy txt állományban, mivel már nincs fontos szerepük az oldal működésében. A másik a teljesítés alatt álló rendelések, ha az eladó megállapítja a rendelés teljesíthetőségét, akkor a vevő kap egy üzenetet, amivel tudatható a rendelés sikeressége. Mivel több eladó is lehet, ezért egy admin felvehet másik admint is, az admin csak a jelszavát képes módosítani. Egy alapszintű vendégkönyv karbantartást is végez az admin, ami csupán egy hozzászólás törlésében merül ki. Ekkor az admin kilép az adminisztrátori felületről, és a vevői oldalon találja magát.

3. Az adatbázistervezés

Az adatbázis céljának meghatározása, a feladat megfogalmazása. Meg kell határozni a tárolandó adatok körét, az adatbázis használatának módját és az általa elvégzendő részfeladatokat:

- A szükséges táblák meghatározása. Az összegyűjtött információkat témakörökre, táblákra kell bontani (normalizálás). Kerülni kell a többszörös adatbevitelt (redundancia).

- A táblák mezőinek meghatározása. El kell dönteni a táblában szereplő egyedekről, hogy mit kell tudni róluk és ehhez milyen jellemző adataikra lesz szükség. Ennek ismeretében kell meghatározni a mezőneveket. Figyelni kell, hogy van-e a táblának olyan mezője, amely egyértelműen azonosítja a tábla rekordjait, vagyis betöltheti az elsődleges kulcs szerepét, ha nincs, akkor fel kell venni egy ilyen mezőt, amely (akár egy egyszerű sorszámozással) biztosítja a rekordok egyértelmű azonosítását.

- Kapcsolatok felállítása a táblák között. Meg kell határozni, hogy milyen táblákból kell összetartozó információkat kigyűjteni és biztosított-e közöttük a kapcsolat, ha nincs, akkor gondoskodni kell úgynevezett kapcsolómezők közbeiktatásáról. A kulcs mezőt mindkét kapcsolódó táblának tartalmaznia kell. Meg kell vizsgálni a kapcsolatok típusát (amely lehet: egy az egyhez, egy a többhöz, több a többhöz) és az adatintegritási szabályokat.

- A bemutató változat elkészítése, a terv finomítása. A táblákat fizikailag is létre kell hozni és próbaadatokkal feltöltve. Meg kell nézni, hogy mely mezők maradnak üresek, minden szükséges adat rögzül-e, és jól választottuk-e meg az elsődleges kulcsokat.

Az adatbázisnak tárolnia kell:

- Felhasználókat és az adataikat

- Adminisztrátorokat és az adataikat

- Aktív termék

- Termék kategóriákat

- Termékeket és az adataikat

- Termékekhez tartozó képek címeit

- Rendeléseket

- Vendégkönyvet

- Számlálókat

- Segéd táblákat

4. Adattáblák

Admin tábla:
Itt tárolódik az adminisztrátoroknak a neve, login neve, és jelszava. Ennek a táblának a segítségével lehet beléptetni az adminisztrátort az admin felületre. Önmagában az admin_login is funkcionálna kulcs két, a könnyebb használat érdekében azonban az admin_id az elsődleges kulcs. Ez a tábla nem áll kapcsolatban egyetlen másik táblával sem.

Tábla ADMIN
 Admin azonosító (kulcs)  admin_id
 Admin neve  admin_nev
 Admin login neve  admin_login
 Admin jelszava  admin_jelszo

User tábla:
Itt tárolódnak a felhasználóknak az adatai. Nevük, jelszavuk, email címük, tartózkodási címük, telefonszámuk, és az állapota a hírlevéllel (kér-e hírlevelet vagy sem). A felhasználókról fontos nyilvántartani ezeket az adatokat, mivel ezek alapján rendelhetnek. Az e-mail címükre érkezik a hírlevél, az admin üzenete, értesítés a rendelésről, és a feledékenyeknek a jelszavuk. Ezért fontos hogy az email cím valódi és egyedi legyen, akárcsak a login név. Ennél a táblánál is bevezetünk egy azonosító mezőt, a könnyebb használat érdekében. Ez a tábla már kapcsolatban áll több táblával is. Egyrészt kapcsolódik a vendégkönyv táblához, egy felhasználónak több hozzászólása lehet. Másrészt kapcsolódik a megrendelések_fej táblához, egy a többhöz kapcsolattal.

Tábla USER
 Felhasználó azonosító (kulcs)  user_id
 Felhasználó neve  user_nev
 Felhasználó login neve  user_login
 Felhasználó e-mail címe  user_email
 Felhasználó születési dátuma  user_szul_ido
 Felhasználó országa  user_orszag
 Felhasználó irányító száma  user_ir_szam
 Felhasználó települése  user_telepul
 Felhasználó utcája  user_ut
 Felhasználó ház száma  user_haz_szam
 Felhasználó telefon száma  user_tel
 Kér-e hírlevelet?  hir_level

Áru tábla:
Ez a tábla tárolja az áruk adatait. Mivel az áruház legfontosabb pontja a benne szereplő termékek, ezért ez a tábla a legösszetettebb, és ez rendelkezik a legtöbb kapcsolattal. Tárolja a termék nevét, nettó árát, egy esetleges leírást, és az állapotát. Továbbá a kiszerelés és áfa segédtáblákkal tárolja a termék kiszerelési egységét, és a termékhez tartozó áfa kulcsot. Itt nincs tényleges kapcsolat a táblák között, a két tábla csak kényelmi funkciót lát el, hogy ne kelljen begépelni mindig az adott értéket, és így csökkenek a gépelésből adódó eltérések. Amikor változás történik a kiszerelés vagy a az áfa táblában, az nem von maga után változást a már felvett termékek esetében. Viszont szoros kapcsolat van a kategória táblával, ezen kapcsolat alapján lehet a termékeket kategóriákba sorolni. Egy termék csak egy kategóriába tartozhat. Továbbá kapcsolódik még a képek táblához is, itt a termékhez tartózó kicsi (bélyeg) és nagy kép neve található. Mivel az áruházban jelenleg egy termékhez csak egy kép rendelhető, fel lehetett volna venni ezt a két mezőt az áru táblába is. Amiért ezt a megoldást választottam az, hogy a későbbiekben az adatbázis változtatása nélkül ki lehessen bővíteni több kép hozzárendelését egy termékhez. Végül kapcsolódik még a megrendelések táblához. Kulcsként az aru_id funkcionál.

Tábla ARU
 Áru azonosító (kulcs)  aru_id
 Kategória azonosító  kat_id
 Áru neve  aru_nev
 Áru kiszerelési egysége  Kiszereles
 Áru nettó ára  aru_netto_ar
 Leírás az áruról  aru_leir
 Az áruhoz tartozó áfa  Afa
 Aktív vagy passzív termék  Allapot

Kategória tábla:
Ebben a táblában tárolódnak a termékek rendezését szolgáló kategóriák. Tartalmaz egy azonosított, egy kategória nevet, és opcionálisan felvehető leírást. Mivel ezek alapján rendeződnek a termékek, természetesen kapcsolódik az áru táblához. A jelenlegi rendszer alapján egy kategóriába több termék, de egy termék csak egy kategóriába tartozhat.

Tábla KATEGORIA
 Kategória azonosító (kulcs)  kat_id
 Kategória neve  kat_nev
 Kategória leírása  kat_leir

Képek tábla:
Itt vannak az adott áruhoz tartozó képek. Először is van egy kep_id ami a kép azonosítója, ehhez tartozik egy aru_id, hogy be lehessen határolni melyik termékhez tartozik az adott kicsi és nagy kép. A két azonos tartalmú, de különböző mérető képre azért van szükség mert, ha kilistázzuk a termékeket és oda egy nagyobb felbontású kép kerül, az jelentős oldal betöltési időt igényel. Ezért a jóval kisebb mérető kép kerül a listába, és erre kattintva jelenik meg a nagyobb felbontású kép. Mint korában írtam, ezzel a megoldással lehetséges több kép hozzárendelése egy termékhez, de jelen esetben elegendő egy kép. Képek nevénél a termek_kep mappában szereplő jpg állomány neve található, innen töltődik be az oldalra. Ez a tábla szintén kapcsolatban áll az aru táblával.

Tábla KEPEK
 Kép azonosító (kulcs)  kep_id
 Áru azonosító  aru_id
 Kicsi kép neve  kicsi_kep
 Nagy kép neve  nagy_kep

Kiszerelés és áfa táblák:
Ez a két tábla hasonló funkcióval bír, ezért mutatom be egyszerre őket. Csak kényelmi funkciót vannak, segítségükkel egységesek lesznek az áru táblában a kiszerelés és áfa mezők. Ennek a módszernek vannak hátrányai, ha az admin nem elég körültekintően használja. Például, ha tőről vagy módosít egy kiszerelés, akkor a korábban felvett kiszerelés alapján már nem tud keresni a keresés opciónál.

Tábla AFA KISZERELES
 Áfa értéke (kulcs)  Afa
 A kiszerelés egysége (kulcs)  Kiszereles

Megrendelések fej tábla:
A webáruház egy másik fontos pontja, a rendelések kezelése. Ezt a feladatott két tábla segítségével oldottam meg. A fejrészben tárolódik a rendelésnek a főbb paraméterei, ki rendel, mikor, és mennyiért. A rendelés dátumát a mysql now() függvénye szolgáltatja. Ez a tábla szoros kapcsolatban áll a megrendelések táblával, mivel itt vannak a konkrét fejhez tartozó rendelt termékek. Minden fej rendelkezik egy állapottal attól függően, hogy teljesítve van vagy folyamatban az adott rendelés. A teljesített rendelésekre a későbbiekben már nincs nagy szükség, azért a biztonság kedvéért egy txt fájlba kerülnek kiírásra, majd törlődnek az adatbázisból, úgyszintén törlődnek a megrendelesek tábla megfelelő sorai is. A tábla kapcsolódik még az user táblához is, innen kerülnek megjelenítésre a megrendelő adatai.

Tábla MEGRENDELESEK_FEJ
 Rendelés azonosító (kulcs)  rendel_id
 Vásárló azonosító  vasarlo_id
 A vásárlás dátuma  vasarlas_datum
 Teljesített vagy feldolgozás alatt  allapot
 Vásárlás nettó összege  osszeg

Megrendelések tábla:
Mint fentebb írtam itt vannak a megrendelesek_fej tábla rendelés azonosítójához tartozó termékek, és a rendelt mennyiségek. Vagyis egyrészt kapcsolódik a fej táblához, másrészt az áru táblához.

Tábla MEGRENDELESEK
 Megrendelés azonosító (kulcs)  sor_id
 Ez azonosítja, hogy a rendelés melyik  fejhez tartozik  fej_id
 A megrendelés terméke  aru_id
 Az áru kiszerelésből rendelt mennyiség  Mennyiseg

Vendégkönyv tábla:
Ez a tábla egy egyszerűbb vendégkönyvet tárol, ami ehhez az áruházhoz elegendő. A tábla kapcsolatban van a user táblával, mivel fontos a hozzászólás szerzője. A dátumot itt is a now() függvény adja. A tárolandó szöveg pedig text típusú. A user táblával való kapcsolatnál fontos megjegyezni, hogy egy felhasználó törlése nem vonja maga után a hozzászólás törlését.

Tábla VENDEGKONYV
 Hozzászólás azonosító (kulcs)  konyv_id
 A hozzászóló felhasználó azonosítója  user_id
 Hozzászólás dátuma  datum
 Hozzászólás  szoveg

Számláló tábla:
Ez a tábla statisztikai szerepeket szolgál, csupán egy sora van, amiben minden mező alapértelmezett értéke 0. Amikor egy megfelelő esemény bekövetkezik, a hozzá tartózó számláló eggyel növekszik. Az adminisztrátornak lehetősége van a számlázok nullázására, és ennek következtében új számolást indítani. Ezt a feladatot egy szöveges fájl segítségével is meg lehetne oldani, de meglátásom szerint adatbázis használata a praktikusabb.

Tábla SZAMLALO
 Elküldött emailek száma  email
 Törölt felhasználók száma  torolt_user
 Az oldalt látogatók száma  latogatok
 Teljesített rendelések száma  rendeles
 Elfelejtett jelszavak kérelmének száma  felejt_email
 Vendégkönyvbe írások száma  konyv_ir
 Vendégkönyvbe törlések száma  rendeles
 Teljesített rendelések száma  konyv_torol
 Bejelentkezések száma  login
 Regisztrációk száma  regisztralt

Az adatbázis felépítését az 1. ábra szemlélteti.

1. ábra

5. Mysql használata PHP-ből

Miután elkészült az adatbázis, itt az ideje, hogy a php is használatba vegye. A php rendelkezik a mysql adatbázis használatához szükséges függvényekkel. A kapcsolódáshoz meg kell adni a szerver nevét, a felhasználói nevet és jelszót, ez a következőképpen néz ki.

mysql_connect($host,$user,$pass);

Ezt követően a kívánt adatbázis kell megnyitni.

mysql_select_db($db);




Munkanapló

Kezdet Időtartam Résztvevők Tevékenység Eredmény
2008-10-28 16 óra egyéni munka + 3 óra konzultáció
16 óra egyéni munka + 3 óra konzultáció
Kovács Attila

Szilágyi Lajos
Részfeladatok kiosztása.

Feladatkiosztás:

Kovács Attila:
  • 1. UML Use-Case diagram
  • 2.1. Felhasználói (vevő) oldal
  • 3. Az adatbázistervezés
  • 4. Adattáblák
  • Munkanapló
Szilágyi Lajos:
  • 2.2. Az adminisztrációs (eladó) oldal
  • 4. Adattáblák
  • 5. Mysql használata PHP-ből
  • Munkanapló
2008-11-01 4 óra konzultáció
4 óra konzultáció
Kovács Attila
Szilágyi Lajos
Elkészült részfeladatok átolvasása.
A funkcionális specifikációs dokumentum összeállítása, javítása.
A funkcionális specifikációs dokumentum és a munkanapló beadásra szánt változata.

Értékelési táblázat

Név Összidőszakra (∑100%) [%]
Kovács Attila 50
Szilágyi Lajos 50

Ugrás az oldal tetejére.