模块三 - 外包学生管理系统架构
前言
本文是针对院校的外包学生管理系统详细架构设计文档,用于指导学生管理系统后续的开发、测试和运维
词汇表
高可用:通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性
高性能:高并发,高吞吐量,低延时
可扩展:用于处理大量的工作或更易轻松扩展,用于响应对网络,任务处理,数据库访问或文件系统资源需求的增加
1. 业务背景
随着学校的规模不断扩大,学生数量的增加,需要处理的信息也日趋增大,由此给学校对学生的管理方面造成了极大的不便:
1. 需要花费大量的教师资源,而且处理效率极其低下
2. 学生信息管理数据信息逐步增大,修改不方便
3. 针对学生数据信息分析花费时间太长
基于以上背景,我们需要从学生管理现状出发,根据学生管理的新要求进行开发设计,优化资源,尽可能降低管理成本,帮助学生管理管理人员有效的管理学生信息。
2. 约束和限制
A:一期交付时间截止到 2022-01-15
B:开发成本控制在 50w 以内
C:尽量保证数据的可用性
3. 总体架构
3.1 架构分析
3.1.1 高可用
学校的教学并不完全依赖于系统,系统处于挂机状态其实对学校来说影响并不是很大,但是对于学生信息的丢失要求是比较严格的,所以整个系统并没有高可用要求,但是数据高可用这块需要考虑到
3.1.2 高性能
一个学校最多可能就几万个人,对于一个系统处理性能来说来说,性能要求并不会高
3.1.3 可扩展
系统的需求相对来说还是比较复杂的,多人合作开发,需要考虑扩展性
3.2 总体架构
4. 详细设计
4.1 核心功能
4.1.1 学生子系统
· 系统登录:此功能面向所有用户角色,根据用户角色权限不一,功能权限也不一样。
· 账号分配:学生账号由系统生成,给定相应权限,可进行密码更改。
· 账号绑定:学生账号可通过第三方如:手机号码、微信等自行绑定,可实现账号自助找回等。
· 组织管理层级:按学生实际情况划分归属
· 文件上传/下载:此功能针对所有用户开放,学生可以将自己课堂笔记、日常作业等相关信息在线传输。
· 信息查询:此项功能包含课程查询、成绩查询、文件查询。
4.1.2 课程子系统
· 课程录入:由管理员对相应课程体系进行录入,供学生、教师进行在线选择。
· 选课功能:学生可以在线对自己的课程体系进行选择,相对应的课程选择功能类比。
· 排课功能:此功能根据学生选定的课程和教学体系安排,对相应教师、教室、时间进行统一规划安排。
· 教材选择:此功能由教务统一管理,根据每门课程选定相应教材。
· 试卷区域分割:发起考试:期中的时候,教师可以创建一次考试。
· 平时成绩:此项功能包含学生平时所有相关成绩信息。
· 评分判定:教师使用系统对上传的试卷分割区域作出相应的评分。
4.1.3 权限子系统
· 系统使用者有学生、教师、管理员、辅导员。
· 学生、教师、辅导员可以注册、登录、修改自己的信息,但注册信息需要管理员审核通过。
· 学生只能查看自己的成绩,教师可以修改学生的成绩。
· 辅导员可以查看学生的信息,可以设置学生的奖惩信息。
· 教师可以上传考试试题,学生可以做题。
4.2 关键设计
学生信息要保证一定的高可用,数据库存储采用 MySQL 主备两台服务器,MySQL 服务之间通过复制以保证数据存储高可用。
4.3 设计规范
a) 采用前后端分离模式开发,restful+json 传输
b) 技术选型:springboot+mysql+vue
5. 质量设计
a) 可测试性:关键接口进行单元测试
b) 可维护性:部分接口提供内部访问机制,可进行内部变量修改
c) 可观测性:集成开源日志框架,后台管理进行监控
d) 成本:开发成本控制在 50w 以内
6. 演进规划
a) 一期:学生管理,权限管理
b) 二期:课程管理,考试管理
规划两期完成,一次性交付
评论