Changes between Version 2 and Version 3 of UseCaseImplementations


Ignore:
Timestamp:
06/26/25 21:44:35 (10 hours ago)
Author:
231136
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementations

    v2 v3  
    3030== ИД: 2 - Навигирање кон преглед на профил
    3131
     32[[Image(profile.jpeg)]]
     33
    3234Кога корисникот првпат ќе навигира кон преглед на профилот ќе се испрати GET барање за информациите на корисникот, потоа тоа се зачувува во React Context и веќе не се прават барања до сервер кога корисникот сака да го пристапи.
    3335
     
    4143
    4244[[Image(form_serializer.jpeg)]]
     45
     46== ИД: 3 - Пополнување на форма со положени предмети и лични интереси
     47
     48[[Image(form4.jpeg)]]
     49
     50Кога корисникот првпат ја пополнува формата со клик на копчето „Зачувај“ се испраќа POST барање, додека во сите следни пополнувања текстот во истото копче ќе биде „Ажурирај“ и ќе биде испратено PATCH барање. Пред да се испрати барањето, без разлика кое од претходно наведените, информациите коишто студентот внел прво се валидираат. Доколку има грешка (непополнети предуслови за предмет, задолжително поле оставено празно...), барањето не се прави, туку се прикажува соодветна порака за грешка.
     51
     52[[Image(handle_form_submit.jpeg)]]
     53
     54[[Image(handle_form_submit2.jpeg)]]
     55
     56[[Image(validate_form.jpeg)]]
     57
     58На backend-от, прво се проверува дали корисникот има такви пермисии.
     59
     60[[Image(permissions.jpeg)]]
     61
     62Потоа, доколку информациите се валидни, се зачувуваат во база.
     63
     64[[Image(post_patch.jpeg)]]
     65
     66== ИД: 4 - Преглед на резултати добиени од алгоритмот
     67
     68[[Image(algo_new.jpeg)]]
     69
     70Откога студентот ќе го притисне копчето за да добие препораки се испраќа GET барање кое како дополнителни параметри има сезоната (season - 0: летна, 1: зимска, 2: двете) и дали студентот сака да му се прикажуваат неактивирани предмети (not_activated - 0: не прикажувај, 1: прикажувај).
     71
     72[[Image(fetch_rec.jpeg)]]
     73
     74[[Image(get_recommendations.jpeg)]]
     75
     76Се наоѓа уникатен клуч за студентот според неговите преференци и параметрите на барањето, доколку постои таков клуч во кеш табелата и вредноста е валидна, кешираните препораки се враќаат на корисникот без никакви дополнителни пресметки. Клучот се поставува на овој начин:
     77
     78[[Image(cache_key.jpeg)]]
     79
     80Доколку нема кеширани препораки истите треба да се пресметаат. Прво се филтрираат предметите според неколку критериуми.
     81
     82[[Image(get_eligible1.jpeg)]]
     83
     84[[Image(get_eligible2.jpeg)]]
     85
     86Се мапира секој предмет од исфилтрираните во својот соодветен вектор.
     87
     88[[Image(map_to_sub_vector.jpeg)]]
     89
     90Се прави вектор за студентот.
     91
     92[[Image(student_vector.jpeg)]]
     93
     94Се оценуваат сите атрибути.
     95
     96[[Image(score.jpeg)]]
     97
     98Посебна функција за оценување на таговите.
     99
     100[[Image(score_tags.jpeg)]]
     101
     102Се множат сите резултати со одредени тежини и се враќаат најдобрите N резултати до клиент. Пред да се испратат се генерира клуч со истата функција како претходно и истите се кешираат.
     103
     104[[Image(recommendations_final.jpeg)]]
     105
     106
     107
     108
     109
     110