wiki:UCB

UseCaseB - Администратор

UseCaseB01 – Додавање состојка во каталогот

  • Актер кој го иницира: Администратор
  • Други актери: Нема

Опис: Администраторот го одржува централниот каталог на прехранбени производи. Новата состојка се додава со нејзината енергетска вредност и нутритивен состав на 100 g, со цел пресметките на рецептите на сите корисници да можат да ги користат овие податоци.

  • Администраторот ја избира опцијата „Додај состојка“.
  • Системот прикажува форма со следните полиња:
  1. Име
  2. Опис
  3. Енергетска вредност (kJ на 100 g)
  4. Kcal (на 100 g)
  5. Тип (млечни производи, месо, риба, јаглехидрати, зеленчук, …)
  6. Нутритивен состав на 100 g
  • Администраторот ги внесува податоците и ја испраќа формата.
  • Системот ја внесува состојката.
       INSERT INTO ingredient (name, description, energy, kcal, type)
       VALUES (:name, :description, :energy, :kcal, :type);
    
  • Системот внесува по еден запис за секоја хранлива материја пронајдена во состојката.
         INSERT INTO ingredient_contains_nutrient (ingredient_name, nutrient_id, quantity)
       VALUES (:ingredient_name, :nutrient_id, :quantity);
    

UseCaseB02 – Модерирање на пријавена објава

  • Актер кој го иницира: Администратор
  • Други актери: Редовен корисник (авторот на објавата)

Опис: Администраторот прегледува објава која била пријавена од други корисници и ја отстранува од почетната страница со нејзино архивирање или брише поединечен навредлив коментар. Архивирањето го зачувува записот за авторот наместо целосно да ја уништи неговата објава.

  • Администраторот ја избира опцијата „Модерирај содржина“.
  • Системот ги прикажува објавените објави заедно со бројот на коментари на секоја објава.
     SELECT p.id, u.username, r.name AS recipe, p.created_at,
              COUNT(c.id) AS comment_count
       FROM post p
       JOIN "user" u    ON u.email = p.created_by
       LEFT JOIN recipe r  ON r.id = p.recipe_id
       LEFT JOIN comment c ON c.post_id = p.id
       WHERE p.status = 'published'
       GROUP BY p.id, u.username, r.name, p.created_at
       ORDER BY p.created_at DESC;
    
  • Администраторот отвора објава и ја чита нишката со коментари.
      SELECT c.id, c.description, c.created_at, u.username
       FROM comment c
       JOIN "user" u ON u.email = c.created_by
       WHERE c.post_id = :post_id
       ORDER BY c.created_at;
    
  • Администраторот ја отстранува објавата од почетната страница.
    UPDATE post
       SET status = 'archived'
       WHERE id = :post_id;
    
  • Администраторот брише поединечен коментар доколку само коментарот бил навредлив.
     DELETE FROM comment
       WHERE id = :comment_id;
    

UseCaseB03 – Промовирање корисник во тренер

  • Актер кој го иницира: Администратор
  • Други актери: Редовен корисник (сметката која се промовира)

Опис: Администраторот му ја доделува улогата на тренер на корисник, со што корисникот добива пристап до тренерските функционалности на апликацијата.

  • Администраторот ја избира опцијата „Управување со сметки“.
  • Системот ги прикажува сметките со нивната моментална улога и активност.
    SELECT u.email, u.username, u.role,
              COUNT(DISTINCT r.id) AS recipes,
              COUNT(DISTINCT p.id) AS posts
       FROM "user" u
       LEFT JOIN recipe r ON r.user_email = u.email
       LEFT JOIN post   p ON p.created_by = u.email
       GROUP BY u.email, u.username, u.role
       ORDER BY recipes DESC;
    
  • Администраторот избира сметка и ја избира новата улога.
  • Системот ја ажурира улогата.
       UPDATE "user"
       SET role = :role
       WHERE email = :email;
    

⬅️Назад кон општ преглед

Last modified 2 weeks ago Last modified on 09/15/26 02:45:56
Note: See TracWiki for help on using the wiki.