@startuml useCases_app
left to right direction
actor User
actor Editor
actor Reviewer
usecase "Login" as login
usecase "Register" as register
usecase "Logout" as logout
usecase "Create Question" as createQ

usecase "Add Answer" as addAnswerQ
usecase "Delete Question" as deleteQ

usecase "Assign Test" as assignT
usecase "Unassign Test" as unassignT
usecase "Execute Test" as execT

usecase "Create Category" as createC
usecase "Mark ToReview Question" as markQ
usecase "** Approve / reject Answer" as approveRejectA
usecase "Review Question" as reviewQ
usecase "**Publish Question" as publishQ

Editor --|> User
Reviewer --|> Editor
Executor --|> User

Editor --> createQ
Editor --> addAnswerQ
Editor --> deleteQ
Editor --> markQ

User --> login
User --> register
User --> logout
Executor --> assignT
Executor --> unassignT
Executor --> execT

Reviewer --> createC
Reviewer --> approveRejectA
Reviewer --> reviewQ
Reviewer --> publishQ

@enduml