wiki:UseCaseRealizations

Version 13 (modified by 191027, 2 years ago) ( diff )

--

UseCaseRealizations

0. Сите

ID 1
Случај на употреба Најава на кориснички профил
  • Се пристапува до почетната страна на апликацијата преку соодветното URL.
  • Се прикажува изгледот кој нуди 3 опции: Најава (како регистриран паркирач), Најава како гостин и Регистрирај се. (слика 1.1).
  • Се внесува емаил адресата и соодветниот пасворд од корисничкиот профил претходно креиран и се притиска на копчето за "Најава".
  • Доколку се работи за корисник кој нема профил, а не сака да се регистрира, во тој случај постои опција за "Најава како гостин" која директно го пушта во системот.
  • Со притискање на копчето за најава преку axios POST повик се праќа барање на /api/login за најава до бекендот.
  • Барањето за најава патува низ филтер chainot каде што е пречекано од нашиот CustomAuthenticationFilter кој од податоците за најава креира authenticationToken кој потоа се предава на authenticationManager да ја потврди точноста на лозинката и емаил адресата кои се наоѓаат во некој од нашите кориснички репозиториуми.
  • Доколку комбинацијата на лозинка и емаил адреса се покаже како валидна CustomAuthentication со повик на методот successfulAuthentication во зависност од типот на корисник кој се логирал ( односно од кој репозиториум се добила потврда за точноста на податоците ) се гради соодветен JsonWebToken кој се праќа до фронтот за авторизација на понатамошни повици до бекендот. Доколку е неуспешна најавата корисникот е вратен на почетната страна со соодветно известување за неуспешната најава.
  • Претходниве чекори 4-6 се идентични за секој тип на корисник освен за Guestot. По успешна најава Workerot и Administratorot се пренасочени на страната со приказ на картички за паркинг зони додека пак Guest и RegisteredUser се пренасочени на мапа со приказ на паркинг зоните и паркинг местата соодветно.


1. Регистриран Паркирач

ID 1
Случај на употреба Регистрација на кориснички профил
  • Се пристапува до почетната страна на апликацијата преку соодветното URL.
  • Се прикажува изгледот кој нуди 3 опции: "Најава" (како регистриран паркирач), "Најава како гостин" и "Регистрирај се". Се кликнува на "Регистрирај се" (слика 1.1)
  • Се отвара форма за регистрација (слика 1.2) со текст полиња во кои треба да се внесат соодветните лични податоци на корисникот за да го креира својот профил на нашата апликација, тоа се: име, презиме, телефонски број, емаил адреса и лозинка.
  • Откако ќе се внесат овие податоци се кликнува на копчето "Регистрирај се".
  • Се испраќа POST барање кое се прифаќа од RegisteredUserController на патеката /registriranParkirac/registration и како @RequestBody се вметнува request-от и се повикува функцијата register од registrationServiceRP која што прима еден аргумент, а тоа е request-от.
  • Во функцијата прво се проверува дали емаилот е валиден, потоа се гради token и се гради мејлот кој треба да се прати на емаил адресата која што корисникот ја навел.
  • Откако ќе се прати мејлот корисникот треба да потврди со кликнување на подвлечениот линкот обоен со сина боја (слика 1.3). Вака се испраќа ново GET барање на патеката /registriranParkirac/registration/confirm со параметар token и се повикува функцијата confirmToken(token) од registrationServiceRP. Во функцијата прво се проверува дали е постоечки токенот, дали веќе постои таа мејл адреса и дали времетрањето на токенот е поминато
  • По поминување на сите овие проверки ќе се постави тој токен со функцијата setConfirmedAtRP(token) од confirmationTokenService и ќе се дозволат привилегиите на регистрираниот паркирач за користење на апликацијата со функцијата enableRegistriranParkirac(confirmationTokenRP.getRegistriranParkirac().getEmail()) од registeredUserService.
  • Корисничкиот профил е успешно креиран и корисникот е редиректиран повторно на почетната страна на апликацијата (слика 1.1) и за да продолжи со користење треба да се најави со емаил адресата и пасвордот од ново креираниот кориснички профил.


ID 2
Случај на употреба Пребарување на паркинг место
ID 3
Случај на употреба Паркирање

2. Guest

ID 1
Случај на употреба Пребарување на паркинг место
ID 2
Случај на употреба Паркирање

3. Вработен

ID 1
Случај на употреба Ажурирање на паркинг места со паркинг сесии

4. Administrator

ID 1
Случај на употреба Додавање на нов вработен
  • Првично потребно е администраторот да биде најавен во системот за да може да ги извршува овие привилегии.
  • Откако успешно ќе се најави се кликнува иконата со 2 силуети што се наоѓа лево на странично мени и се прикажува листа на вработени со опција за пребарување, додавање на нов вработен и менување на статус на акаунтот.
  • Се клика на копчето Додади Вработен горе десно(слика 2.1)
  • Се прикажува форма за внес (слика 2.2) со повеќе информации за вработениот, тие се: име, презиме, емаил адреса, телефон, лозинка, потврди лозинка, одговорен за (се избираат зони за кои е одговорен), работен статус на вработениот (работи, не работи, на боледување, на одмор) и состојба на акаунтот (активен/неактивен).
  • По внесување на информациите се кликнува на копчето "Создади Вработен" доле десно.
  • Вака се праќа POST барање на патеката /vraboten и барањето е пречекано од WorkerController и во барањето е ставено @RequestBody од AddUpdateWorker vraboten кој што е изграден од сите внесени информации од претходната форма.
  • Потоа се повикува функцијата addWorker од workerService и му се предаваат сите атрибути од vraboten објектот.
  • Во функцијата се врши проверка дали веќе постои таков вработен со истиот мејл, доколку не станува збор за тоа се проверуваат сите останати атрибути, се поставува статусот на вработениот, се поставува за кои зони е одговорен и се зачувува во workerRepository со функцијата save што го прима новосоздадениот вработен кој всушност се зачувува и во базата на податоци.
  • Потоа следи редиректирање повторно кон страната со листа на сите вработени (слика 2.3)
  • Доколку сака администраторот да го деактивира акаунтот се кликнува на зеленото копче "Активен" и ќе стане "Неактивен" со црвена боја и обратно, соодветно се појавува и нотификација за активноста што била направена од страна на администраторот (слика 2.4)
  • Ова во позадина се одвива на следниот начин: се праќа PUT барање на патеката /vraboten/{vrabotenId} со @PathVariable vrabotenId што го претставува ID на вработениот и ова барање се пречекува исто така од WorkerController и се повикува функцијата lockWorkerAcc(vrabotenId) од сервисниот слој workerService.
  • Во функцијата се прави toggle на статусот како што е наведено горе и пред тоа се прави проверка дали воопшто постои вработен со соодветниот ID.


ID 2
Случај на употреба Едитирање на веќе постоечки вработен
  • Првично потребно е администраторот да биде најавен во системот за да може да ги извршува овие привилегии.
  • Администраторот го кликнува редот од табелата од листата на вработени за соодветниот вработен за кој сака да го ажурира неговиот профил (слика 2.1)
  • Потоа се прикажува формата на вработениот со неговите податоци со кои е регистриран во системот (слика 2.2)
  • Администратор соодветно ги менува оние податоци за кои сака да му го ажурира профилот на вработениот и може оваа активност да ја откаже со клик на копчето "Врати се назад" доле лево или да ја потврди активноста со клик на копчето "Создади вработен"
  • По кликнување на копчето "Создади вработен" се праќа PUT барање на патеката /vraboten/{vrabotenId} каде што {vrabotenId} претставува @PathVariable и е ID на вработениот и ова барање се пречекува од WorkerController, а дополнително се праќа и @RequestBody AddUpdateWorker vraboten.
  • Потоа се повикува функцијата updateWorker од сервисниот слој workerService на кој како параметри се праќаат сите атрибути од vraboten.
  • Во функцијата се врши проверка дали веќе постои таков мејл кај некој друг вработен, доколку не станува збор за тоа се проверуваат сите останати атрибути, се поставува статусот на вработениот, се поставува за кои зони е одговорен и се зачувува во workerRepository со функцијата save што го прима ажурираниот вработен кој всушност се зачувува и во базата на податоци.
  • Соодветно пак ќе биде редиректиран кон листата на вработени (слика 2.1)


ID 3
Случај на употреба Додавање и ажурирање на паркинг зона

Attachments (39)

Note: See TracWiki for help on using the wiki.