@startuml
left to right direction
skinparam packageStyle rectangle
actor "Teacher (Invigilator)" as T
actor "Student (Exam Taker)" as S
rectangle "VsExam System" {
package "Exam Management (Web App)" {
usecase "Create New Exam" as UC1
usecase "Set Integrity Levels" as UC2
usecase "Manage Materials" as UC3
usecase "Monitor Real-time Activity" as UC4
usecase "Review Submissions & Behaviors" as UC5
usecase "Handle Break Requests" as UC6
}
package "Exam Execution (VS/VSCode Extension)" {
usecase "Enroll in Exam" as UC7
usecase "Access Exam Materials" as UC8
usecase "Write & Debug Code" as UC9
usecase "Execute/Test Code" as UC10
usecase "Submit Test/Exam" as UC11
usecase "Request Help/Break" as UC12
}
package "Security & Monitoring" {
usecase "Manage Copy-Paste" as UC13
usecase "Prevent Background Tasks" as UC14
usecase "Manage Enabled Extensions" as UC15
}
}
' Teacher relationships
T --> UC1
T --> UC2
T --> UC3
T --> UC4
T --> UC5
T --> UC6
' Student relationships
S --> UC7
S --> UC8
S --> UC9
S --> UC10
S --> UC11
S --> UC12
' System Automated Actions/Links
UC13 ..> S : <<enforce>>
UC14 ..> S : <<enforce>>
UC15 ..> S : <<enforce>>
@enduml