Changes between Version 5 and Version 6 of UseCaseImplementationsFinal


Ignore:
Timestamp:
08/23/25 20:58:51 (8 days ago)
Author:
231017
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementationsFinal

    v5 v6  
    55|| 1 || Се најавува со Google профил ||
    66|| 2 || Пребарува и филтрира форум ||
    7 || 3 || Добива email известувања ||
     7|| 3 || Преглед на објави кои чекаат одобрување од модератор ||
     8|| 4 || Добива email известувања ||
    89
    910== Use Case ID: 1 – Се најавува со Google профил ==
    1011[[Image(google_login.png)]][[BR]]
    1112Корисникот притиска на копчето за најва со Google и се испраќа get барање до backend.
     13**Функцијата на клиентска страна**[[BR]]
    1214[[Image(google_login_client.png)]][[BR]]
     15**Помошна функција во registerLoginService**[[BR]]
    1316[[Image(google_login_axios.png)]][[BR]]
    1417Барањето е обработено од серверот со тоа што корисникот најпрво е пренасочен кон Google страницата за најава, каде корисникот го избира својот профил. Потоа Google испраќа get барање до наведениот url (http://localhost:5001/api/auth/google/callback) со специјален код во url-от. Преку овој код функцијата passport.authenticate(...) прави барање до Google, со што го добива профилот на корисникот.
     
    2225[[Image(2.png)]][[BR]]
    2326Корисникот има можност да пребарува објави на форумот според наслов, содржина и за кој дневен предизвик се однесува објавата. Исто така има можност и да го филтрира форумот според тема, односно дали објавата е за општа програмерска тема или за дневен предизвик, потоа според објави објавени изминатата недела, месец или година, според број на коментари и според специфичен датум на објава. Изборот на тема го прави корисникот кога ја креира објавата со тоа што има можност да бира помеѓу општа програмерска тема или конкретен дневен предизвик.[[BR]]
     27**Промена на филтер**[[BR]]
    2428[[Image(client1.png)]][[BR]]
     29**Функцијата applyFilters на клиентска страна**[[BR]]
    2530[[Image(client2.png)]][[BR]]
     31**Функцијата fetchPosts на клиентска страна**[[BR]]
    2632[[Image(client3.png)]][[BR]]
    2733При промена на некој од филтрите се ажурира соодветното поле во објектот filters. Потоа корисникот притиска Apply Filters и се извршува функцијата applyFilters каде се ажурираат forumSearchParams, а тоа предизвикува повикување на fetchPosts функцијата преку која се испраќа get барање до backend.[[BR]]
     34**Помошна функција во forum service**[[BR]]
    2835[[Image(forumservice.png)]][[BR]]
    2936Барањето најпрво е обработено од forum service, каде се составува соодветен url и барањето се проследува до backend.[[BR]]
     37**Функцијата getforumposts во контролерот**[[BR]]
    3038[[Image(getforumposts1.png)]][[BR]]
    3139[[Image(getforumposts2.png)]][[BR]]
    3240[[Image(getforumposts3.png)]][[BR]]
    3341Потоа барањето се обработува од функцијата getForumPosts во контролерот, каде според соодветните query параметри се испраќа барање до базата. Доколку корисникот внесол соодветни филтри, објавите најпрво се рангираат според функција која ги приоритизира поновите објави, но во предвид се зема и бројот на коментари, па дококлу некоја објава била „попопуларна“ ќе биде повисоко рангирана. Со тоа се воведува мала динамика на форумот.[[BR]]
     42**Функцијата scorePosts во контролерот**[[BR]]
    3443[[Image(scoreposts.png)]][[BR]]
    3544 
     45
     46== Use Case ID: 3 – Преглед на објави кои чекаат одобрување од модератор ==
     47[[Image(sc1.png)]][[BR]]
     48Корисникот пристапува до Pending панелот каде има преглед на објавите кои чекаат одобрување од модератор. Кога корисникот ќе пристапи до панелот најпрво се повикува функцијата fetchPendingPosts која испраќа get барање до backend. Барањето најпрво се обработува од review service, од каде се проследува до backend и е обработено од функцијата getPendingPosts во контролерот.[[BR]]
     49**Функцијата на клиентска страна**[[BR]]
     50[[Image(client1.png)]][[BR]]
     51**Помошна функција во review service**[[BR]]
     52[[Image(reviewservice.png)]][[BR]]
     53**Функцијата во контролерот**[[BR]]
     54[[Image(getpendingposts.png)]][[BR]]
     55Исто така корисникот има можност и да го избрише барањето за одобрување на објавата со тоа што притиска на Remove Post. Потоа доколку се согласи, се повикува функцијата confirmRemoval преку која се испраќа get барање до backend. Барањето најпрво се обработува од review service, од каде се проследува до backend и е обработено од функцијата deleteReviewPost во контролерот.
     56**Функцијата на клиентска страна**[[BR]]
     57[[Image(delreview1.png)]][[BR]]
     58**Помошна функција во review service**[[BR]]
     59[[Image(delreviewservice.png)]][[BR]]
     60**Функцијата во контролерот**[[BR]]
     61[[Image(delreviewcontroller.png)]][[BR]]