Changes between Version 1 and Version 2 of UseCase003


Ignore:
Timestamp:
09/15/26 11:38:04 (2 weeks ago)
Author:
233149
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase003

    v1 v2  
    1 == UseCase003 - Приказ на личен профил
     1== UC003 - Приказ на личен профил
    22
    3 === Актери
    4  * Најавен корисник
     3'''Иницијален актер:''' Студент
    54
    6 === Чекори
    7  1. Корисникот кликнува на копчето „Профил“
    8  2. Системот го чита JWT токенот од заглавието на барањето
    9  3. Системот го идентификува корисникот врз основа на токенот
    10  4. Системот ги презема личните, контакт, средношколските и уписните податоци на корисникот
    11  5. На корисникот му се прикажува неговиот личен профил
     5'''Други актери:''' -
     6
     7Студентот сака да ги прегледа своите лични податоци, контакт податоците,
     8податоците за средното образование и матичните податоци за студирањето, сите на
     9едно место.
     10
     11=== Сценарио
     12
     13 1. Студентот избира '''Профил''' од менито.
     14
     15 2. Системот го чита идентификаторот од пристапниот токен и ги презема податоците на корисникот заедно со контакт податоците и средното образование. Врските се 1:1, но се користи LEFT JOIN бидејќи професорите и администраторите немаат такви записи.
     16{{{#!sql
     17SELECT u.id, u.name, u.surname, u.embg, u."index", u.bday, u.email,
     18       u.quota, u.enrollment_year, u.created_at,
     19       c.city, c.municipality, c.address, c.number, c.microsoft_email,
     20       h.gpa, h.type AS high_school_type
     21FROM project.users u
     22LEFT JOIN project.contact c     ON c.user_id = u.id
     23LEFT JOIN project.high_school h ON h.user_id = u.id
     24WHERE u.id = 1;
     25}}}
     26
     27 3. Системот ја презема тековната студиска програма. Програмата не е атрибут на корисникот, туку се добива од последниот запишан семестар.
     28{{{#!sql
     29SELECT m.name AS major, a.year, a.type
     30FROM project.enrolled_semesters es
     31JOIN project.major m            ON m.id = es.major_id
     32JOIN project.active_semesters a ON a.id = es.semester_id
     33WHERE es.user_id = 1
     34ORDER BY a.year DESC, (a.type = 'summer') DESC
     35LIMIT 1;
     36}}}
     37
     38 4. Системот ги прикажува податоците групирани во делови: лични податоци, податоци за раѓање, претходно образование, податоци за запишување и контакт.
     39
     40=== Забелешки
     41
     42 * Лозинката никогаш не се презема ниту прикажува.
     43 * Ако студентот нема ниту еден запишан семестар, барањето во чекор 3 не враќа ред и полето за студиска програма останува празно.