IS Akademie Klasické Homeopatie Předmět: INS (Informační systémy a datové sklady) Rok: 2009/2010
Tým č. 2 Patrik Dubec, DUB080 Jan Plucar, PLU042 Jan Náhlý, NAH012 Petr Hanták, HAN377 Ondřej Folber, FOL179
Analýza (účast) 100% 100% 100% 100% 100%
IS Akademie klasické homeopatie
Požadujeme tvorbu IS, který bude dostupný prostřednictvím internetu a bez nutnosti instalace. Tento IS bude sloužit jako reklama naší firmy, ale také jako poradna pro naše potencionální pacienty. V současné době je v provozu stávající internetová aplikace na adrese http://budtezdravi.cz/ , která však již nevyhovuje našim nynějším požadavkům. A to ani po stránce funkční, tak po stránce vzhledové. Naše společnost se zaměřuje hlavně na léčbu a poradenství v oblasti homeopatie. Design programu by měl korespondovat s myšlenkou alternativní léčby, tak aby návštěvník získal při vstupu jasnou představu o funkci aplikace. Rozložení navigace na stránkách by mělo být takové, aby byly naše produkty dobře na první pohled viditelné. Na všech stránkách chceme mít jednotný vzhled s menu. V menu bude např.: i. Firma ii. Lékaři iii. Léky iv. Lékárny v. Zvěrolékaři vi. Homeopatie vii. Přednášky viii. … Chceme zachovat stávající texty, které budeme moci doplnit o nové informace. Celkově bude aplikace zaměřena na tyto tři hlavní oblasti. - Léčba a produkty: V této sekci bude uživatel schopen prohlížet jednotlivé produkty, přečíst si jejich pozitivní účinky. Následně v případě zájmu zde bude i seznam lékáren, které tyto produkty nabízejí. Rádi bychom zde prezentovali zkušenosti lékařů s těmito léčivy. - Výuka: V této sekci se budou pravidelně ukládat přednášky odborníků z oboru zdravotnictví a alternativní léčby. - E-poradna: V této sekci může uživatel položit otázku odborníkům z praxe. Ti na ni následně odpoví.
1.1 Funkční požadavky 1.1.1 Proč nový IS Akademie klasické homeopatie je mladou firmou ve svém oboru v České republice a je si vědoma síly reklamy, kterou ji může internetová aplikace poskytnout. V současné době již třetím rokem provozuje své vlastní internetové stránky, které jsou však díky nemodernímu vzhledu a slabé funkčnosti jsou pro návštěvníka nezajímavé. Díky neexistující dokumentaci a špatnému technickému řešení je nutné internetovou aplikaci znovu vyvinout.
1.1.2 K čemu má IS sloužit IS má uživatele informovat o novinkách v oboru homeopatie a to fourmou nabídky nových produktů, léků, mastí, ale také formou přednášek a odborných článků, které zde budou lékaři zveřejňovat. Navíc by součástí aplikace měla být online poradna, ve které budou lékaři odpovídat na dotazy uživatelů.
1.1.3 Kdo bude s IS pracovat Uživatel – běžný návštěvník stránky, do systému se neregistruje. Lékař – registrovaný a schválený odborník v oboru zdravotnictví, který bude moct publikovat články a reagovat na dotazy uživatelů. Moderátor – registrovaný užvatel, který se stará o náplň všech vkládaných textových informací (schvalování, mazání, editace článků, reakcí, dotazů + vypisování anket…) Administrátor – všechny práva moderátora, administrace uživatelů.
1.1.4 Vstupy do IS Parametry viz datový slovník. Lékař – registruje se do systému sám, ale nutné schválení administrátora. Moderátor – vytváří administrátor z kontaktů. Kontaky – informace o spolupracovnících AKH. Články – odborné publikace od registrovaných uživatelů. Reakce – reakce uživatelů na články, produkty. Anketa – vytvoření ankety s otázkou a odpověďmi. Kniha – informace o knize. Uživatel může procházet seznam doporučené literatury (vybrané publikace). Fotografie – informace o fotografii. Aktuality – pozvánky na přednášky, výstavy.
Produkty – informace o lécích. Lékárny – informace o lékárnách. Dotaz k zpracování – dotaz na e-poradnu nebo produkt. E-poradna dotazy, Produkty dotazy – moderátorem zpracované dotazy. Odpověď – odpověď registrovaného uživatele na dotaz. Registrace na akce – informace o lidech přihlášených na přednášky. Newsletter odebíratelé – krátká informace o uživatelích, kteří chtějí zasílat novinky emailem. Newsletter text – informace o textu novinky, datum zaslání, výběr příjemců.
1.1.5 Výstupy Lékárny – seznam všech lékáren. Produkty – seznam všech produktů. Kontakty – informace o spolupracovnících AKH. Články Ankety – historie anket, seznam stávajících anket. Aktuality – novinky, chystané akce. Seznam newsletterů –historie zaslaných newsletterů Seznam odpovědí/reakcí k danému dotazu. Seznam odběratelů newsletteru Seznam registrací – žádosti uživatelů o přidání do systému
1.1.6 Funkce systému FR1
IS bude pracovat s komponentou Aktuality FR1.1 Administrátor/Moderátor bude přidávat nové aktuality do systému FR1.2 Administrátor/Moderátor může mazat aktuality FR1.3 Administrátor/Moderátor může nastavit životnost aktualit FR1.4 Administrátor/Moderátor může nastavit registraci na aktualitu FR1.5 Uživatel se registruje na akce (pokud se aktualita týká přednášky, pak se na ni může zaregistrovat ) FR1.6 Uživatel/Moderátor/Administrátor/Lékař prohlíží aktuality
FR2
IS bude pracovat s komponentou Kontakty FR2.1 Administrátor bude přidávat nové kontakty do systému (všichni uživatelé se registrují sami, avšak administrátor musí jejich registraci potvrdit) FR2.2 Administrátor/Moderátor bude mazat stávající kontakty FR2.3 Administrátor/Moderátor může nastavit prioritu zobrazení kontaktů (pořadí) FR2.4 Uživatel/Moderátor/Administrátor/Lékař prohlíží kontaky
FR3
IS bude pracovat s komponentou Anketa FR3.1 Administrátor/Moderátor bude vytvářet nové ankety FR3.2 Administrátor/Moderátor bude mazat ankety FR3.3 Administrátor/Moderátor může nastavit životnost ankety FR3.4 Administrátor/Moderátor může zobrazit historii anket a vypsat výsledky jednotlivých průzkumů FR3.5 Uživatel/Moderátor/Administrátor/Lékař prochází ankety a odpovídá na ně
FR4
IS bude pracovat s komponentou Fotogalerie FR4.1 Administrátor/Moderátor bude vytvářet nová Alba FR4.2 Administrátor/Moderátor bude přidávat fotografie do Alb FR4.3 Administrátor/Moderátor bude mazat Alba/Fotografie FR4.4 Uživatel/Moderátor/Administrátor/Lékař prohlíží fotografie
FR5
IS bude pracovat s komponentou Poradna FR5.1 Uživatel bude přidávat příspěvky do Poradny(otázky na zdravotní stav, nebo produkt) FR5.2 Administrátor/Moderátor bude upravovat příspěvky Poradny a Produktu(odpověď) FR5.3 Administrátor/Moderátor bude mazat příspěvky FR5.4 Uživatel/Moderátor/Administrátor/Lékař může přidávat reakce na produkt (základní myšlenka: na začátku stránky je hlavní dotaz, který je zodpovězen. Po té mohou uživatelé reagovat na tuto odpověď, sdělovat osobní zkušenosti s produktem…) FR5.5 Uživatel/Moderátor/Administrátor/Lékař prohliží dotazy, reakce na ně.
FR6
IS bude pracovat s komponentou Bibliografie FR6.1 Administrátor/Moderátor může přidat novou knihu (informace o knize) FR6.2 Administrátor/Moderátor může smazat knihu (informace o knize) FR6.3 Administrátor/Moderátor může editovat knihu (informace o knize) FR6.4 Uživatel/Moderátor/Administrátor/Lékař prohlíží knihy (informace o knize)
FR7
IS bude pracovat s komponentou Newsletter FR7.1 Uživatel se bude registrovat pro odběr novinek, tzv. „Newsletterů“ FR7.2 Administrátor/Moderátor bude přidávat novinky k rozeslání FR7.3 Administrátor/Moderátor může procházet seznam newsletterů
FR8
Administrátor/Moderátor bude dále přidat/editovat/smazat/vypsat seznam typů entit, jako např: -
Lék Lékárna Lékař Akce (možné sloučení s tabulkou „Přednáška“) Přednáška Spolupracovník (lidé pracující ve firmě. Mohou se pak jednoduše přiřadit ke kontaktům) Reference A další viz. Datový slovník
1.1.7 Okolí systému
1.1.8 Nefunkční požadavky NFR1
IS musí být jednoduše přístupný uživatelům, a to bez instalace
NFR2
IS bude využívat motiv zabarvený do žlutých a zelených odstínů
NFR3
IS bude implementovat menu, které bude viditelné v jakékoliv části systému.
NFR4
IS bude využívat stávajícího hostingu: ASP.NET + MS SQL 2008
2 Analýza 2.1 Datová analýza 2.1.1 Lineární zápis Název v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26
Typy vztahů PRODUKT_V_LEKARNE_1(Produkty,Produkt_lekarna) PRODUKT_V_LEKARNE_2(Produkt_lekarna, Lekarny) PRODUKTY_S_FOTOGRAFIEMI_1(Produkty,Produkty_foto) PRODUKTY_S_FOTOGRAFIEMI_2(Produkty_foto, Fotografie) UZIVATEL_V_ROLI(Uzivatele, Role) UZIVATEL_ZADAVA_AKTUALITY(Uzivatele, Aktuality) REGISTRACE_NA_AKTUALITU_1(Registrace, Akce_registrace) REGISTRACE_NA_AKTUALITU_2(Akce_registrace, Aktuality) VYHLASUJE_ANKETU(Uzivatele, Ankety) MA_ODPOVEDI(Ankety, Ankety_odpovedi) DOTAZ_Z_KATEGORIE_POR(E-poradna_kat, E-poradna_dotazy) ODPOVIDA_NA_DOTAZ_POR_1(Odpovedi, Odpovedi_poradna) ODPOVIDA_NA_DOTAZ_POR_2(Odpovedi_poradna, E-poradna_dotazy,) DOTAZ_NA_PRODUKT(Produkt_dotazy, Produkty) ODPOVIDA_NA_DOTAZ_PRO_1(Odpovedi, Odpovedi_produkt) ODPOVIDA_NA_DOTAZ_PRO_2(Odpovedi_produkt, Produkt_dotazy) UZIVATEL_ODPOVIDA(Odpovedi, Uzivatele) UZIVATEL_REAGUJE(Uzivatele, Reakce) REAGUJE_NA_PRODUKT_1(Reakce, Reakce_produkt) REAGUJE_NA_PRODUKT_2(Reakce_produkt, Produkty) REAGUJE_NA_CLANKY_1(Reakce, Reakce_clanek) REAGUJE_NA_CLANKY_2(Reakce_clanek, Clanky) PISE_CLANKY(Uzivatele,Clanky_autori) PISE_CLANKY(Clanky_autori, Clanky) SCHVALUJE_CLANKY(Uzivatele, Clanky) DOTAZY_KATEGORIE(Dotazy_k_zprac, Kategorie_dotazu)
2.1.2 Seznam atributů Detaily atributů viz. datový slovník.
Násobnost 1:M M:1 1:1 M:1 1:1 1:M 1:1 1:M 1:M 1:M 1:N 1:M M:1 N:1 1:M M:1 1:N N:1 1:M M:1 1:M M:1 1:M M:1 1:N 1:1
2.1.3 ER diagram
Detail objektu „Poradenství (komunikace s uživateli)“
2.1.4 Datový slovník V datovém slovníku není zadaná délka datových typů text, int, datetime. Tento fakt vyplývá z použití MS SQL serveru 2008, který u těchto datových typů nepotřebuje znát délu (ani nelze v defaultním nastavení tuto délku zadat). Dále v popisech IO jsou popsány pouze ty atributy, které jsou netriviální (atributy typu jmeno, prijmeni jsou bez popisu). E-poradna_kat Atribut Datový typ id_kat
int
nazev
varchar
E-poradna_dotazy Atribut Datový typ id_por id_kat dotaz email autor
int int text varchar text
Odpovedi_poradna Atribut Datový typ id_por id_odp
int int
Odpovedi Atribut
Datový typ
id_odp odpoved datum autor
int text datetime text
Velikost
Nulový
Klíč
Index
IO
ne
ano
ano
autoincrement
ne
ne
Klíč
Index
IO
ano ano ne ne
ano ano ne ne
autoincrement FK
512 ne
Velikost
Nulový
ne ne ne 128 ne
ne
ne
Přezdívka autora dotazu
Nulový
Klíč
Index
IO
ne ne
ano ano
ano ano
FK FK
Nulový
Klíč
Index
IO
ne ne ne ne
ano ne ne ne
ano ne ano ne
FK
128 ne
Velikost
Velikost
Dotazy_k_zprac Atribut
Datový typ
id_dot id_kat_dotazu dotaz email
int int text varchar
autor
id_kat_dotazu nazev
ne ne ne 128 ne
text
Kategorie_dotazu Atribut Datový typ
128 ne
Velikost
int text
Produkt_dotazy Atribut
Datový typ
id_dot_produkt id_produktu dotaz email
int int text varchar
autor
text
Odpovedi_produkt Atribut Datový typ
Nulový
Velikost
Klíč
Index
IO
ano ano ne ne
ano ano ne ne
Autoincrement FK
ne
Přezdívka autora dotazu
ne
Nulový
Klíč
Index
IO
ne ne
ano ne
ano ne
Autoincrement poradna/produkty/clanky
Klíč
Index
IO
ne ne ne 128 ne
ano ne ne ne
ano ne ne ne
Autoincrement FK
128 ne
ne
ne
Přezdívka autora dotazu
Nulový
Klíč
Index
IO
ne ne
ano ne
ano ne
FK FK
Nulový
Klíč
Index
IO
Velikost
Velikost
Nulový
id_dot_produkt id_odp
int int
Reakce _produkt Atribut
Datový typ
id_produkt id_reakce
int int
ne ne
ano ne
ano ne
FK FK
id_reakce_rodic
int
ano
ne
ne
FK,id_reakce_rodic = id specifické reakce
Velikost
Reakce _clanek Atribut
Datový typ
id_clanke id_reakce
int int
Velikost Nulový
Klíč
Index
IO
ne ne
ano ne
ano ne
FK FK
ano
ne
ne
FK,id_reakce_rodic = id specifické reakce
Klíč
Index
IO
ano ne ne ne
ne ne ne ne
FK
Klíč
Index
IO
ano ne ne ne ne ne ne
ne ne ne ne ne ne ne
Autoincrement
Velikost Nulový
Klíč
Index
IO
ne 128 ne ne ne
ano ne ne ne
ne ne ne ne
Autoincrement
id_reakce_rodic int
Reakce Atribut
Datový typ
id_reakce reakce autor datum
int text text datetime
Lékárna Atribut
Datový typ
id_lek nazev ulice město psč tel email
int varchar varchar varchar varchar varchar varchar
Produkt Atribut
Datový typ
id_pr nazev popis vyrobce
int varchar text varchar
pdk
varchar
Velikost Nulový ne ne ne ne
Velikost Nulový
128 128 128 32 32 128
ne ne ne ne ne ne ano
32 ano
ne
ano
jednoznačný mezinárodní kód
Produkt_lekarna Atribut Datový typ id_lek id_pr
int int
Produkty_foto Atribut Datový typ id_fot id_pr
int int
Fotografie Atribut
Datový typ
id_fot popis datum url
int text datetime text
Aktuality Atribut
Datový typ
id_akt popis datum zobrazitOd zobrazitDo id_stav
int text datetime datetime datetime int
Akce_registrace Atribut Datový typ id_akt id_reg
Velikost Nulový
int int
Klíč
Index
IO
ano ano
ne ne
FK FK
Klíč
Index
IO
ano ano
ne ne
FK FK
Klíč
Index
IO
ne ne ne ne
ano ne ne ne
ne ne ne ne
Autoincrement
Nulový
Klíč
Index
IO
ne ne ne ne ano ne
ano ne ne ne ne ne
ne ne ne ne ne ne
autoincrement
Klíč
Index
IO
ano ano
ne ne
FK FK
ne ne
Velikost Nulový ne ne
Velikost Nulový
Velikost
Velikost Nulový ne ne
FK
Registrace Atribut
Datový typ
id_reg email jmeno prijmeni tel
int varchar varchar varchar varchar
Uzivatele Atribut
Datový typ
id_uz email jmeno prijmeni tel login heslo adresa zobrazeni
int varchar varchar varchar varchar varchar text text boolean
Uzivatel_role Atribut
Datový typ
id_uz id_rol
int int
Role Atribut
Datový typ
id_rol nazev aktivni
int varchar boolean
Velikost Nulový
Klíč
Index
IO
ano ne ne ne ne
ne ne ne ne ne
Autoincrement
Klíč
Index
IO
ano ne ne ne ne ne ne ne ne
ne ne ne ne ne ne ne ne ne
Autoincrement
Klíč
Index
IO
ano ano
ne ne
FK FK
Velikost Nulový
Klíč
Index
IO
ne 128 ne ne
ano ne ne
ne ne ne
Autoincrement
128 128 128 32
ne ne ne ne ne
Velikost Nulový
128 128 128 32 32
ne ne ne ne ne ne ne ne ne
Velikost Nulový ne ne
SH1
Clanky Atribut
Datový typ
Velikost Nulový
id_clanku
int schvalil int status varchar abstrakt text klic_slova varchar nazev varchar datum_napsani datetime datum_od datetime datum_do datetime
128 128 512 512
Klíč
Index
IO
ne ne ne ne ne ne ne ne ano
ano ne ne ne ne ne ne ne ne
ne ne ne ne ne ano ne ne ne
autoincrement FK, id_uz
spoluautori
text
ano
ne
ne
seznam spoluatorů, kteří nejsou v systému registrováni
id_stav
int
ne
ne
ne
FK
Ankety Atribut
Datový typ
id_ankety
int
id_uz datum_od datum_do nazev
int datetime datetime varchar
Velikost
Nulový
Klíč
Index
IO
ne
ano
ne
autoincrement
ne ne ne ne
ne ne ne ano
FK, id_uz
ne ne ano 512 ne
Ankety_odpovedi Atribut
Datový typ Velikost
Nulový
Klíč
Index
IO
id_odpoved
int
ne
ano
ne
autoincrement
id_ankety hlasy odpoved
int int text
ne ne ne
ne ne ne
ne ne ne
FK
Clanky_autori Atribut
Datový typ
Nulový
Klíč
Index
IO
id_clanek
int
ne
ano
ne
FK
id_uz
int
ne
ano
ne
FK
Velikost
Uzivatele Atribut
Datový typ
id_uz id_role email jmeno prijmeni tel login heslo adresa
Velikost
int int varchar varchar varchar varchar varchar text text
zobrazeni
128 128 128 32 32
boolean
Role Atribut
Datový typ
id_role nazev aktivni
int varchar boolean
Nulový
Klíč
Index
IO
ne ne ne ne ne ne ne ne ne
ano ano ne ne ne ne ne ne ne
ne ne ne ne ne ne ne ne ne
autoincrement FK
ne
ne
Nulový
Velikost
ne 128 ne ne
SH1 Určuje, zda se má atribut Zobrazovat v kontaktech V sekci IS „Kontakty“
ne
Klíč
Index
IO
ano ne ne
ne ne ne
autoincrement
2.1.5 DFD přechody id_uzivatele Atribut
Datový typ
id_uz
int
vybrane_udaje Atribut
Datový typ
id_uz nazev_role email tel login
int varchar varchar varchar varchar
Velikost
Nulový
Klíč
Index
IO
ne
ano
ne
FK, id_uz
Velikost
128 128 32 32
Nulový
Klíč
Index
IO
ne ne ne ne ne
ano ne ne ne ne
ne ne ne ne ne
FK, id_uz FK, nazev FK FK DK
2.2 Funkční analýza Kontextový diagram
Nultá úroveň
První úroveň, proces 1
Minispecifikace: Přidání nového článku (proces 1/1.1) ID: 1 Stručný popis: Lékař přidává nový článek do systému. Hlavní aktéři: Lékař Vedlejší aktéři: Žádní Vstupní podmínky: Lékař je přihlášený do systému Hlavní scénář: 1. Zobraz formulář pro nahrání článku do systému. 2. Uživatel Lékař vyplní formulář a hodnoty se uloží do pomocných proměnných. 3. Ověř, zda jsou zadané údaje ve správném tvaru v porovnání s formátováním daném v datovém slovníku. Pokud ne, zobraz varování a pak přejdi na krok 1. 4. Vlož nový záznam do tabulky Clanky. 5. Pokud pole p.dalsiAutori není null : 5.1. Pro všechny autory vlož nový záznam do tabulky Clanky_autori 5.2. Pokračuj krokem 6 6. Vlož nový záznam do tabulky Clanky_autori 7. Zobraz informace o stavu akce. Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
Minispecifikace: Smazání článku (proces 1/1.3) ID: 2 Stručný popis: Moderátor nebo Administrátor odstraní článek spolu se všemi dotazy a komentáři. Hlavní aktéři: Moderátor, Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel je přihlášený do systému s právy administrátor/moderátor. Hlavní scénář: 1. Zobraz seznam článků. 2. Uživatel vybere požadované články. Jejich ID se uloží do proměnné id_clanky_smaz 3. Pro všchny články v id_clanky_smaz 3.1. Jestliže je článek aktivní (datum do > dnešní datum) 3.1.1. Do pole id_aktivni ulož id článku 4. Zobraz seznam vybraných článků pro smazání a zvýrazni články aktivní (podle id_aktivni). Formulář nabídne možnost potvrzení smazání a návrat k seznamu článků.
5. Jestliže uživatel vybere možnost zpět. 5.1. Pokračuj krokem 1 6. Jestliže uživatel vybere možnost potvrdit smazání 6.1. Pro všchny články v id_clanky_smaz 6.1.1. Smaž všechny záznamy z tabulek Reakce, Reakce_clanek, kde id_clanek = id aktuálního článku 6.1.2. Smaž všechny záznamy z tabulky Clanky_autori, kde id_clanek = id aktuálního článku 6.1.3. Smaž záznam z tabulky Clanky, kde id_clanek = id aktuálního článku 7. Zobraz info o stavu transakce. Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
První úroveň, proces 2
Minispecifikace: Zobrazení produktu (proces 2/2.1.1) ID: 3 Stručný popis: Podproces, kdy si uživatel vybere ze seznamu produktů detaily jednotlivého produktu. Hlavní aktéři: Všichni uživatelé systému Vedlejší aktéři:
Žádní Vstupní podmínky: Žádné Hlavní scénář: 1. Nahraj fotografie produktu z Produkty_foto dle id_pr 2. Nahraj seznamu lékaren z Lekarna, obsahující id_pr 3. Nahraj produktu z Produkty dle id_pr 4. Zobraz detailu produktu 5. Zobraz formuláře pro dotaz a předvyplň id_pr (Pro rozhodnutí na který produkt se uživatel ptá) Výstupní podmínky: Žádné Alternativní scénáře: Žádné.
Minispecifikace: Přidání nového produktu (proces 2/2.2) ID: 4 Stručný popis: Administrátor nebo Moderátor přidává nový článek do systému. Hlavní aktéři: Administrátor, Moderátor Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel je přihlášený do systému s právy administrátor/moderátor. Hlavní scénář: 1. Zobraz formulář pro nahrání produktu do systému. 2. Uživatel vyplní formulář a hodnoty se uloží do pomocných proměnných. 3. Ověř, zda jsou zadané údaje ve správném tvaru v porovnání s formátováním daném v datovém slovníku. Pokud ne, pak zobraz chybovou zprávu a přejdi na krok 2. 4. Vlož nový záznam do tabulky Produkty. 5. Zobraz informace o stavu transakce Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
Minispecifikace: Editace produktu (proces 2/2.3) ID: 5 Stručný popis: Úprava detailů jednotlivých produktů Hlavní aktéři: Administrátor, Moderátor Vedlejší aktéři: Žádní
Vstupní podmínky: Uživatel je přihlášený do systému s právy administrátor/moderátor. Hlavní scénář: 1. Zobraz seznam produktů. 2. Uživatel vybere produkt k editaci. Jejich ID se uloží do proměnné id_pr_edit. 3. Nahraj fotografie produktu z Produkty_foto dle id_pr = id_pr_edit. 4. Nahraj produktu z Produkty dle id_pr = id_pr_edit. 5. Zobraz formulář pro editaci detailu produktu. 6. Uživatel zadá hodnoty. 6.1. Ověř, zda jsou zadané údaje ve správném tvaru v porovnání s formátováním daném v datovém slovníku. Pokud ne, pak zobraz chybovou zprávu a přejdi na krok 5. 7. Zobraz detail produktu s možností uložení a zpět 7.1. Jestliže uživatel vybere možnost zpět 7.1.1. Vrať se na krok 5. 7.2. Jestliže uživatel vybere uložení 7.2.1. Přepiš záznam v Produkty s id_pr = id_pr_edit. 8. Zobrazení informace o stavu transakce. Výstupní podmínky: Uložení změněného záznamu do databáze Alternativní scénáře: Žádné.
Minispecifikace: Smazání produktu (proces 2/2.4) ID: 6 Stručný popis: Moderátor nebo Administrátor odstraní produkt spolu se všemi jeho výskyty. Hlavní aktéři: Moderátor, Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel je přihlášený do systému s právy administrátor/moderátor. Hlavní scénář: 1. Zobraz seznam produktů. 2. Uživatel vybere požadované produkty. Jejich ID se uloží do proměnné id_pr_smaz 3. Pro všechny produkty v id_pr_smaz 4. Zobraz seznam vybraných produktů pro smazání a zvýrazni. Formulář nabídne možnost potvrzení smazání a návrat k seznamu produktů. 5. Jestliže uživatel vybere možnost zpět. 5.1. Pokračuj krokem 1 6. Jestliže uživatel vybere možnost potvrdit smazání 6.1. Pro všchny produkty v id_pr_smaz 6.1.1. Vyber všechny záznam z Reakce_produkt, kde id_pr = id aktuálního produktu a smaž všechny záznamy z tabulek Reakce dle id_reakce a id_reakce_rodic. Všechny vybrané záznamy z Reakce_produkt smaž. 6.1.2. Vyber všechny záznamy z Produkt_dotazy, kde id_pr = id aktuálního produktu a ulož je do proměnné id_dot_smaz. Pro všechny v id_dot_smaz udelej
6.1.2.1. Vyber záznamy z Odpovedi_produkt dle id_dot_produkt = id aktuální záznam a smaž všechny odpovídající záznamy z tabulky Odpovedi dle id_odp vybraných záznamů. 6.1.2.2. Smaž záznamy z Odpovedi_produkt kde id_dot_produkt = id aktuální záznam 6.1.3. Smaž všechny záznamy z tabulek Produkty, Produkt_foto, Produkt_lekarna, kde id_pr = id aktuálního produktu 7. Zobraz info o stavu transakce. Výstupní podmínky: Záznam byl vymazán z databáze. Alternativní scénáře: Žádné.
První úroveň, proces 3
Minispecifikace: Smazat aktualitu (proces 3/3.4) ID: 7 Stručný popis: Administrátor maže aktuality v systému. Systém jej upozorní, když bude chtít smazat aktualitu, která je v jiném stavu, než ve stavu archivovaná. (jednotlivé stavy viz. Časová analýza) Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor je přihlášený do systému Hlavní scénář: 1. Zobraz seznam aktualit. 2. Uživatel Administrátor vybere seznam všech aktualit, které chce smazat. 3. Projdi pole p.aktualityKsmazani a pro každou aktuality proveď: 3.1 Jestliže je atribut stav různý od „archivovana“: 3.1.1 Zobraz formulář „Chystáte se smazat aktivní aktualitu“ 3.1.2 Uživatel zvolí akci. Do p.akce se uloží „smazat“/ „ponechat“. 3.1.3 Pokud p.akce = „ponechat“, odeber z pole p.aktualityKsmazani právě procházenou aktualitu. Pokračuj dalším cyklem. 3.2 Smaž záznam z tabulky Aktuality kde id_akt = p.id_akt. 4. Zobraz informace o stavu akce. Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
První úroveň, proces 4
Minispecifikace: Vytvoření dotazu (proces 4/4.1) ID: 8 Stručný popis: Uživatel vytvoří dotaz, který bude systémem zařazen do příslušné kategorie (E-poradna, nebo produky). Formulář bude zobrazován u všech produktů (systém bude evidovat u kterého produktu dotaz vzniknul) a zaroveň bude přístupný skrze menu (Dotaz na e-poradnu). Hlavní aktéři: Uživatel Vedlejší aktéři: Žádní Vstupní podmínky: Žádné Hlavní scénář: 1. Zobraz formulář pro zadání dotazu. 2. Uživatel vyplní formulář dle datového slovníku. 3. Zkontroluj zadané hodnoty dle datového slovníku. Pokud hodnoty neodpovídají, zobraz chybovou zprávu a pokračuj krokem 1. 4. Do pomocných proměnných ulož vyplněné hodnoty 5. Pokud je zadané jméno shodné s některým jménem registrovaného uživatele. 5.1. Zobraz varování „Toto jméno je v systému registrováno, nelze použít“ 5.2. Pokračuj krokem 1, předvyplň formulář hodnotami z pomocných proměnných a zvýrazni
položku jméno. 6. Vyplň pomocnou proměnnou p_dotaz_na_produkt = ID prohlíženého produktu(NULL – v případě dotazu na e-poradnu) 7. Ulož záznam do tabulky Dotazy_k_zprac 8. Zobraz info o stavu transakce Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
Minispecifikace: Zařazení dotazu (proces 4/4.2) ID: 9 Stručný popis: Uživatel převede (upraví) zaslaný dotaz a vhodně jej zařadí k produktu, nebo do příslušné kategorie e-poradny. Hlavní aktéři: Administrátor, Moderátor Vedlejší aktéři: Žádní Vstupní podmínky: Uživatel je přihlášený do systému s právy administrátor/moderátor. Hlavní scénář: 1. Zobraz seznam všech dotazů z tab. Dotazy_k_zprac a vizuálně rozliš zda se jedná o dotaz na produkt, nebo na e-poradnu. 2. Uživatel vybere dotaz. 3. Pokud se jedná o dotaz na produkt (je vyplněn atribut id_pr) 3.1. Zobraz formulář s vyplněnými hodnotami dle vybraného dotazu. 3.2. Uživatel vhodně upraví hodnoty formuláře 3.3. Zkontroluj zadané hodnoty dle datového slovníku. Pokud nejsou hodnoty validní, zobraz varování a pokračuj krokem 3.1 3.4. Ulož záznam do tabulky Produkt_dotazy 4. Pokud se jedná o dotaz na e-poradnu (atribut id_pr == NULL) 4.1. Zobraz formulář s vyplněnými hodnotami dle vybraného dotazu. 4.2. Uživatel vhodně upraví hodnoty formuláře 4.3. Uživatel vybere kategorii dotazu 4.4. Zkontroluj zadané hodnoty dle datového slovníku. Pokud nejsou hodnoty validní, zobraz varování a pokračuj krokem 4.1 4.5. Ulož záznam do tabulky E-poradna_dotazy 5. Zobraz info o stavu transakce Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
První úroveň, proces 5
Minispecifikace: Vytvoření žádosti nového uživatele(proces 5/5.1) ID: 10 Stručný popis: Moderátor/Lékař se registrují do systému. Jejich účet se vytvoří, ale bude ve stavu „neschválen“, protože si zadavatel chce udržet v systému pouze odborné poradce, bude administrátor schvalovat každou registrci. Hlavní aktéři: Moderátor/Lékař Vedlejší aktéři: Žádní Vstupní podmínky: Žádné Hlavní scénář: 1. Zobraz formulář pro registraci nového uživatele 2. Uživatel vyplní formulář 3. Zkontroluj jednotlivé údaje dle datového slovníku, jinak krok 1 a zobraz varování o špatném zadání a pokračuj krokem 1. 4. Zkonroluj, zda se v tabulce Uzivatele nachází záznam s atributem login = login zadaný uživatelem. Pokud ano, pokračuj krok 1 a zobraz varování o existenci stejného loginu. 5. Vlož záznam do tabulky Uzivatele, kde stav = „neschválen“ 6. Zobraz informace o stavu transakce.
Výstupní podmínky: Záznam byl uložen do tabulky Uzivatele. Alternativní scénáře: Žádné.
Minispecifikace: Schválení uživatele(proces 5/5.3) ID: 11 Stručný popis: Administrátor schvaluje uživatele v systému. Aby nemusel sám vyplňovat všechny osobní a kontaktní údaje uživatele, je uživateli nabídnuta možnost registrace, kterou pak administrátor schválí. Hlavní aktéři: Administrátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor je přihlášený do systému Hlavní scénář: 1. Zobraz seznam registrací 2. Uživatel vybere požadovanou registraci 3. Zobraz formulář pro potvrzení registrace 4. Uživatel potvrdí registraci 5. Zedituj záznam v tabulce Uzivatele, kde id_uzivatele = id právě editovaného uživatele 6. Zobraz informace o stavu transakce Výstupní podmínky: Záznam v tabulce Uzivatele byl zeditován. Alternativní scénáře: Krok : 4. Uživatel potvrdí smazání registrace 5. Odeber záznam z tabulky Uzivatele, kde id_uzivatele = id právě editovaného uživatele 6. Zobraz informace o stavu transakce
Minispecifikace: Smazání uživatele(proces 5/5.5) ID: 12 Stručný popis: Administrátor/Moderátor maže uživatele v systému. Hlavní aktéři: Administrátor/Moderátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Moderátor je přihlášený do systému Hlavní scénář: 1. Zobraz seznam uživatelů (administrátor se zde nezobrazuje) 2. Administrátor vybere uživatele k smazání
3. Pokud je uživatel v roli moderátor, pak krok 4, jinak: 3.1. Edituj záznam v tabulce Uzivatele, kde id_uzivatele = id aktuálně editovaného uživatelem kde nastav id_role na id_role s názvem „neaktivní“ 3.2. Pokračuj krokem 5 4. Odeber záznam z tabulky Uzivatele, kde id_uzivatele = id právě editovaného uživatele 5. Zobraz info o stavu transakce. Výstupní podmínky: Záznamy byly smazány / zeditovány. Alternativní scénáře: 1. Zobraz seznam Lékařů 2. Moderátor vybere uživatele k smazání 3. Edituj záznam v tabulce Uzivatele, kde id_uzivatele = id aktuálně editovaného uživatelem kde nastav id_role na id_role s názvem „neaktivní“ 4. Zobraz info o stavu transakce.
První úroveň, proces 6
Minispecifikace: Vytvořit anketu(proces 6/6.1) ID: 13 Stručný popis: Administrátor/Moderátor/Lékař vytváří v systému novou anketu. V rámci minispecifikace budeme považovat všechny aktéry za uživatele. Hlavní aktéři: Administrátor/Moderátor/Lékař Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Moderátor/Lékař je přihlášený do systému Hlavní scénář: 1. Zobraz formulář pro vytvoření nové ankety 2. Uživatel vyplní formulář 3. Zkontroluj, zda se v tabulce Ankety nenachází záznam se stejným názvem, pokud ano, krok 2 a zobraz varování o existenci ankety s duplicitním názvem. 4. Zkontroluj jednotlivé údaje dle datového slovníku, jinak krok 2 a zobraz varování o špatném zadání. 5. Ulož záznam do tabulky Ankety. Atribut id_uzivatele = id přihlášeného uživatele. 6. Zobraz stav transakce. Výstupní podmínky: Záznam byl uložen do databáze. Alternativní scénáře: Žádné.
Minispecifikace: Smazat anketu(proces 6/6.5) ID: 14 Stručný popis: Administrátor/Moderátor maže anketu. V rámci minispecifikace budeme považovat všechny aktéry za uživatele. Hlavní aktéři: Administrátor/Moderátor Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Moderátor je přihlášený do systému Hlavní scénář: 7. Zobraz seznam anket. 8. Uživatel vybere požadované ankety. Jejich ID se uloží do proměnné id_ankety_smaz 9. Pro všchny ankety v id_ankety_smaz 9.1. Jestliže je ankety aktivní (datum do > dnešní datum) 9.1.1. Do pole id_aktivni ulož id ankety 10. Zobraz seznam vybraných anket pro smazání a zvýrazni ankety aktivní (podle id_aktivni). Formulář nabídne možnost potvrzení smazání a návrat k seznamu anket. 11. Jestliže uživatel vybere možnost zpět.
11.1. Pokračuj krokem 1 12. Jestliže uživatel vybere možnost potvrdit smazání 12.1. Pro všchny ankety v id_ankety_smaz 12.1.1. Smaž všechny záznamy z tabulek Ankety, Ankety_odpovědi, kde id_ankety = id aktuální ankety 13. Zobraz info o stavu transakce. Výstupní podmínky: Záznamy byly smazány z tabulek Ankety, Ankety_odpovedi. Alternativní scénáře: Žádné.
Minispecifikace: Editovat anketu(proces 6/6.6) ID: 15 Stručný popis: Administrátor/Moderátor/Lékař edituje stávající anketu. Pokud je již anketa aktivní, tedy uživatelé již na ni odpovídají, bude jediný způsob jak editovat anketu , její smazání a znovuvytvoření. Tak aby se nezkreslila věrohodnost průzkumu. V rámci minispecifikace budeme považovat všechny aktéry za uživatele. Hlavní aktéři: Administrátor/Moderátor/Lékař Vedlejší aktéři: Žádní Vstupní podmínky: Administrátor/Moderátor/Lékař je přihlášený do systému Hlavní scénář: 1. Zjisti, zda uživatel je v roli „Lékař“, pokud ano, tak zobraz seznam pouze těch anket, kde autor = id lékaře. Jinak zobraz seznam všech anket 2. Uživatel vybere anketu k editaci 3. Zkontroluj, zda anketa je aktivní (dnes > atribut datum_od && dnes < datum_do ), pokud ano, zobraz varování, anketa je již aktivní. Pokračuj krok 1 4. Zobraz formulář pro editaci ankety 5. Uživatel libovolně upraví hodnoty formuláře 6. Zkontroluj jednotlivé údaje dle datového slovníku, jinak krok 4 a zobraz varování o špatném zadání 7. Edituj záznam v tabulce Ankety 8. Zobraz informace o stavu transakce Výstupní podmínky: Záznam v tabulce Ankety byl úspěšně zeditován. Alternativní scénáře: Žádné.
První úroveň, proces 7
Minispecifikace: Reakce na reakci (proces 7/7.3) ID: 16 Stručný popis: Uživatel má možnost reagovat na některou z předešlých reakcí (na článek, nebo na produkt). Hlavní aktéři: Uživatel (neregistrovaný) Vedlejší aktéři: Žádní Vstupní podmínky: Žádné Hlavní scénář: 1. Zobraz seznam reakcí na dle aktuálně prohlíženého článku/produktu. 2. Uživatele zvolí možnost „Reaguj“ 3. Do pomocné proměnné p_id_reakce ulož id zvolené reakce, do p_id_produkt ulož id produktu (NULL pokud jde o článek), do p_id_clanek ulož id prohlíženého článku (NULL pokud prohlížíme produkt) 4. Zobraz formulář pro vložení nové reakce 5. Uživatel vyplní formulář
6. Do pomocných proměnných ulož vyplněné hodnoty 7. Zkontroluj hodnoty dle datového slovníku. Pokud hodnoty neodpovídají, zobraz varování a pokračuj krokem 4. 8. Pokud je zadané jméno shodné s některým jménem registrovaného uživatele. 8.1. Zobraz varování „Toto jméno je v systému registrováno, nelze použít“ 8.2. Pokračuj krokem 4, předvyplň formulář hodnotami z pomocných proměnných a zvýrazni položku jméno. 9. Do tabulky Reakce uloz hodnoty z pomocných proměnných a do p_id_aktual uzlož id této reakce. 10. Pokud jde o reakci na produkt (p_id_produkt != NULL) 10.1. Do vazební tabulky Reakce_produkt přidej záznam , kde id_pr = p_id_produkt, id_reakce = p_id_aktual, id_rodic = p_id_reakce 11. Pokud jde o reakci na clanek (p_id_clanek != NULL) 11.1. Do vazební tabulky Reakce_clanek přidej záznam , kde id_clanek = p_id_clanek, id_reakce = p_id_aktual, id_rodic = p_id_reakce 12. Zobraz info o stavu transakce. Výstupní podmínky: Žádné. Alternativní scénáře: Žádné.
2.3 Časová analýza Stavový diagram pro objekt „Aktualita“
Zhodnocení: Po nakreslení stavového diagramu jsme došli k závěru, že je třeba doplnit atribut „stav“.
Stavový diagram pro objekt „Článek“
Zhodnocení: Po nakreslení stavového diagramu jsme došli k závěru, že je třeba doplnit atribut „stav“.
2.4 Návrh uživatelského rozhraní Základní rozložení webové stránky:
ID 1 2 3 4 5
Popis Logo firmy Menu Veškeré texty, obsah Aktuality, ankety Copyright, přihlášení do systému
Ukázka formuláře pro přihlášení do systému:
Ukázka formuláře pro přidání článku do systému(přidává lékař, 1/1.1):