'''Подсистеми ''' 1. Подсистем за најава и регистрација 1.1 Подсистем за најава 1.2 Подсистем за регистрација 2. Подсистем за процесирање на трансакции 3. Подсистем за настани и билети 3.1 Подсистем за настани 3.2 Подсистем за билети 4. Подсистем за админ (одржување на базата) == Операциона анализа ID 1: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Се регистрира'' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Се регистрира|||| 1 |||| Корисникот пристапува на сајтот и ја внесува URL адресата во својот пребарувач |||| Се испраќа request до серверот, по што му се испраќа повратна содржина на корисникот, односно се рендерира homepage |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 0.5 сек. |||| |||| || || Се регистрира|||| 2 |||| Корисникот внесува лични податоци внесува име и презиме, корисничко име, лозинка, телефонски број и е-маили клика "следно"- next |||| Системот ги зема податоците од формата, при што податоците се зачувуваат во променливи |||| Да се овозможи валидација на email адреса и телефонски број |||| Подсистем за регистрација- Ги чува овие влезни податоци во системски променливи, кои ќе бидат потребни понатаму |||| || || Се регистрира |||| 3 |||| Корисникот внесува податоци за трансакциска сметка- број на картичка, код и датум на истекување |||| Откако се внесени сите информации, се филтирираат од SQL инјекции |||| Да се овозможи валидација на картичата |||| Подсистем за регистрација- Се оформува Query со внсените податоци (заедно со претходно внесените и зачувани променливи) и се внесуваат податоците во базата (табелата Users ) |||| || || Се регистрира|||| 4 |||| Корисникот избира начин на потврда од две опции SMS или e-mail (radio-button) и клика копче за потврда |||| Во зависнот од избраната опција, на корисникот автоматски му се праќа e-mail или код на телефон.(внесени во формата преходно) |||| Ова треба да се случи брзо, највеќе за 20 секунди |||| Подсистем за регистрација- го зема влезот од корисникот- изборот на опција. Доколку избрал опција код, автоматски се генерира код за регистрација, се зема телефонскиот број на корисникот од базата и автоматски се праќа кодот. Доколку избрал опција e-mail, се зема e-mail адресата од базата и автоматски се праќа конфирмациски e-mail, чија содржина содржи линк за конфирмација и порака корисникот да не одговара на пораката, бидејќи е автомарска, туку да се обрати до официјаниот -email, доколу има прашања. |||| Ова треба да се случи за највеќе за 15 секунди || || Се регистрира|||| 5 |||| Корисникот ја потврдува регистрацијата- го внесува кодот, или клика линк од добиениот e-mail |||| Се проверува дали корисникот внел код, или дали кориникот кликнал на линк за потврда од e-mail |||| Ова треба брзо да се случи за 3-5 секунди. |||| Подсистем за регистрација- проверува дали внесениот код е идентичен со пратениот и доколку е, се појавува се пренасочува корисникот кон страна за најава, каде се појавува порака за успешна најава. Доколку корисникот кликнал за точен линк за потврда, преку e-email,се пренасочува кон страна за најава, каде се појавува порака за успешна најава. |||| Ова треба брзо да се случи за 3-5 секунди. || ID 2: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Се најавува'' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Се најавува|||| 1 |||| Корисникот внесува податоци за најава- корисничко име и лозинка и клика копче за најава |||| Откако се внесени сите информации, ба- се филтирираат од SQL инјекции |||| Ова треба да се случи за максимум 0.9 секунди |||| Подсистем за најава- Се оформува query со внесените податоци и се испраќа request до серверот, по што му се испраќаат внесените продатоци и се проверуваат во базата. Доколку се точни се испраќа код за најава, доколку не, се појавува порака за грешка |||| Ова треба да се случи за максимум 0.9 секунди || || Се најавува|||| 2 |||| Корисникот го внесува кодот за најава што веќе му е пратен на телефон |||| Се проверува внесениот код, дали е ист со пратениот |||| Ова треба да се случи за максимум 0.5 секунди |||| Подсицтем за најава- Доколу внесениот код е точен, се појавува порака за успешна најава и кориникот се пренасочува на почетна страна(homepage), по што му се доделуваат привилегии на најавен корисник |||| || ID 3: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Прегледува листа од настани'' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Прегледува листа од настани|||| 1 |||| Корисникот ја внесува URL адресата во својот пребарувач и пристапува до веб сајтот(homepage) |||| Се испраќа request до серверот, по што му се испраќа повратна содржина на корисникот, односно се рендерира homepage |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 0.5 сек. || |||| || || Прегледува листа од настани |||| 2 |||| Корисникот прегледува листа настани - избира некој настан од листата на homepage или избира категорија на настани од паѓачко мени(drop-down list) |||| Доколу избрал категорија, се зачувува ID-то на категоријата, доколу избрал настан се зачувува ID-то на настанот |||| На homepage се наоѓаат најпопуланите настани. Во категории спаѓаат: музички, спортски, културни, забавни, хуманитарни. Во сите категории настаните се подредени во листи. Се избира од главното горно мени или од десно мени. Важно е брзо извршување, до 0.4 секунди. |||| Подсистем за настани - Преку избраното ID на настанот, се формира query и се праќа request до базата, да се земат сите детали за настанот и да се прикажат во нова страна за детали. Доколку корисникот клинал на категорија, се праќа query до базата со ID од избраната категорија, и се листаат сите нстани од оваа категорија. |||| Важно е брзо извршување, до 0.4 секунди || || Прегледува листа од настани|||| 3 |||| Корисникот избира настан од категорија- клика копче за детали на настан од листата од избраната категорија |||| Се зачувува ID-то на селектираниот настан во системска променлива |||| Важно е извршување до 0.4 секунди |||| Подсистем за настани - Се креира query со зачуваното ID од селектираниот настан и се праќа до базата. Од базата се земаат сите детали за избраниот настан и на корисникот му се прикажува нова старана за детали |||| Важно е извршување до 0.4 секунди || || ID 4: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Пребарува за настан''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Пребарува за настан |||| 1 |||| Корисникот пристапува на сајтот |||| Системот го вчитува сајтот|||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 0.5 сек. |||| Се испраќа request до серверот, по што му се испраќа повратна содржина |||| || || Пребарува за настан |||| 2 |||| Корисникот внесува клучни зборови за настанот во search барот и клика на копче "Внеси"|||| Системот прикажува соодветни резултати |||| Да се овозможат неколку филтри( мин. 3) |||| Системот пребарува низ базата за настани со бараните клучни зборови и ги прикажува добиените резултати|||| || ID 5: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Прегледува детали за настан''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Прегледува детали за настан |||| 1 |||| Корисникот клика копче за преглед на настан |||| Системот ги листа деталите за избраниот настан |||| |||| При клик на копчето се наоѓа ID за соответниот настан и се оформува Query за земање на сите податоци за истиот настан, што се испраќа до базата |||| || ID 6: ||||||||||||||||||||||||||= '''Kрајни корисници кориснички случај - Купува билет''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Купува билет |||| 1 |||| Корисникот со клик на копче го "става" билетот во "купувачка кошничка" |||| Системот зачувува за кој настан се работи|||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 0.5 сек. |||| Откако корисникот ќе кликне на копчето за додавање на билет за одреден настан во кошничка, системот го зачувува ID-то на избраниот настан и тоа трае се до крајот на сесијата, или пак додека да го избрише билетот, или купи |||| || || Купува билет |||| 2 |||| Корисникот ја отвара кошничката |||| Се листаат сите билети коишто корисникот ги избрал |||| Да се овозможи да може да тргне некој од билетите од кошничката доколку сака |||| Му се листаат сите досега зачувани билети коишто ги избрал во кошничката и доколку избрише некој го бришеме од зачуваните и му се обновува страницата со помош на Ajax, со останатите билети |||| || || Купува билет |||| 3 |||| Корисникот клика на копче "Купи" |||| Се отвара форма во којашто е прикажана вкупната сума којашто треба да ја плати (доколку има зачувано на својот уред автоматски се пополнуваат формите за информациите за платежното средство, во спротивно корисникот ги внесува ) |||| Да се контролираат податоците коишто се внесени да не бидат невалидни |||| / |||| || || Купува билет |||| 4 |||| Корисникот ја пополнува формата |||| Системот ги валидира податоците|||| Мора да се извршува брзо( помалку од 1 сек) |||| Се валидираат податоците со тоа што се споредуваат со соодветните во базата, а оној податок за платежната картичка се верифицира со банката|||| || || Купува билет |||| 5 |||| Корисникот добива код во замена на билет, кој може да го прикаже на влезот на настанот (откако банка ќе ја одобри трансакцијата) |||| Доколку трансакцијата е успешна, системот избира рандом билет од понудените во базата за дадениот настан и му го дава кодот од истиот на корисникот |||| Мора да се извршува брзо( 1 сек) |||| По успешната трансакција, се оформува Query за рандом добивање на некој од билетите коишто се во базата за соодветниот настан, и му се прикажува на корисникот |||| || ID 7: ||||||||||||||||||||||||||= '''Aдминистратор кориснички случај - Одржува база на податоци''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Одржува база на податоци |||| 1 |||| Администраторот се најавува во едиторот на базата за податоци |||| Внесува корисничко име и лозинка.При успешна најава системот ја прикажува почетната страница на админ страницата |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 1 сек. |||| Податоците којшто ги внел администраторот за најавување се проверуваат во база, дали се конзистентни со корисничко име и лозинка и притоа доколку се му се покажува порака за успешна најава и се пренасочува администраторот |||| || || Администраторот ги наоѓа податоците кадешто се потребни промени |||| 2 |||| Администраторот ги наоѓа податоците кадешто се потребни промени |||| Системот му ги презентира податоците кои администраторот ги побарува, со соодветните филтри |||| Да се овозможи да направи неограничен број на пребарувања и филтрирања една по друга, се додека не е задоволен, и да се извршува брзо( 0.5 сек.) |||| При пребарување со помош на Query коишто се испраќаат до базата се добиваат повратни информации, а при користење на филтри повторно се користат дополнителни Query-ја |||| || || Администраторот ги прави промените врз податоците |||| 3 |||| Системот му прикажува форма за внесување на нови информации |||| Ги врши соодветните промени со внесување на нови податоци во дадени полиња или менување во веќе постоечките |||| Да се контролираат податоците коишто се внесени да не бидат невалидни |||| Откако ќе ги внесе новите податоци администраторот, потребно е да се зачуваат во одредено место, или пак директно со нив да се оформи новото Query |||| || || Одржува база на податоци |||| 4 |||| Ја зачувува новата состојба на базата на податоци |||| Системот го "фаќа" евентот при клик на копчето за потврда и ги обновува податоците |||| Мора да се извршува брзо( помалку од 1 сек) |||| При кликање на копчето за зачувување се праќа Query до базата со што се зачувува нова состојба на базата и на корисникот му се враќа повратна информација дали е успешно/неуспешно. |||| || ID 8: ||||||||||||||||||||||||||= '''Aдминистратор кориснички случај - Менаџира корисници''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Менаџира корисници |||| 1 |||| Администраторот се најавува во едиторот на базата за податоци |||| Му се прикажува форма за внесување на информации за најава.При успешна најава системот ја прикажува почетната страница на админ страницата |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 1 сек. |||| Податоците којшто ги внел администраторот за најавување се проверуваат во база, дали се конзистентни со корисничко име и лозинка и притоа доколку се му се покажува порака за успешна најава и се пренасочува администраторот |||| || || Менаџира корисници |||| 2 |||| Администраторот ги филтрира податоците за корисникот/ците за коишто е потребно |||| Системот му ги презентира податоците за корисниците кои администраторот ги побарува, со соодветните филтри |||| Да се овозможи да направи неограничен број на пребарувања и филтрирања една по друга, се додека не е задоволен, и да се извршува брзо( 0.5 сек.) |||| При пребарување со помош на Query коишто се испраќаат до базата се добиваат повратни информации, а при користење на филтри повторно се користат дополнителни Query-ја |||| || || Менаџира корисници |||| 3 |||| Ги извршува потребните промени врз селектираните податоци |||| Системот му прикажува форма за внесување на нови информации |||| Да се контролираат податоците коишто се внесени да не бидат невалидни |||| Откако ќе ги внесе новите податоци администраторот, потребно е да се зачуваат во одредено место, или пак директно со нив да се оформи новото Query |||| || || Менаџира корисници |||| 4 |||| Ја зачувува новата состојба на базата на податоци |||| Системот го "фаќа" евентот при клик на копчето за потврда и ги обновува податоците |||| Мора да се извршува брзо( помалку од 1 сек) |||| При кликање на копчето за зачувување се праќа Query до базата со што се зачувува нова состојба на базата и на корисникот му се враќа повратна информација дали е успешно/неуспешно. |||| || ID 9: ||||||||||||||||||||||||||= '''Aдминистратор кориснички случај - Одржува сервер''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Одржува сервер |||| 1 |||| Администраторот е известен за проблем со серверот |||| Системот не е во нормална функција и администраторот ја добива информацијата од трети лица. Администраторот е известен од некој од вработените, или пак од некој од корисниците дека има некаков дефект и веб сајтот не функционира |||| Администраторот мора да е достапен во секое време и да реагира на нотификациите и известувањата во врска со проблемот веднаш |||| Во зависност од тоа што е проблемот со серверот дали "паднал" или пак нешто друго, што би предизвикало недостапност или проблем со веб сајтот, администраторот добива известување или нотификација преку емаил од страна на некој од вработените, којшто пак може самиот да увидел дека не е во ред, или од страна на корисник во вид на репорт |||| || || Одржува сервер |||| 2 |||| Администраторот го лоцира проблемот |||| Системот не е во нормална функција.По нотификацијата за проблемот со серверот администраторот се лоцира преку remote control или пак доаѓа на лице место и го лоцира проблемот со серверот |||| |||| Администраторот има своја лозинка и корисничко име за најава на серверот, доколку е далечен, а доколу е во сопственост на фирмата, може да оди директно на лице место и да го лоцира проблемот, во зависност од тоа што е проблемот |||| || || Одржува сервер |||| 3 |||| Администраторот го решава проблемот |||| Серверот почнува нормално да работи и системот повторно финкционира нормално |||| Да се заврши во што е можно побрзо време |||| Администраторот го решава проблемот во зависност од тоа што е(дали хардверски или софтверски), по потреба повикува и постручно лице. По извршената поправка, системот повторно се пушта во употреба |||| || ID 10: ||||||||||||||||||||||||||= '''Организатор кориснички случај - Регистрира настан''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Регистрира настан |||| 1 |||| Организаторот внесува кориснчко име и лозинка и се најавува на системот |||| Податоците којшто ги внел организаторот за најавување се проверуваат во база, дали се конзистентни со корисничко име и лозинка и притоа доколку се му се покажува порака за успешна најава и се пренасочува организаторот. При успешна најава системот ја прикажува почетната страница за организаторот. |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 1 сек. |||| |||| || || Регистрира настан |||| 2 |||| Организаторот избира една категорија од листата со категории за одреден настан |||| Се зачувува избраната категорија. |||| Да се внимава која категорија ќе биде избрана |||| |||| || || Регистрира настан |||| 3 |||| Организаторот регистрира настан и вметнува податоци за истиот (со клик на копче) |||| Се зачувуваар информации за време и местото за настанот и кликање на копчето Add Event регистрира нов настан во базата под одредена категорија. При кликање на копчето за додавање нов настан се праќа Query до базата со што се зачувува нова состојба на базата и на организаторот му се враќа повратна информација дали е успешно/неуспешно додавањето. |||| Да се контролираат податоците коишто треба да бидат внесени да не бидат невалидни |||| |||| || ID 11: ||||||||||||||||||||||||||= '''Организатор кориснички случај - Додава билети во база''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Додава билети во база |||| 1 |||| Организаторот внесува корисничко име и лозинка и се најавува на системот |||| Податоците којшто ги внел организаторот за најавување се валидираат, дали се конзистентни со корисничко име и лозинка и притоа доколку се му се покажува порака за успешна најава и се пренасочува организаторот. При успешна најава системот ја прикажува почетната страница за организаторот |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 1 сек. |||| |||| || || Додава билети во база |||| 2 |||| Организаторот го избира неговиот настан за кој треба да додадат билети |||| Се прикажува регистрираниот настан на организаторот и се прикажува форма за додавање билети |||| Треба да се внимава кој настан ќе биде селектиран |||| |||| || || Додава билети во база |||| 3 |||| Организаторот ги распеделува билетите по категории(ВИП,седење,стоење) |||| Се распределуваат билетите по категории, односно се распределуваат по ВИП билети, билет за стоење или седење. Откако организаторот ќе одлучи која категорија ја има одреден билет, се зачувуваат 'новите' билети |||| Треба да се внимава кој билет во која категорија ќе биде распределен |||| |||| || || Додава билети во база |||| 4 |||| Организаторот ги внесува кодовите за билетите во база |||| Овозможено е да се вметнат кодовите за распределените билети во базата кои подоцна ќе бидат спремни за продажба. Со одредено Query се бараат билетите од базата и за секој билет посебно се додава соодветен код за него, при тоа потоа базата се ажурира со 'новите' билети |||| Да се овозможи на организаторот да направи голем број на додавања на кодови еден по друг, се додека не се пополни бројот за сите предвидени билети, и оваа операција да се извршува брзо( 0.5 сек.) |||| |||| || ID 12: ||||||||||||||||||||||||||= '''Организатор кориснички случај - Откажува настан''' =|| ||= System Operation =||||= Step =||||= Actor Action =||||= Black-Box Step Description =||||= Black-box Step Budget Requirements =||||= Subsystem White-Box Step Description =||||= White-Box Step Budget Requirements =|| || Откажува настан |||| 1 |||| Организаторот внесува корисничко име и лозинка и се најавува на системот |||| Податоците којшто ги внел организаторот за најавување се проверуваат во база, дали се конзистентни со корисничко име и лозинка и притоа доколку се му се покажува порака за успешна најава и се пренасочува организаторот. При успешна најава системот ја прикажува почетната страница за организаторот |||| Оваа операција треба да се изврши брзо, т.е. не повеќе од 1 сек. |||| |||| || || Откажува настан |||| 2 |||| Организаторот го избира настанот кој треба да биде откажан (со клик)|||| Настанот што треба да биде отстранет се трга од листата на настани. Со кликање на копчето Remove event за бришење на настан се праќа Query до базата со што се ажурира и зачувува нова состојба на базата и на организаторот му се враќа повратна информација дали бришењето е успешно/неуспешно |||| Мора да се извршува брзо( помалку од 1 сек) |||| |||| ||