Changes between Initial Version and Version 1 of UCB


Ignore:
Timestamp:
09/15/26 02:45:56 (2 weeks ago)
Author:
201165
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UCB

    v1 v1  
     1= UseCaseB - Администратор
     2
     3=== UseCaseB01 – Додавање состојка во каталогот
     4* Актер кој го иницира: Администратор
     5* Други актери: Нема
     6**Опис:** Администраторот го одржува централниот каталог на прехранбени производи. Новата состојка се додава со нејзината енергетска вредност и нутритивен состав на 100 g, со цел пресметките на рецептите на сите корисници да можат да ги користат овие податоци.
     7
     8* Администраторот ја избира опцијата „Додај состојка“.
     9* Системот прикажува форма со следните полиња:
     101. Име
     112. Опис
     123. Енергетска вредност (kJ на 100 g)
     134. Kcal (на 100 g)
     145. Тип (млечни производи, месо, риба, јаглехидрати, зеленчук, …)
     156. Нутритивен состав на 100 g
     16
     17* Администраторот ги внесува податоците и ја испраќа формата.
     18* Системот ја внесува состојката.
     19{{{
     20   INSERT INTO ingredient (name, description, energy, kcal, type)
     21   VALUES (:name, :description, :energy, :kcal, :type);
     22}}}
     23* Системот внесува по еден запис за секоја хранлива материја пронајдена во состојката.
     24{{{
     25     INSERT INTO ingredient_contains_nutrient (ingredient_name, nutrient_id, quantity)
     26   VALUES (:ingredient_name, :nutrient_id, :quantity);
     27}}}
     28
     29=== UseCaseB02 – Модерирање на пријавена објава
     30* Актер кој го иницира: Администратор
     31* Други актери: Редовен корисник (авторот на објавата)
     32**Опис:** Администраторот прегледува објава која била пријавена од други корисници и ја отстранува од почетната страница со нејзино архивирање или брише поединечен навредлив коментар. Архивирањето го зачувува записот за авторот наместо целосно да ја уништи неговата објава.
     33
     34* Администраторот ја избира опцијата „Модерирај содржина“.
     35* Системот ги прикажува објавените објави заедно со бројот на коментари на секоја објава.
     36{{{
     37 SELECT p.id, u.username, r.name AS recipe, p.created_at,
     38          COUNT(c.id) AS comment_count
     39   FROM post p
     40   JOIN "user" u    ON u.email = p.created_by
     41   LEFT JOIN recipe r  ON r.id = p.recipe_id
     42   LEFT JOIN comment c ON c.post_id = p.id
     43   WHERE p.status = 'published'
     44   GROUP BY p.id, u.username, r.name, p.created_at
     45   ORDER BY p.created_at DESC;
     46}}}
     47* Администраторот отвора објава и ја чита нишката со коментари.
     48{{{
     49  SELECT c.id, c.description, c.created_at, u.username
     50   FROM comment c
     51   JOIN "user" u ON u.email = c.created_by
     52   WHERE c.post_id = :post_id
     53   ORDER BY c.created_at;
     54}}}
     55* Администраторот ја отстранува објавата од почетната страница.
     56{{{
     57UPDATE post
     58   SET status = 'archived'
     59   WHERE id = :post_id;
     60}}}
     61* Администраторот брише поединечен коментар доколку само коментарот бил навредлив.
     62{{{
     63 DELETE FROM comment
     64   WHERE id = :comment_id;
     65}}}
     66
     67=== UseCaseB03 – Промовирање корисник во тренер
     68* Актер кој го иницира: Администратор
     69* Други актери: Редовен корисник (сметката која се промовира)
     70**Опис:** Администраторот му ја доделува улогата на тренер на корисник, со што корисникот добива пристап до тренерските функционалности на апликацијата.
     71* Администраторот ја избира опцијата „Управување со сметки“.
     72* Системот ги прикажува сметките со нивната моментална улога и активност.
     73{{{
     74SELECT u.email, u.username, u.role,
     75          COUNT(DISTINCT r.id) AS recipes,
     76          COUNT(DISTINCT p.id) AS posts
     77   FROM "user" u
     78   LEFT JOIN recipe r ON r.user_email = u.email
     79   LEFT JOIN post   p ON p.created_by = u.email
     80   GROUP BY u.email, u.username, u.role
     81   ORDER BY recipes DESC;
     82}}}
     83
     84* Администраторот избира сметка и ја избира новата улога.
     85* Системот ја ажурира улогата.
     86{{{
     87   UPDATE "user"
     88   SET role = :role
     89   WHERE email = :email;
     90}}}
     91
     92=== [https://develop.finki.ukim.mk/projects/nutritioneer/wiki/UseCaseModel ⬅️Назад кон општ преглед]