| 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 |
| | 17 | SELECT 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 |
| | 21 | FROM project.users u |
| | 22 | LEFT JOIN project.contact c ON c.user_id = u.id |
| | 23 | LEFT JOIN project.high_school h ON h.user_id = u.id |
| | 24 | WHERE u.id = 1; |
| | 25 | }}} |
| | 26 | |
| | 27 | 3. Системот ја презема тековната студиска програма. Програмата не е атрибут на корисникот, туку се добива од последниот запишан семестар. |
| | 28 | {{{#!sql |
| | 29 | SELECT m.name AS major, a.year, a.type |
| | 30 | FROM project.enrolled_semesters es |
| | 31 | JOIN project.major m ON m.id = es.major_id |
| | 32 | JOIN project.active_semesters a ON a.id = es.semester_id |
| | 33 | WHERE es.user_id = 1 |
| | 34 | ORDER BY a.year DESC, (a.type = 'summer') DESC |
| | 35 | LIMIT 1; |
| | 36 | }}} |
| | 37 | |
| | 38 | 4. Системот ги прикажува податоците групирани во делови: лични податоци, податоци за раѓање, претходно образование, податоци за запишување и контакт. |
| | 39 | |
| | 40 | === Забелешки |
| | 41 | |
| | 42 | * Лозинката никогаш не се презема ниту прикажува. |
| | 43 | * Ако студентот нема ниту еден запишан семестар, барањето во чекор 3 не враќа ред и полето за студиска програма останува празно. |