Open RayMuvz opened 1 day ago
This sequence diagram illustrates the flow of a student interacting with the course enrollment system, starting from searching for a course, making an enrollment request, validating credit limits, updating the database, and confirming the course enrollment. It highlights the backend communication and the necessary checks to ensure credit limits are respected, providing a comprehensive representation of the enrollment process.
Search for Courses:
The User interacts with the CourseEnroll Page to initiate the course search. This step is represented by the message enterCourseCode().
The CourseEnroll Page calls the Enrollment Manager to load available courses, which involves fetching data from the Database.
Course Information Displayed:
The Database responds to the Enrollment Manager with the requested list of courses.
The Enrollment Manager sends this data to the CourseEnroll Page for display, allowing the User to browse the available course options.
Course Enrollment Request:
Once the User decides on a course, they click the Enroll button. This action is represented by the enrollCourse(courseCode) message.
The CourseEnroll Page sends an enrollInCourse(courseCode) message to the Enrollment Manager to proceed with the enrollment request.
Credit Limit Check:
The Enrollment Manager verifies if enrolling in the requested course exceeds the User’s current credit limit for the semester (since there is a 19-credit maximum per semester).
If the creditLimitCheck() passes successfully, the process continues.
Database Update:
Update UI and Confirmation:
After successful enrollment, the Enrollment Manager sends the updated enrollment details to the CourseEnroll Page.
The CourseEnroll Page updates its UI to reflect the new status of the enrolled course (e.g., replacing the Enroll button with an Unenroll button).
Finally, the User is notified that the enrollment has been successful.
Objective:
Description:
Requirements:
Include components like MainMenu, Database, CourseEnrollment, and ScheduleTable.
Show the interactions required for fetching and updating data.
Time Constraints:
Difficulty:
Priority: