写点什么

架构训练营 - 模块三作业

作者:Sam
  • 2023-01-14
    重庆
  • 本文字数:1871 字

    阅读完需:约 6 分钟

前言

修定历史

v1.0.0 创建 sam 2022-01-08

词汇表


业务背景

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。 为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生 管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助 学生管理人员有效管理学生信息。 因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理的 工作效率。 本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息 进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。


调研背景说明

  1. 高校学生总人数:2.5W 人(一般性高校人数:1~3w 人,取 80%的值)

  2. 高校老师:老师与学生比例:1/18 = 1300 人

约束 &限制


总体架构

业务架构图


架构分析

高可用

  1. 数据不能全部丢失,尤其是学生基础信息、学籍信息等。

高性能

  1. 要支撑管理 2.5W 个学生和 1300 位教师,登录与权限验证,需要使用缓存来解决

可扩展

  1. 为外包项目,满足需求为前提,可扩展适当考虑即可。

安全

  1. 公网部署,需要接口权限验证

  2. 防止 SQL 注入

成本

  1. 两台数据库服务器(主/备架构),用于冗余数据,做到数据高可用

  2. 两台业务服务器,一台部署学生子系统和权限子系统、一台部署课程子系统

  3. 一台 nginx 服务器,作为务聚合

详细功能

学生子系统 Role 设计

  1. 采集 asp.net core 实现,使用 mvc 框架

  2. 包含对学生、教师信息的管理,以及组织、学籍的管理等,并对外提供数据

课程子系统 Role 设计

  1. 采集 asp.net core 实现,使用 mvc 框架

  2. 包含对课程、排课/选课、考试、题库、成绩等模块功能,并对外提供数据接口

  3. 在进入各模块时,需要进行权限、角色验证,如:学生可以参考考试,但不能进入题库模块;

权限子系统 Role 设计

  1. 采集 asp.net core 实现,使用 mvc 框架

  2. 包含角色、资源管理、登录验证等模块

学生子系统、课程子系统、权限子系统之间的 Relation 设计

  1. 三个业务子系统之间通过 http 协议提供接口,接口内容为 JSON 格式

nginx 的 Role 设计

  1. nginx 主要实现三个业务系统的接口聚合,提供统一的对外访问地址

  2. 静态资源的管理

mysql 的 Role 设计

  1. 采用 Mysql 的主\备模式,实现数据冗余存储

  2. 备数据只做数据备份,不对外提供读的能力

核心功能

在线考试 Rule 描述

  1. 学生登录系统进入《在线考试》模块

  2. 《在线考试》模块根据学生组织信息,和教师提前选定试卷内容,生成试卷

  3. 学生 完成客观题和主观题两题目的作答

  4. 学生在作答的过程中,系统每隔 30 秒进行一次自动保存

  5. 学生完成后,单击 完成考试 即可提交试卷

关键设计

学生子系统

  1. 学生管理:对学生基础信息的管理,包含学生照片、姓名、学号、班级等信息

  2. 教师管理:对教师基础信息的管理,包含:教师姓名、工号、任职方向、工作经历等

  3. 组织管理:对班级、院、系等信息进行管理

  4. 学籍管理:对学生学籍进行管理,包含对留级、转班等功能

  5. 奖惩管理:对学生在校期间的奖励、惩罚等信息进行记录

课程子系统

  1. 课程管理:管理各专业需要开设的课程、以及公共课程

  2. 排课/选课:对才教师进行排课、对学生进行选课

  3. 题库管理:包含题库信息管理、制卷等功能

  4. 考试管理:包含学生考试、试卷批改、考试按照等功能

  5. 成绩管理:包含《考试管理》中成绩信息的录入、平时成绩的录入

  6. 教材管理:教务工作者进入此功能,选择需要购买的教材

  7. 作业提交:学生可以在线提交作业,主要支持:word、ppt、excel、压缩文件、图片等类型文件。

权限子系统

  1. 登录验证:根据输入的用户名和密码进行登录验证,并选择适合的角色权限

  2. 角色管理:角色主要包含学生、教师、教务工作员、管理员等

  3. 资源管理:角色与菜单、接口权限的管理

设计规范

接口公共字段

{	isSuccess: true, //请求处理是否成功  msg: null, //接口返回的信息   requestId: "1-001", //请求编号  code: 200, //请求返回结果编码}
复制代码

后端框架

  1. 采用 asp.net core 做为 mvc 框架

  2. 数据库访问使用 freesql orm 框架

  3. 日志库统一采用 NLog

日志格式

  1. 格式:日志时间|日志级别|线程 Id|请求 id|日志标题|日志内容

页面响应时间

  1. 页面响应时长 <= 3s; 部分统计页可以 <= 5s

质量设计

  1. 增日志查看与分析工具,便于分析问题

演进规划

一期

  1. 实现《学生子系统》中的学生管理、组织管理、教师管理功能

  2. 实现《权限子系统》所有功能

  3. 实现《课程子系统》中的教材管理、课程管理、排课/选课功能

二期

  1. 实现《学生子系统》中学籍管理、奖惩管理等功能

  2. 实现《课程子系统》中题库管理、在线考试、成绩管理等功能。

发布于: 刚刚阅读数: 4
用户头像

Sam

关注

还未添加个人签名 2018-11-19 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营-模块三作业_架构实战营_Sam_InfoQ写作社区