Version 4 (modified by 8 days ago) ( diff ) | ,
---|
Финална имплементација на случаи на употреба
На следната табела се прикажани сработените дополнителни кориснички сценарија:
ID | Use Case |
1 | Се најавува со Google профил |
2 | Пребарува и филтрира форум |
3 | Добива email известувања |
Use Case ID: 1 – Се најавува со Google профил
Корисникот притиска на копчето за најва со Google и се испраќа get барање до backend.
Барањето е обработено од серверот со тоа што корисникот најпрво е пренасочен кон Google страницата за најава, каде корисникот го избира својот профил. Потоа Google испраќа get барање до наведениот url (http://localhost:5001/api/auth/google/callback) со специјален код во url-от. Преку овој код функцијата passport.authenticate(...) прави барање до Google, со што го добива профилот на корисникот.
Потоа се извршува callback функцијата дефинирана со passport Google strategy, каде најпрво се проверува дали постои профил со конкретната email адреса, а доколку не постои се креира нов профил.
На крај, се генерира supabase magic link, со кој се комплетира најавата, настанува SIGNED_IN event и се воспоставува сесија, а корисникот е пренасочен кон контролната табла.
Use Case ID: 2 – Пребарува и филтрира форум
Корисникот има можност да пребарува објави на форумот според наслов, содржина и за кој дневен предизвик се однесува објавата. Исто така има можност и да го филтрира форумот според тема, односно дали објавата е за општа програмерска тема или за дневен предизвик, потоа според објави објавени изминатата недела, месец или година, според број на коментари и според специфичен датум на објава. Изборот на тема го прави корисникот кога ја креира објавата со тоа што има можност да бира помеѓу општа програмерска тема или конкретен дневен предизвик.
При промена на некој од филтрите се ажурира соодветното поле во објектот filters. Потоа корисникот притиска Apply Filters и се извршува функцијата applyFilters каде се ажурираат forumSearchParams, а тоа предизвикува повикување на fetchPosts функцијата преку која се испраќа get барање до backend.
Барањето најпрво е обработено од forum service, каде се составува соодветен url и барањето се проследува до backend.
Потоа барањето се обработува од функцијата getForumPosts во контролерот, каде според соодветните query параметри се испраќа барање до базата. Доколку корисникот внесол соодветни филтри, објавите најпрво се рангираат според функција која ги приоритизира поновите објави, но во предвид се зема и бројот на коментари, па дококлу некоја објава била „попопуларна“ ќе биде повисоко рангирана. Со тоа се воведува мала динамика на форумот.
Attachments (37)
- auth_router.png (32.2 KB ) - added by 8 days ago.
- google_login_axios.png (4.2 KB ) - added by 8 days ago.
- google_login_client.png (3.6 KB ) - added by 8 days ago.
- passportjs.png (60.8 KB ) - added by 8 days ago.
- google_login.png (17.7 KB ) - added by 8 days ago.
- 1.png (54.6 KB ) - added by 8 days ago.
- 2.png (22.2 KB ) - added by 8 days ago.
- client1.png (21.5 KB ) - added by 8 days ago.
- client2.png (11.6 KB ) - added by 8 days ago.
- client3.png (39.7 KB ) - added by 8 days ago.
- forumservice.png (39.3 KB ) - added by 8 days ago.
- getforumposts1.png (35.6 KB ) - added by 8 days ago.
- getforumposts2.png (33.3 KB ) - added by 8 days ago.
- getforumposts3.png (22.0 KB ) - added by 8 days ago.
- scoreposts.png (12.5 KB ) - added by 8 days ago.
- client1.2.png (6.2 KB ) - added by 8 days ago.
- sc1.png (15.9 KB ) - added by 8 days ago.
- delreview1.png (22.3 KB ) - added by 8 days ago.
- delreviewservice.png (4.4 KB ) - added by 8 days ago.
- reviewservice.png (3.5 KB ) - added by 8 days ago.
- delreviewcontroller.png (34.2 KB ) - added by 8 days ago.
- getpendingposts.png (18.7 KB ) - added by 8 days ago.
- approvereviewpostcontroller1.png (46.3 KB ) - added by 8 days ago.
- approvereviewpostcontroller2.png (17.7 KB ) - added by 8 days ago.
- approvereviewpostservice.png (5.7 KB ) - added by 8 days ago.
- handleapprovepostclient.png (25.7 KB ) - added by 8 days ago.
- primerEmail.png (16.6 KB ) - added by 8 days ago.
- sendApprovalEmail.png (25.7 KB ) - added by 8 days ago.
- moderatorpanel.png (26.7 KB ) - added by 8 days ago.
- vtordel.png (15.5 KB ) - added by 8 days ago.
- 7ammail.png (42.2 KB ) - added by 8 days ago.
- at7ammailcheck1.png (41.1 KB ) - added by 8 days ago.
- at7ammailcheck2.png (45.3 KB ) - added by 8 days ago.
- hourlycheck.png (46.8 KB ) - added by 8 days ago.
- hourlycheck2.png (55.3 KB ) - added by 8 days ago.
- sendhourlymail.png (39.6 KB ) - added by 8 days ago.
- at7ammailcheck1F.png (41.6 KB ) - added by 8 days ago.
Download all attachments as: .zip