| 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. Системот го чита идентификаторот на студентот од пристапниот токен и ги презема сите негови запишани семестри. Семестрите се подредени од најнов кон најстар; во рамките на иста година зимскиот семестар претходи на летниот. |
| | 16 | {{{#!sql |
| | 17 | SELECT es.id, |
| | 18 | a.year, |
| | 19 | a.type, |
| | 20 | m.name AS major, |
| | 21 | es.quota, |
| | 22 | es.note, |
| | 23 | es.student_comment, |
| | 24 | es.created_at, |
| | 25 | es.last_change, |
| | 26 | es.completed |
| | 27 | FROM project.enrolled_semesters es |
| | 28 | JOIN project.active_semesters a ON a.id = es.semester_id |
| | 29 | JOIN project.major m ON m.id = es.major_id |
| | 30 | WHERE es.user_id = 1 |
| | 31 | ORDER BY a.year DESC, (a.type = 'summer') DESC; |
| | 32 | }}} |
| | 33 | |
| | 34 | 3. Системот ја прикажува табелата со по еден ред за секој семестар. Колоната ''Завршен'' се пополнува според тоа дали completed има вредност. |
| | 35 | |
| | 36 | 4. Студентот избира конкретен семестар за да ги види неговите предмети, со што се преминува на [wiki:UseCase005 UC005]. |
| | 37 | |
| | 38 | === Забелешки |
| | 39 | |
| | 40 | * Ограничувањето UNIQUE (user_id, semester_id) во enrolled_semesters гарантира дека студентот не може да се појави двапати во истиот семестар, па во оваа табела нема дупликати. |
| | 41 | * Атрибутот completed е timestamp, а не boolean, па покрај тоа дали семестарот е завршен се знае и кога е заверен. |