== UseCaseImplementations == На следната табела се прикажани сработените кориснички сценарија: || '''ID''' || '''Use Case''' || || 1 || Се регистрира || || 2 || Разгледува почетна страна || || 1 || Се најавува || || 2 || Разгледува почетна страна || || 1 || Преглед на контролната табла || || 2 || Преглед на својот профил || || 3 || Пристап до дневниот предизвик || || 4 || Прегледува ранг листата || || 5 || Прегледува форум || || 6 || Пишува и постира на форумот || || 7 || Коментирање на дискусии || || 1 || Креира нов предизвик || || 2 || Отстранува предизвици од датабаза || || 3 || Отстранува објави || || 4 || Отстранува коментари || || 5 || Одобрува објави || || 6 || Одбива објави || === Нерегистриран Корисник === == Use Case ID: 1 – Се регистрира == [[Image(5.png,width=900, height=450)]][[BR]] **Корисникот притиснува „Register“ и најпрво се извршува основа валидација на формата на клиентска страна **[[BR]] [[Image(handleSubmit1.0.png)]][[BR]] [[Image(handleSubmit2.0.png)]][[BR]] **Потоа се повикува функција во „AuthContext“ која повикува помошна функција која испраќа POST барање до backend. Се врши повторна валидација на податоците, како и проверка дали постои корисник со внесените податоци. При успешен крај профилот на корисникот се зачувува во „state“ како и во „localStorage“,со цел побрзо ажурирање на податоци на клиентска страна **[[BR]] **Функцијата во „AuthContext“** [[Image(registerAuthContext.png)]][[BR]] **Помошна функција во „services/registerLoginService“**[[BR]] [[Image(registerUserService.png)]][[BR]] **Функцијата во контролерот**[[BR]] [[Image(registerPostController.png)]][[BR]] [[Image(registerPostController2.png)]][[BR]] [[Image(registerPostController3.png)]][[BR]] **Проверка на податоците внесени од корисникот се извршува и на backend во моделот „User“** [[Image(userValidate.png)]][[BR]] == Use Case ID: 2 – Разгледува почетна страна == [[Image(1.png)]][[BR]] **На почетната страна се проверува дали е најавен корисникот и во зависност од тоа се динамички се менува „Hero“ секцијата** [[BR]] [[Image(heroAuth.png)]] === Ненајавен корисник кој има профил === == Use Case ID: 1 – Се најавува == [[Image(6.png,width=900, height=550)]][[BR]] **Корисникот притиснува „Log in“ и слично како и при регистрација, се повикува „login“ функција во „AuthContext“, потоа помошна функција во „services/registerLoginService“ и на крај се испраќа POST барање до backend со кое се справува контролерот. При успешен крај податоците за корисникот се зачувуваат во „state“ на клиентска страна **[[BR]] [[Image(handleSubmitLogin.png)]][[BR]] **Функцијата во „AuthContext“ **[[BR]] [[Image(loginAuthContext.png)]][[BR]] **Помошна функција во „services/registerLoginService“**[[BR]] [[Image(loginService.png)]][[BR]] **Функцијата во контролерот**[[BR]] [[Image(loginController.png)]][[BR]] == Use Case ID: 2 – Разгледува почетна страна == [[Image(4.png)]] [[BR]] **На почетната страна се проверува дали е најавен корисникот и во зависност од тоа се динамички се менува „Hero“ секцијата** === Најавен корисник === == Use Case ID: 1 – Преглед на контролната табла == [[Image(Dashboard.png,width=900, height=450)]] == Use Case ID: 2 – Преглед на својот профил == [[Image(profile.png,width=900, height=450)]] == Use Case ID: 3 – Пристап до дневниот предизвик == [[Image(startedChallenge.png,width=900, height=450)]] [[BR]] **Корисникот внесува погрешен одговор** [[Image(wrongAnswer.png,width=900, height=450)]] [[BR]] **Корисникот внесува точен одговор** [[Image(correctAnswer.png,width=900, height=450)]] [[BR]] **Корисникот пристапува до предизвикот откако го решил** [[Image(alreadyCompleted.png,width=900, height=450)]] [[BR]] == Use Case ID: 4 – Прегледува ранг листата == [[Image(leaderboard.png,width=900, height=450)]] == Use Case ID: 5 – Прегледува форум == [[Image(forum.png,width=900, height=450)]] == Use Case ID: 6 – Пишува и постира на форумот == [[Image(12.png,width=900, height=450)]][[BR]] **Корисникот внесува несоодветна содржина** [[Image(inappropriate.png,width=900, height=450)]][[BR]] **Корисникот внесува соодветна содржина** [[Image(success.png,width=900, height=450)]][[BR]] **Корисникот внесува содржина со должина поголема од 200 карактери** [[Image(postTooLong.png,width=900, height=450)]][[BR]] **Системот проценил дека корисникот внесол несоодветна содржина три пати** [[Image(forApproval.png,width=900, height=450)]][[BR]] **Корисникот се согласува објавата да биде прегледана од модератор** [[Image(submittedForApproval.png,width=900, height=450)]][[BR]] == Use Case ID: 7 – Коментирање на дискусии == **Корисникот успешно објавува коментар** [[Image(writingComment.png,width=900, height=550)]][[BR]] [[Image(successComment.png,width=900, height=550)]][[BR]] === Модератор === == Use Case ID: 1 – Креира нов предизвик == **Модераторот пристапува до погледот за преглед на сите предизвици** [[Image(manageChallenges.png,width=900, height=450)]] **Модераторот успешно креира нов предизвик** [[Image(CreateNewChallenge1.0.png,width=900, height=450)]] [[Image(CreateNewChallenge2.0.png,width=900, height=450)]] [[Image(CreateNewChallenge3.0.png,width=900, height=450)]] [[Image(createChallengeSuccess.png,width=900, height=450)]] == Use Case ID: 2 – Отстранува предизвици од датабаза == **Модераторот успешно отстранува предизвик** [[Image(deleteChallenge.png,width=900, height=450)]] [[Image(deleteChallengeSuccess.png,width=900, height=450)]] == Use Case ID: 3 – Отстранува објави == **Модераторот успешно отстранува објава поради несоодветна содржина** [[Image(deletePost.png,width=900, height=450)]] [[Image(deletePostSuccess.png,width=900, height=450)]] == Use Case ID: 4 – Отстранува коментари == **Модераторот успешно отстранува коментар од објава поради несоодветна содржина** [[Image(deleteComment.png,width=900, height=450)]] [[Image(deleteCommentSuccess.png,width=900, height=450)]] == Use Case ID: 5 – Одобрува објави == **Модераторот пристапува до погледот за филтрирање на објави** [[Image(maangePosts.png,width=900, height=450)]][[BR]] **Модераторот успешно одобрува објава** [[Image(approvePost.png,width=900, height=450)]] [[Image(approvePostSuccess.png,width=900, height=450)]] == Use Case ID: 5 – Одбива објави== **Модераторот успешно одбива објава** [[Image(deletePost2.0.png,width=900, height=450)]] [[Image(deletePost2.0Success.png,width=900, height=450)]]