Balko - Cimra - Sochuliak - navrh
From Princípy tvorby software
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
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
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
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
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
Collaboration Diagram
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
Náhlad typického prihlasovacieho formulára z odkazom smerujúcim na registráciu nového používateľa.
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
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
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ť.








