Changes between Version 9 and Version 10 of UseCaseImplementationsFinal


Ignore:
Timestamp:
08/23/25 22:15:08 (8 days ago)
Author:
231017
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementationsFinal

    v9 v10  
    1111== Use Case ID: 1 – Се најавува со Google профил ==
    1212[[Image(google_login.png)]][[BR]]
    13 Корисникот притиска на копчето за најва со Google и се испраќа get барање до backend.[[BR]]
     13Корисникот притиска на копчето за најава со Google и се испраќа get барање до backend.[[BR]]
    1414
    1515**Функцијата на клиентска страна**[[BR]]
    1616[[Image(google_login_client.png)]][[BR]]
    1717
    18 **Помошна функција во registerLoginService**[[BR]]
     18**Помошна функција во „services/registerLoginService“**[[BR]]
    1919[[Image(google_login_axios.png)]][[BR]]
    2020Барањето е обработено од серверот со тоа што корисникот најпрво е пренасочен кон Google страницата за најава, каде корисникот го избира својот профил. Потоа Google испраќа get барање до наведениот url (http://localhost:5001/api/auth/google/callback) со специјален код во url-от. Преку овој код функцијата passport.authenticate(...) прави барање до Google, со што го добива профилот на корисникот.[[BR]]
     
    2222Потоа се извршува callback функцијата дефинирана со passport Google strategy, каде најпрво се проверува дали постои профил со конкретната email адреса, а доколку не постои се креира нов профил.[[BR]]
    2323[[Image(passportjs.png,width=900, height=500)]][[BR]]
    24 На крај, се генерира supabase magic link, со кој се комплетира најавата, настанува SIGNED_IN event и се воспоставува сесија, а корисникот е пренасочен кон контролната табла.[[BR]]
     24На крај, се генерира supabase magic link, со кој се комплетира најавата, се тригерира SIGNED_IN event и се воспоставува сесија, а корисникот е пренасочен кон контролната табла.[[BR]]
    2525
    2626== Use Case ID: 2 – Пребарува и филтрира форум ==
     
    4040При промена на некој од филтрите се ажурира соодветното поле во објектот filters. Потоа корисникот притиска Apply Filters и се извршува функцијата applyFilters каде се ажурираат forumSearchParams, а тоа предизвикува повикување на fetchPosts функцијата преку која се испраќа get барање до backend.[[BR]]
    4141
    42 **Помошна функција во forumService**[[BR]]
     42**Помошна функција во „services/forumService“**[[BR]]
    4343[[Image(forumservice.png)]][[BR]]
    4444Барањето најпрво е обработено од forumService, каде се составува соодветен url и барањето се проследува до backend.[[BR]]
     
    4747[[Image(getforumposts2.png)]][[BR]]
    4848[[Image(getforumposts3.png)]][[BR]]
    49 Потоа барањето се обработува од функцијата getForumPosts во контролерот, каде според соодветните query параметри се испраќа барање до базата. Доколку корисникот внесол соодветни филтри, објавите најпрво се рангираат според функција која ги приоритизира поновите објави, но во предвид се зема и бројот на коментари, па дококлу некоја објава била „попопуларна“ ќе биде повисоко рангирана. Со тоа се воведува мала динамика на форумот.[[BR]]
     49Потоа барањето се обработува од функцијата getForumPosts во контролерот, каде според соодветните query параметри се испраќа барање до базата. Доколку корисникот внесол соодветни филтри, објавите најпрво се рангираат според функција која ги приоритизира поновите објави, но во предвид се зема и бројот на коментари, па доколку некоја објава била „попопуларна“ ќе биде повисоко рангирана. Со тоа се воведува мала динамика на форумот.[[BR]]
    5050**Функцијата scorePosts во контролерот**[[BR]]
    5151[[Image(scoreposts.png)]][[BR]]
     
    5757**Функцијата на клиентска страна**[[BR]]
    5858[[Image(client1.2.png)]][[BR]]
    59 **Помошна функција во reviewService**[[BR]]
     59**Помошна функција во „services/reviewService“**[[BR]]
    6060[[Image(reviewservice.png)]][[BR]]
    6161**Функцијата во контролерот**[[BR]]
     
    6464**Функцијата на клиентска страна**[[BR]]
    6565[[Image(delreview1.png)]][[BR]]
    66 **Помошна функција во reviewService**[[BR]]
     66**Помошна функција во „services/reviewService“**[[BR]]
    6767[[Image(delreviewservice.png)]][[BR]]
    6868**Функцијата во контролерот**[[BR]]
     
    7676[[Image(handleapprovepostclient.png)]][[BR]]
    7777
    78 **Помошна функција во reviewService **[[BR]]
     78**Помошна функција во „services/reviewService“**[[BR]]
    7979[[Image(approvereviewpostservice.png)]][[BR]]
    8080
     
    8383[[Image(approvereviewpostcontroller2.png)]][[BR]]
    8484
    85 **Функцијата sendApprovalEmail во emailService**[[BR]]
     85**Функцијата sendApprovalEmail во „services/emailService“**[[BR]]
    8686[[Image(sendApprovalEmail.png)]][[BR]]
    8787
    88 Најпосле кориснкиот добива email дека неговата објава била одобрена.[[BR]]
     88Најпосле корисникот добива email дека неговата објава била одобрена.[[BR]]
    8989[[Image(primerEmail.png)]][[BR]]
    9090**Текот на настани е многу сличен и кога се одбива објава од страна на модераторот**[[BR]]
    9191
    9292== Use Case ID: 5 – Модератор добива email известувања ==
    93 Со помош на PM2 и node-schedule, процесот за проверка и испраќање email доколку има објави на тема дневен предизвик, кои чекаат одобрување, се извршува на секој час. Доколку постојат вакви објави преку функцијата sendHourlyReviewNotification во emailService, се испраќа известување до секој модератор. Слично на тоа, секој ден во 7 часот наутро се проверува дали има објави (од двете теми) кои чекаат одобрување повеќе од 24 часа. Доколку постојат вакви објави преку функцијата sendModeratorEmail во emailService, се испраќа известување до секој модератор.[[BR]]
     93Со помош на PM2 и node-schedule, процесот за проверка и испраќање email доколку има објави на тема дневен предизвик, кои чекаат одобрување, се извршува на секој час. Доколку постојат вакви објави преку функцијата sendHourlyReviewNotification во emailService, се испраќа известување до сите модератори. Слично на тоа, секој ден во 7 часот наутро се проверува дали има објави (од двете теми) кои чекаат одобрување повеќе од 24 часа. Доколку постојат вакви објави преку функцијата sendModeratorEmail во emailService, се испраќа известување до сите модератори.[[BR]]
    9494**Функцијата со која се проверува дали има објави за дневен предизвик**[[BR]]
    9595[[Image(hourlycheck.png)]][[BR]]
    9696[[Image(hourlycheck2.png)]][[BR]]
    97 **Функцијата sendHourlyReviewNotification во emailService**[[BR]]
     97**Функцијата sendHourlyReviewNotification во „services/emailService“**[[BR]]
    9898[[Image(sendhourlymail.png)]][[BR]]
    9999**Функцијата со која се проверува дали има објави постари од 24 часа**[[BR]]
    100100[[Image(at7ammailcheck1F.png)]][[BR]]
    101101[[Image(at7ammailcheck2.png)]][[BR]]
    102 **Функцијата sendModeratorEmail во emailService**[[BR]]
     102**Функцијата sendModeratorEmail во „services/emailService“**[[BR]]
    103103[[Image(7ammail.png)]][[BR]]