Balko - Cimra - Sochuliak - navrh

From Princípy tvorby software

Jump to: navigation, search

SDD pre "Internetový obchod - kníhkupectvo"

autori: Peter Balko, Ján Cimra, Martin Sochuliak

Contents

Systém

Identifikácia

"Internetový obchod - kníhkupectvo" je aplikácia určená pre internetovú prezentáciu kníhkupectiev a základnými cieľovými skupinami sú majitelia kníhkupectiev a ich zákazníci. Funkcionalita a obsah aplikácie sú prispôsobené tomuto prostrediu a jej samotné možnosti by mali naplniť požiadavky definované jednotlivými typmi používateľov. Celá aplikácia pracuje prostredníctvom webového rozhrania, a je realizovaná pomocou sieťového protokolu HTTP.

Prehľad systému

Systému umožňuje prezentáciu kníhkupectva verejnosti, poskytnutie informácií a služby internetového obchodu v rozsahu zahŕnajúcom správu na strane ponuky tovaru a taktiež možnosti objednania tovaru a prevedenia platby pričom tieto služby a ich dostupnosť sa riadi právami pre rôzne skupiny používateľov.
Používateľmi systému sú:

Náhodný návštevník

  • prezerá informácie o kníhkupectve a prezerá tovar

Registrovaný užívateľ

  • prezerá informácie o kníhkupectve a prezerá tovar
  • môže tovar vkladať do svojho virtuálneho nákupného košíka
  • odosiela objednávky
  • prispieva do diskusií
  • vypĺňa ankety a hodnotí tovar

Administrátor

  • aktualizuje informácie na stránke (práca s tovarom, práca s objednávkami, informácie o obchode)

Majiteľ kníhkupectva

  • všetky možnosti ako administrátor
  • určuje administrátorov


Relevantné dokumenty

Špecifikácia "Internetový obchod - kníhkupectvo"

Parametre návrhu systému

Výber systémovej konfigurácie

"Internetový obchod - kníhkupectvo" bude webovou aplikáciou vytvorenou v jazyku PHP a vizuálna časť samotnej aplikácie bude vytvorená v jazyku HTML s použitím CSS a JavaScriptu, nakoľko väčšina moderných internetových prehliadačov podporuje uvedené technológie, v aplikácii bude preferované ich využitie. Komunikácia bude realizovaná prostredníctvom sieťového protokolu HTTP. Častami "serverovej" časti systému sú databázový server komunikujúci so serverom aplikačným. Odporúčané:

  • Server - Apache HTTP Server 2.2
  • Databáza - MySql 5.1.46

Ovládače a obmedzenia systému

Hlavným obmedzením systému sú požiadavky na aktívnu a plynulú komunikáciu client-server, čo ovplyvní rýchlosť celej aplikácie. Zo špecifikácie systému vyplýva potreba nepretržitého prístupu na internet počas používania aplikácie. Nedostatocná rýchlosť komunikácie medzi stranamy client-server môže spôsobiť obmedzenie rýchlosti aplikácie.

Keďže prístup do aplikácie bude vo forme web stránky, na jej chod je potrebné len pripojenie k internetu a internetový prehliadač. Funkcionalita aplikácie nebude nijak ovplyvnená operačným systémom ani výberom internetového prehliadača.

Iné dôležité hľadiská systému

Systém musí spĺňať požiadavky na W3C z dokumentu WCAG 2.0

Bezpečnosť na oboch stranách systému (serverovej aj klientskej) bude zapezpečená samotnou aplikáciou na strane servera. Keďže ide o serverovú aplikáciu, samotná aplikácia nerieši zabezpečenie OS (firewall, ...)

Návrh systému

Komponenty systému

Databázový model

Databáza
Databáza
Tabuľka BOOKS
  • books_id: int - uchováva sa v ňom identifikačné číslo knihy. Každá kniha má jedinečné identifikačné číslo.
  • name: varchar - uchováva si meno knihy.
  • picture: mediumblob - uchováva obrázok knihy
  • picture_view: mediumblob - uchováva obrázok náhľadu knihy.
  • price: float - obsahuje cenu knihy
  • amount: int - obsahuje množstvo tejto knihy na sklade
  • sold: int - obsahuje počet predaných kusov
  • content: text - obsahuje text zobrazovaný ku knihe najčastejsie text z prebalu
  • authors_id: int - identifikačné číslo autora v tabulke autors
  • publisher_id: int - identifikačné číslo vydavateľa v tabulke publisher
Tabuľka USERS
  • users_id: int - uchováva sa v ňom identifikačné číslo užívateľa. Každý užívateľ má jedinečné identifikačné číslo.
  • login: varchar - uchováva si prihlasovacie meno užívateľa.
  • password: char - uchováva kryptované heslo užívateľa.
  • name: varchar - uchováva meno užívateľa.
  • surname: varchar - uchováva priezvisko užívateľa.
  • street,city,zip,country: varchar - obsahujú informácie o adrese užívateľa.
  • phone,email: varchar - obsahujú kontaktné informácie užívateľa.
  • admin: int - obsahuje zápis určujúci, či je daný užívateľ administrátorom.
  • active: int - obsahuje zápis určujúci, či je daný užívateľ aktívny.
  • admin: int - obsahuje zápis určujúci, či je daný užívateľ vlastníkom obchodu.
Tabuľka ORDERS
  • idorders: int - uchováva sa v ňom identifikačné číslo objednávky.
  • user_id: int - uchováva si identifikačné číslo užívateľa, ktorý podal objednávku.
  • confirmed: int - uchováva informáciu o potvrdení objednávky.
  • order_time: datetime - uchováva čas podania objednávky.
  • confirm_time: datetime - uchováva čas potvrdenia objednávky.
  • price: float - obsahuje cenu objednávky.
Tabuľka COUNTER
  • counter_id: int - uchováva sa v ňom identifikačné číslo prístupu.
  • ip: varchar - uchováva ip adresu prístupu.
  • time: datetime - uchováva čas prístupu.
Tabuľka ORDER_HAS_BOOKS
  • orders_id: int - uchováva sa v ňom identifikačné číslo objednávky.
  • books_id: int - uchováva sa v ňom identifikačné číslo knihy.
Tabuľka AUTHORS
  • authors_id: int - uchováva sa v ňom identifikačné číslo autora.
  • name: varchar - uchováva meno autora.
Tabuľka PUBLISHER
  • publisher_id: int - uchováva sa v ňom identifikačné číslo vydavaťeľa.
  • name: varchar - uchováva meno vydavaťeľa.

Activity Diagram

Objednávanie kníh
Objednávanie kníh

Používateľ priloží klikne na odoslanie objednávky. Systém skontroluje, či nieje prázdny košík. Ak áno tak zruší vytvorenie objednávky a vráti hlášku ze je košík prázdny. Ak nie vypíše obsah košíka a objednávkový formulár. Po odoslaní formulára je tento skontrolovaný. Ak nie je vyplnený správne je znova vypísaný obsah košíka, objednávkový formulára upozornenie o nesprávnom vyplnení. Ak bol vyplnený správne objednávka zaradená na spracovanie.


Class Diagram

Rozdelenie tried
Rozdelenie tried

Diagram ilustruje rozdelenie tried a taktiež premenných a metód im vlastných.

user
  • name: obsahuje meno užívateľa.
  • address: obsahuje adresu užívateľa.
  • email: obsahuje email užívateľa.
  • phone: obsahuje telefónne číslo užívateľa.
  • login: obsahuje prihlasovacie meno užívateľa.
  • password: obsahuje heslo užívateľa.

metódy:

pridanie do košíka, odoslanie objednávky
books
  • id: obsahuje identifikačné číslo konkrétnej knihy.
  • nazov: obsahuje názov konkrétnej knihy.
  • autor: obsahuje meno autora knihy.
  • vydavatel: obsahuje meno vydavateľa knihy.
  • rok: obsahuje rok vydania knihy.
  • cena: obsahuje cenu knihy.
  • pocet: obsahuje množstvo tejto knihy na sklade.
admin

metódy:

pridanie užívateľa, pridanie knihy, odstránenie/blokovanie užívateľa, odstránenie knihy
basket
  • book_id: obsahuje v poli identifikačné čísla kníh.
  • amount: obsahuje nmnožstvá kníh v košíku.
orders
  • user_id: obsahuje identifikačné číslo užívateľa, ktorý podal objednávku.
  • basket: obsahuje obsah objednávky.
  • state: obsahuje údaj v akom stave je proces vybavenia objednávky.
king

metódy:

pridanie/odstránenie administrátora

Statechart Diagram

Stavový diagram prihlásenia
Stavový diagram prihlásenia

Diagram popisuje správanie aplikácie pri prístupe nepriháseného užívateľa, jeho prihlásení, následné správanie podľa toho či je prihlásenie úspešné alebo neúspešné a postup odhlásenia až k opusteniu aplikácie.

Sequence Diagram

Sekvenčný diagram objednávania
Sekvenčný diagram objednávania

Collaboration Diagram

Collaboration diagram objednávania
Collaboration diagram objednávania

Posledné dva diagramy popisujú fungovanie objednávania z funcionálneho hladiska. Ukazujú ako spolu komunikujú užívateľ, aplikácia na strane užívateľa a serverová strana aplikácie funkciami oboma smermy.

Návrh užívateľského prostredia

Prihlásenie užívateľa

Formulár na prihlásenie
Formulár na prihlásenie

Náhlad typického prihlasovacieho formulára z odkazom smerujúcim na registráciu nového používateľa.

Rozhranie ponuky kníh

Rozhranie ponuky kníh
Rozhranie ponuky kníh

Náhlad prostredia na prezeranie ponuky kníh z možnostou filtrovania podľa autora a vydavateľstva pomocou dvoch select políčok. Taktiež obsahuje pri každej knihe možnosť zobraziť rozšírené informácie a vložiť ju do nákupného košíka.

Rozhranie nákupného košíka

Rozhranie nákupného košíka
Rozhranie nákupného košíka

Náhlad formulára na úpravu nákupného košíka. Obsahuje výpis položiek v košíku. Pri každej položke je možné upraviť množstvo, prípadne položku z košíka zmazať. Je tu taktiež možné odoslať objednávku či vyprázdniť košík.

Schválenie objednávky administrátorom

Formulár na schválenie/zamietnutie objednávky
Formulár na schválenie/zamietnutie objednávky

Náhlad formulára pre administátora kde ma zobrazenú konkrétnu objednávku zo všetkými jej údajmi a može ju tu schváliť alebo zamietnuť.

Personal tools