Use Case Realizations
Сите
Login | Корисникот ја пристапува home страницата на сајтот. Има опции да се регистрира или да внесе корисничко име и лозинка. По внесување на неговите податоци, избира каков корисник е од User, Company и Team (во овој случај User). На фронтенд се се праќаат податоци до бекендот преку форма. При примање на податоците, бекендот го проверува корисникот во датабазата преку AccountService класата која на пониско ниво комуницира со AccountRepository при што се разграничува според изборот на тоа каков корисник се логира. По успешно наоѓање на корисникот во базата, соодветно се испраќаат корисничките информации до фронтендот преку Data Transfer Object, при добивање на успешни податоци на фронтендот корисникот се редиректира до страницата за поглед на профилот. Доколку не постои таков корисник соодветно е испратена порака за непостоечки корисник. Со ова завршува најавата на корисникот што е имплементирана на ист начин за било кој тип на корисник. По успешната најава корисникот се наоѓа на страницата за поглед на сопствените податоци.
|
Студент
ID | Use Case Realization
|
1 | Пребарува пракса/работа/проект според клучен збор По успешна најава User тип на корисник има опција во навигацискиот бар да пребарува работа/пракса/проект според клучен збор. Ова се одвива на тој начин што корисникот внесува некој клучен збор на фронтенд и избира каков тип на работа бара. Ова се одвива преку форма, која постира на бекендот на патека /api/search и соодветно /job, /internship или /project. Ова се одвива преку SearchControllerot кој комуницира со WorkService преку функцијата за full-text search која е различна за сите типови на работа, соодветно во функцијата се креираат филтрирани листи преку итерации на сите работи кој содржат вештина или дескрипција/име ист на текстот кој е внесен како параметар во пребарувањето. По итерациите се враќа листа на одредени работи кој одговараат на критериумот, при што истите се испраќаат на фронтенд каде соодветно се додаваат во состојбата на реакт компонентата која врши real-time refresh на клиентот и ги листа резултатите од пребарувањето.
|
2-3 | Ажурира лични податоци / Ажурира вештини кој ги поседува или сака да ги стекне По најавата, корисникот може да одбере да ги смени својте лични податоци. По кликање на копчето Edit на фронтендот корисникот е редиректиран во рамките на фронтендот, на посебна форма во која може да ги внесе промените кој сака да ги направи на својот профил. По внесување на соодветните промени и кликање на копчето Confirm се праќа Post request на бекендот кој го прима патеката /api/edit/account и /user/{userid}/{userEmail}, ова се разликува за различните типови на корисници. По пристап на оваа патека, бекендот ги зема податоците за корисникот како и неговиот id и email потоа враќа optional доколку тој email постои, креира две листи од вештини кој се земаат од база врз основа на нивните id-a кој се праќаат од корисникот како List<Long> потоа се повикува AccountService функцијата editUser која ги прима сите нови вредности како параметри. Оваа функција проверува дали постои тој email, доколку постои се фрла exception кој е хендлан така што на фронтендот му праќа објект со ерор и е презентиран во формата за едит на податоци. Доколку новиот e-mail помине се гради UserResponseDTO Кој ги праќа новите податоци до фронтендот и корисникот се редиректира назад на профилот на фронтендот.
|
Компанија
ID | Use Case Realization
|
4 | Објавува работа/пракса за која се потребни одредени вештини По најава како компанија, која се одвива исто како за секој корисник, компанијата може да одбере да регистрира работа или пракса. По избор на тоа што сака да регистрира, е редиректирана на соодветната страна на фронтендот, која содржи форма во која треба да се пополнат податоците за соодветно работата или праксата. По пополнувањето се клика на копче за Confirm при што се праќаат податоците до бекендот преку формата на патека /api/register/work и соодветно /job или /internship. По прифаќање на податоците бекендот проверува дали корисникот кој ја постирал работата има привилегии да го направи тоа. Доколку има се креира нова работа и се додава во базата преку WorkService сервисот. При регистрација на било каква работа MatchmakerService сервисот одново ги мечува сите корисници со ново внесените работи, пракси или проекти и ги зачувува коефициентите во базата. По завршување на сето ова на компанија корисникот му се враќа ново внесената работа како објект на фронтендот. Од таму оваа работа се додава во листата на сите работи на тој корисник, се редиректира до работите и се прикажува новата листа. Иста е постапката и за internship.
|
5 | Ажурира податоци за веќе објавена работа/пракса Ова се одвива преку истата форма за креирање на работа/пракса само разликата е што се постира на различна патека, во овој случај /api/edit/work и /job/{id} или /internship/{id}. Доколку се внесени валидни информации, и корисникот кој го праќа барањето за едит е корисникот кој ја регистрирал таа работа, тогаш се пристапува до функцијата editJob или editInternship кој соодветно пристапуваат до базата и ги презапишуваат податоците.
|
6 | Ажурира податоци за компанијата Ова се одвива на ист начин како кај корисникот само се разгранува во соодветните функции кој се однесуваат за компаниите во бекендот.
|
Тим
ID | Use Case Realization
|
7 | Објавува проекти/работа за која се потребни одредени вештини Ист начин како кај компанијата само место internship тимовите објавуваат project. И се пристапува до соодветните endpoints.
|
8 | Ажурира податоци за веќе објавени проект/работа Ист начин како кај компанијата.
|
9 | Ажурира податоци за тимот И ова е исто како и во претходните случаи само се пристапува до team endpoint кој ги повикува соодветните сервиси.
|
Систем
Ги прикажува сите огласи на фирмите/тимовите кога ќе се најават | При најава компаниите и тимовите имаат табови да изберат поглед кој Jobs/Internships/Projects соодветно, при чие кликање се редиректираат на фронтендот во нов поглед кој ги листа резултатите кој се добиени од бекенд при најавата за соодветните регистрирани работи чие accountId е еднакво на id-to на моментално најавениот корисник. Ова се случува на фронтенд и нема екстра повици до бекендот, освен иницијалниот при најава.
|
Нуди релевантна работа или пракса на студентите при најава | При најава на User корисник системот ги зема сите мечувани податоци од базата и ги праќа како листа на најавениот корисник и ги прикажува во соодветните табови на веб апликацијата.
|
Note:
See
TracWiki
for help on using the wiki.