@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