= Имплементација на случаите на употреба ---- ** Преглед на Model класите ** [[Image(Screenshot_20230122_072453.png, width=100%)]] ---- == Регуларен корисник === Ги прелистува секциите за дискусија Текот на податоци откако корисникот ќе внесе 4 знаци во полето за пребарување на професори и предмети. \\ [[Image(prelistuva1.png, width=100%)]] ---- Истиот тек го следат повеќето делови од апликацијата. На пример, приказот на сите теми за даден предмет откако корисникот ќе се најде на страницата /subject/[subjectId], го спроведува компонентата Topic.js на сличен начин како погоре. \\ [[Image(prelistuva2.png, width=100%)]] === Корисничка регистрација Главниот дел од логиката за корисничка регистрација се содржи во register методата од Service.RegistrationService која се одзива на повик од Controller.RegistrationController и која прима податоци за новата корисничка сметка што треба да ја креира. \\ Истата зависи од неколку сервис класи кои содржат методи за валидација на примените податоци, како и од repository слојот. Вторава зависност е да се провери дали во базата постои корисник со ист e-mail (уникатна колона во случајов) и ако постои, дали сметката му е активирана. Во случајот да постои и да е активирана, се враќа исклучок со порака што се пропагира до view слојот. Во спротивно, се инстанцира и перзистира во база објект од класата ConfirmationToken, со чиешто уникатно поле се гради линк за активација на сметката. Со помош на трета зависност - EmailSender класата (која повикува методи од JavaMail API) се испраќа линкот до активација, кој води до GET повик на кој се одзива confirm методот од Controller.RegistrationController, чијашто задача е да провери дали во базата постои токенот кој го добива како параметар. Доколку постои и е важечки (генериран пред доволно краток временски период), методот ја овозможува сметката и тоа го соопштува на view слојот со враќање на стрингот „Confirmed“. [[Image(registracija1.png, width=100%)]] === Корисничка најава === Додава мислење во секција за дискусија === Оценува туѓо мислење === Коментира туѓо мислење === Пријавува туѓо мислење === Го уредува својот кориснички профил === Го верификува својот кориснички профил == Модератор === Прегледува пријави за содржината === Изменува или брише напишана содржина