@startuml 小螺号
' skinparam actorStyle awesome
left to right direction

' 一级目录
package 小螺号识字 {
    package 移动端 {
        usecase "任务管理" as TasM
        usecase "记录" as Rec
        usecase "个人信息" as PerI
        usecase "开始学习" as Study
        usecase "注册" as SignUp
        usecase "登录" as LongIn
        usecase "班级关联" as ClaR
        usecase "智能问答" as ChatGPT
        ' 二级目录
        usecase "创建任务" as CreT
        usecase "未完成任务" as NoTask
        usecase "已完成任务" as YesTask
        usecase "复习" as Rev
        usecase "已完成任务筛选" as RecYesTask
        usecase "背书" as Read
        usecase "默写" as Write
        usecase "学生关联" as StuR
        usecase "文本生成" as TxtG
        usecase "自动出题" as Practice
        usecase "摘要提取" as Abstract
        
        ' 三级目录
        usecase "修改任务" as ModT
        usecase "删除任务" as DelT
        usecase "修改超时任务" as ModTOT
        usecase "查看成绩" as QueryS
        usecase "查看成绩" as QueryS1
        usecase "按类型筛选" as FilterByType
        usecase "按时间筛选" as FilterByTime
        usecase "按成绩筛选" as FilterByScore
    }
    package 网页端{
        ' 一级目录
        ' usecase "角色管理" as RolM
        usecase "学校管理" as SchM
        usecase "班级管理" as ClaM
        usecase "教师管理" as TeaM
        usecase "学生管理" as StuM
        ' 二级目录
        usecase "注册审核" as Review
        ' 三级目录
        usecase "增删改查" as ADMQ

    }

}

教师 --> TasM
教师 --> Rec
教师 --> PerI
教师 --> ChatGPT
教师 --> ClaR
教师 --> SignUp
教师 --> LongIn
学生 --> (Rec)
学生 --> (PerI)
学生 --> (Study)
学生 --> LongIn

(TasM) .down.> CreT: <<include>>
(TasM) .down.> NoTask: <<include>>
(TasM) .down.> YesTask: <<include>>
(Rec) .down.> Rev: <<include>>
(Rec) .down.> RecYesTask: <<include>>
(Study) .down.> Read: <<include>>
(Study) .down.> Write: <<include>>
(ClaR) .down.> StuR: <<include>>

(NoTask) .down.> ModT: <<include>>
(NoTask) .down.> DelT: <<include>>
(NoTask) .down.> ModTOT: <<include>>
(YesTask) .down.> QueryS1: <<include>>
(Read) .down.> QueryS: <<include>>
(Write) .down.> QueryS: <<include>>
(ChatGPT) .down.> TxtG: <<include>>
(ChatGPT) .down.> Practice: <<include>>
(ChatGPT) .down.> Abstract: <<include>>

RecYesTask <.down. FilterByType: <<extend>>
RecYesTask <.down. FilterByTime: <<extend>>
RecYesTask <.down. FilterByScore: <<extend>>

' 系统管理

' :管理员: --> RolM: 增删改查
:管理员: --> SchM: 增删改查
:管理员: --> ClaM: 增删改查
' :管理员: --> TeaM: 增删改查
' :管理员: --> StuM: 增删改查

TeaM .down.> Review: <<include>>
' TeaM -left-> ClaM: 关联
ClaM -down-> StuM: 关联
SchM -down-> TeaM: 增删改查
StuM .down.> ADMQ: <<include>>

@enduml