Version 10 (modified by 5 days ago) ( diff ) | ,
---|
Имплементација на случаи на употреба
ID | Use Case |
1 | Најава на корисник |
2 | Навигирање кон преглед на профил |
3 | Пополнување на форма со положени предмети и лични интереси |
4 | Преглед на резултати добиени од алгоритмот |
5 | Преглед, пребарување, филтрирање на сите предмети |
6 | Регистрација на корисник |
7 | Додавање на предмет во омилени |
8 | Оставање на оценка на препорачан предмет |
9 | Преглед на мои предмети |
ИД: 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 - Преглед, пребарување, филтрирање на сите предмети
Доколку предметите не се земени од база, се испраќа GET барање и се зачувуваат во React Context и веќе не се прават барања до сервер кога корисникот сака да ги пристапи.
Логиката за филтрирање и пребарување на предметите.
ИД: 6 - Регистрација на корисник
При клик на копчето најави се, се испраќа POST барање до backend-от. Доколку успешно, корисникот е веднаш логиран на својот нов профил.
Се валидираат информациите внесени од корисникот. Доколку нема проблем со испратените информации се создава корисникот и се враќа инстанца од истиот, заедно со дополнителни токени за автентикација.
ИД: 7 - Додавање на предмет во омилени
Со клик на срцето се испраќа POST барање за тргање или додавање на предметот во листата на омилени.
Во backend-от истата функција се користи за справување со барања за додавање во омилени, позитивна оценка и негативна оценка. Се користат параметри во барањето за да може да се преземе соодветната акција.
ИД: 8 - Оставање на оценка на препорачан предмет
Со клик на копчето лајк се испраќа POST барање за додавање на предметот во листата на позитивни оценки. Доколку предметот претходно бил во листата на негативни оценки се испраќа и барање за истиот да се тргне од таа листа.
Истото важи и за негативните оценки.
На backend-от се повикува истата функција како и за додавање во омилени (види ИД 7 - слика 2)
ИД: 9 - Преглед на мои предмети
Кога корисникот првпат ќе навигира кон „Мои предмети“ ќе се испрати GET барање за неговите предмети, потоа тоа се зачувува во React Context и веќе не се прават барања до сервер кога корисникот сака да го пристапи.
Attachments (45)
- fetch_form_def.jpeg (38.6 KB ) - added by 10 days ago.
- fetch_form.jpeg (19.5 KB ) - added by 10 days ago.
- form_get.jpeg (12.4 KB ) - added by 10 days ago.
- form_serializer.jpeg (49.7 KB ) - added by 10 days ago.
- handle_login.jpeg (92.4 KB ) - added by 10 days ago.
- login_function.jpeg (30.5 KB ) - added by 10 days ago.
- login_serializer.jpeg (22.2 KB ) - added by 10 days ago.
- login_url.jpeg (13.6 KB ) - added by 10 days ago.
- login.jpeg (61.6 KB ) - added by 10 days ago.
- profile.jpeg (102.4 KB ) - added by 10 days ago.
- cache_key.jpeg (31.9 KB ) - added by 10 days ago.
- algo_new.jpeg (78.8 KB ) - added by 10 days ago.
- fetch_rec.jpeg (55.2 KB ) - added by 10 days ago.
- get_eligible1.jpeg (151.7 KB ) - added by 10 days ago.
- get_eligible2.jpeg (119.7 KB ) - added by 10 days ago.
- get_recommendations.jpeg (137.3 KB ) - added by 10 days ago.
- handle_form_submit.jpeg (76.4 KB ) - added by 10 days ago.
- handle_form_submit2.jpeg (106.6 KB ) - added by 10 days ago.
- map_to_sub_vector.jpeg (83.3 KB ) - added by 10 days ago.
- permissions.jpeg (24.7 KB ) - added by 10 days ago.
- post_patch.jpeg (129.6 KB ) - added by 10 days ago.
- score_tags.jpeg (124.9 KB ) - added by 10 days ago.
- score.jpeg (141.9 KB ) - added by 10 days ago.
- validate_form.jpeg (114.5 KB ) - added by 10 days ago.
- student_vector.jpeg (78.1 KB ) - added by 10 days ago.
- recommendations_final.jpeg (50.8 KB ) - added by 10 days ago.
- form4.jpeg (112.7 KB ) - added by 10 days ago.
- fetch_subjects_hook.jpeg (13.8 KB ) - added by 10 days ago.
- fetch_subjects.jpeg (34.5 KB ) - added by 10 days ago.
- filter1.jpeg (117.2 KB ) - added by 10 days ago.
- filter2.jpeg (114.9 KB ) - added by 10 days ago.
- subjects.jpeg (138.8 KB ) - added by 9 days ago.
- fetch_pref.jpeg (107.5 KB ) - added by 5 days ago.
- handle_dislike.jpeg (112.0 KB ) - added by 5 days ago.
- handle_like.jpeg (114.4 KB ) - added by 5 days ago.
- handle_register.jpeg (140.2 KB ) - added by 5 days ago.
- pref_view.jpeg (68.6 KB ) - added by 5 days ago.
- reg_serializer.jpeg (103.9 KB ) - added by 5 days ago.
- register_view.jpeg (57.5 KB ) - added by 5 days ago.
- toggle_fave.jpeg (77.3 KB ) - added by 5 days ago.
- toggle_pref.jpeg (172.0 KB ) - added by 5 days ago.
- my_fave.jpeg (89.8 KB ) - added by 5 days ago.
- register.jpeg (59.2 KB ) - added by 5 days ago.
- liked_disliked.jpeg (110.4 KB ) - added by 5 days ago.
- heart.jpeg (13.5 KB ) - added by 5 days ago.