== UC2001 – Assign Grade to Student == '''Initiating actor:''' Professor '''Other actors:''' None '''Description:''' A professor records the final grade for a student enrolled in a subject under their supervision. '''Scenario:''' 1. Professor logs in and selects “Enter Grades.” 2. System shows students and subjects that this specific professor teaches (вклучувајќи го и Ss_Id): {{{ SELECT ss.Ss_Id, sub.Id AS Subject_Id, sub.Name AS Subject_Name, st.Id AS Student_Id, st.Name, st.Surname FROM Student_Subject ss JOIN Subject sub ON ss.Subject_Id = sub.Id JOIN Student st ON ss.Student_Id = st.Id WHERE ss.Professor_Id = :professor_id; }}} 3. Professor selects a student/subject entry and enters the final grade. 4. System updates the database with the grade and changes status to 'Passed' (усогласено со композитниот клуч и ENUM): {{{ UPDATE Student_Subject SET Final_Grade = :grade, Status = 'Passed' WHERE Student_Id = :student_id AND Subject_Id = :subject_id AND Ss_Id = :ss_id; }}} 5. System confirms the update and allows the professor to continue grading other students. == UC2002 – Advise Student == '''Initiating actor:''' Professor '''Other actors:''' None '''Description:''' A professor records an academic advising relationship with a student for a specific time period. '''Scenario:''' 1. Professor selects “Start Advising Student”. 2. System shows a list of students belonging to the same faculty as the professor: {{{ SELECT st.Id, st.Name, st.Surname FROM Student st JOIN Professor p ON p.Faculty_Id = st.Faculty_Id WHERE p.Id = :professor_id; }}} 3. Professor selects a student and enters the advising start and end dates. 4. System inserts the advising record into the database: {{{ INSERT INTO Advice (Student_Id, Professor_Id, Start_Date, End_Date) VALUES (:student_id, :professor_id, :start_date, :end_date); }}} 5. System confirms the advisor assignment.