wiki:UseCasePrototypeImplementation

Version 34 (modified by 216151, 15 months ago) ( diff )

--

Прототип имплементација на случаите на употреба


Изворен код


Случаи на употреба кои се имплементирани до оваа фаза

IDИме
1прелистување на секции за дискусија
2корисничка најава
3корисничка регистрација (делумно)
4додавање мислење во секција за дискусија
5оценување туѓо мислење
6коментирање туѓо мислење

Прелистување секции за дискусија (1)

За секој професор во базата постои соодветна секција за дискусија во која се содржани мислењата поврзани за него/неа. При отворање на страницата тие се преземаат со позадински повик (неавтентициран), а хиерархијата на коментари се прикажува со рекурзивно изминување на вратените податоци. Доколку има најавен корисник, се прикажуваат и опции за објавување ново мислење, како и давање реплика, правење upvote или downvote на постоечко мислење, реализирани со соодветни повици, пр. "GET /secure/professor/[professorId]/upvoteOpinion/[opinionId]".

Заради олеснета навигација помеѓу секциите за дискусија апликацијата содржи функционалност за пребарување.

Корисничка регистрација (3)

Во оваа фаза за регистрацијата на корисник нема интерфејс, но може да се изврши со POST повик до позадински сервис. Пример за валиден повик:

По овој чекор корисникот е внесен во базата, но неговата сметка сè уште не е активирана (има знаменце enabled==false) и не може да се најави. За таа цел, со помош на библиотеката Java Mail се испраќа email до наведената адреса со линк што содржи уникатен токен за потврда со ограничено времетраење. Линкот води до GET повик до позадината (/registration/confirm?token=[TOKEN]) кој ја активира сметката.

Корисничка најава (2)

Најавата се врши преку кориснички интерфејс, со POST повик до сервисот за најава.

Апликацијата користи автентикација со помош на колачиња. Доколку корисничкото име и лозинката се валидни, сервисот за најава му враќа на клиентот променлива (JSESSIONID), која вториот ја зачувува како колаче во прелистувачот и ја користи за сите понатамошни повици до други сервиси, сè додека корисникот не се одјави и колачето не се избрише.

Колачето не се користи само за backend сервиси кои бараат автентикација, туку и за контрола на погледот во самиот клиент. Имено, многу UI компоненти се ограничени (се целосно скриени или видоизменети) зависно од глобална променлива „auth“ која се поставува на true доколку колачето е вчитано.

По најавата, корисникот е редиректиран на својот dashboard, каде има преглед на својата активност, како и на неговите основни податоци (треба да може да менува некои од нив, неимплементирано). Полето „Карма“ е разлика на вкупниот број добиени upvotes и downvotes од сите објавени мислења на корисникот.

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.