架构训练营 - 模块三作业
前言
修定历史
v1.0.0 创建 sam 2022-01-08
词汇表
业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。 为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生 管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助 学生管理人员有效管理学生信息。 因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的 工作效率。 本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息 进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
调研背景说明
高校学生总人数:2.5W 人(一般性高校人数:1~3w 人,取 80%的值)
高校老师:老师与学生比例:1/18 = 1300 人
约束 &限制
总体架构
业务架构图
架构分析
高可用
数据不能全部丢失,尤其是学生基础信息、学籍信息等。
高性能
要支撑管理 2.5W 个学生和 1300 位教师,登录与权限验证,需要使用缓存来解决
可扩展
为外包项目,满足需求为前提,可扩展适当考虑即可。
安全
公网部署,需要接口权限验证
防止 SQL 注入
成本
两台数据库服务器(主/备架构),用于冗余数据,做到数据高可用
两台业务服务器,一台部署学生子系统和权限子系统、一台部署课程子系统
一台 nginx 服务器,作为务聚合
详细功能
学生子系统 Role 设计
采集 asp.net core 实现,使用 mvc 框架
包含对学生、教师信息的管理,以及组织、学籍的管理等,并对外提供数据
课程子系统 Role 设计
采集 asp.net core 实现,使用 mvc 框架
包含对课程、排课/选课、考试、题库、成绩等模块功能,并对外提供数据接口
在进入各模块时,需要进行权限、角色验证,如:学生可以参考考试,但不能进入题库模块;
权限子系统 Role 设计
采集 asp.net core 实现,使用 mvc 框架
包含角色、资源管理、登录验证等模块
学生子系统、课程子系统、权限子系统之间的 Relation 设计
三个业务子系统之间通过 http 协议提供接口,接口内容为 JSON 格式
nginx 的 Role 设计
nginx 主要实现三个业务系统的接口聚合,提供统一的对外访问地址
静态资源的管理
mysql 的 Role 设计
采用 Mysql 的主\备模式,实现数据冗余存储
备数据只做数据备份,不对外提供读的能力
核心功能
在线考试 Rule 描述
学生登录系统进入《在线考试》模块
《在线考试》模块根据学生组织信息,和教师提前选定试卷内容,生成试卷
学生 完成客观题和主观题两题目的作答
学生在作答的过程中,系统每隔 30 秒进行一次自动保存
学生完成后,单击 完成考试 即可提交试卷
关键设计
学生子系统
学生管理:对学生基础信息的管理,包含学生照片、姓名、学号、班级等信息
教师管理:对教师基础信息的管理,包含:教师姓名、工号、任职方向、工作经历等
组织管理:对班级、院、系等信息进行管理
学籍管理:对学生学籍进行管理,包含对留级、转班等功能
奖惩管理:对学生在校期间的奖励、惩罚等信息进行记录
课程子系统
课程管理:管理各专业需要开设的课程、以及公共课程
排课/选课:对才教师进行排课、对学生进行选课
题库管理:包含题库信息管理、制卷等功能
考试管理:包含学生考试、试卷批改、考试按照等功能
成绩管理:包含《考试管理》中成绩信息的录入、平时成绩的录入
教材管理:教务工作者进入此功能,选择需要购买的教材
作业提交:学生可以在线提交作业,主要支持:word、ppt、excel、压缩文件、图片等类型文件。
权限子系统
登录验证:根据输入的用户名和密码进行登录验证,并选择适合的角色权限
角色管理:角色主要包含学生、教师、教务工作员、管理员等
资源管理:角色与菜单、接口权限的管理
设计规范
接口公共字段
后端框架
采用 asp.net core 做为 mvc 框架
数据库访问使用 freesql orm 框架
日志库统一采用 NLog
日志格式
格式:日志时间|日志级别|线程 Id|请求 id|日志标题|日志内容
页面响应时间
页面响应时长 <= 3s; 部分统计页可以 <= 5s
质量设计
增日志查看与分析工具,便于分析问题
演进规划
一期
实现《学生子系统》中的学生管理、组织管理、教师管理功能
实现《权限子系统》所有功能
实现《课程子系统》中的教材管理、课程管理、排课/选课功能
二期
实现《学生子系统》中学籍管理、奖惩管理等功能
实现《课程子系统》中题库管理、在线考试、成绩管理等功能。
版权声明: 本文为 InfoQ 作者【Sam】的原创文章。
原文链接:【http://xie.infoq.cn/article/edcb67cea4ee5c79def3cf1b1】。文章转载请联系作者。
评论