wiki:UseCaseImplementations

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

UseCasePrototypeImplementation

ID Use Case
1 Најава на корисник
2 Навигирање кон преглед на профил
3 Пополнување на форма со положени предмети и лични интереси
4 Преглед на резултати добиени од алгоритмот
5 Преглед, пребарување, филтрирање на сите предмети

ИД: 1 - Најава на корисник

При клик на копчето најави се, се испраќа POST барање до backend-от.

Се проверува дали постои таков корисник, доколку постои се враќа автентикациски токен.

Откога ќе се добие токенот, најавувањето се довршува на клиентската страна со повик на оваа функција којашто ги зачувува токените на корисникот.

ИД: 2 - Навигирање кон преглед на профил

Кога корисникот првпат ќе навигира кон преглед на профилот ќе се испрати GET барање за информациите на корисникот, потоа тоа се зачувува во React Context и веќе не се прават барања до сервер кога корисникот сака да го пристапи.

Во backend-от се повикува соодветниот serializer за да се форматираат овие информации во JSON формат.

ИД: 3 - Пополнување на форма со положени предмети и лични интереси

Кога корисникот првпат ја пополнува формата со клик на копчето „Зачувај“ се испраќа POST барање, додека во сите следни пополнувања текстот во истото копче ќе биде „Ажурирај“ и ќе биде испратено PATCH барање.

Пред да се испрати барањето, без разлика кое од претходно наведените, информациите коишто студентот внел прво се валидираат. Доколку има грешка (непополнети предуслови за предмет, задолжително поле оставено празно...), барањето не се прави, туку се прикажува соодветна порака за грешка.

На backend-от, прво се проверува дали корисникот има такви пермисии.

Потоа, доколку информациите се валидни, се зачувуваат во база.

ИД: 4 - Преглед на резултати добиени од алгоритмот

Откога студентот ќе го притисне копчето за да добие препораки се испраќа GET барање кое како дополнителни параметри има сезоната (season - 0: летна, 1: зимска, 2: двете) и дали студентот сака да му се прикажуваат неактивирани предмети (not_activated - 0: не прикажувај, 1: прикажувај).

Се наоѓа уникатен клуч за студентот според неговите преференци и параметрите на барањето, доколку постои таков клуч во кеш табелата и вредноста е валидна, кешираните препораки се враќаат на корисникот без никакви дополнителни пресметки. Доколку не постои се извршуваат сите пресметки и препорачаните предмети се кешираат користејќи го истиот уникатен клуч пред да се вратат кон клиентот. Клучот се зема преку повик на функција.

Доколку нема кеширани препораки истите треба да се пресметаат. Прво се филтрираат предметите според неколку критериуми.

Се мапира секој предмет од исфилтрираните во својот соодветен вектор.

Се прави вектор за студентот.

Се оценуваат сите атрибути.

Посебна функција за оценување на таговите.

Се множат сите резултати со одредени тежини и се враќаат најдобрите N резултати до клиентот.

ИД: 5 - Преглед, пребарување, филтрирање на сите предмети

No image "subjects.jpeg" attached to UseCaseImplementations

Доколку предметите не се земени од база, се испраќа GET барање и се зачувуваат во React Context и веќе не се прават барања до сервер кога корисникот сака да ги пристапи.

Логиката за филтрирање и пребарување на предметите.

Last modified 9 hours ago Last modified on 06/26/25 22:02:18

Attachments (31)

Note: See TracWiki for help on using the wiki.