The client has specified new requirements regarding course registration, dashboard visibility, and exam access control. These requirements define how students interact with courses after registration.
Students should not be restricted to registering for only two courses.
- The system should allow students to register for multiple courses.
- There should be no hard limit preventing registration beyond two courses.
After registering, students should be able to see all the courses they registered for on their dashboard.
- The dashboard should display every course the student has registered for.
- Each course should include relevant details such as payment status and exam availability.
| Course | Payment Status | Exam Access |
|---|---|---|
| Cloud Computing | Paid | Available |
| Data Analytics | Pending | Locked |
| Cybersecurity | Paid | Available |
Students should only be able to write exams for courses they have paid for.
- Students may register for multiple courses.
- However, exam access should be restricted to courses with completed payment.
| Course | Registered | Paid | Can Write Exam |
|---|---|---|---|
| Cloud Computing | ✔ | ✔ | ✔ |
| Data Analytics | ✔ | ❌ | ❌ |
| Cybersecurity | ✔ | ✔ | ✔ |
- Paid courses → Exam access allowed
- Unpaid courses → Exam access denied
The platform should support the following workflow:
- Students can register for multiple courses without limitation.
- The student dashboard displays all registered courses.
- Exam access is granted only for courses that have been paid for.
To support this functionality, the system should allow a many-to-many relationship between students and courses.
students
courses
student_courses
| column | description |
|---|---|
| student_id | references the student |
| course_id | references the course |
| payment_status | indicates whether the student has paid |
This structure allows one student to be associated with multiple courses while tracking payment status for each course.