学生管理系统架构设计文档
前言
本文档针对外包学生管理系统架构进行详细说明,用于指导后续系统研发、运维和测试工作。
需求背景
目前学校学生数量很多,对这些学生信息管理耗时耗力,还难免存在管理上的缺漏,进而造成查漏补缺花费老师等工作人员的时间成本。针对这些痛点,学校需要优化管理资源,在学生管理方面急切需要一个信息化管理的替代方案,规范化管理,提高管理效率和质量,并降低管理成本,避免造成学校资源的浪费。
所以需要开发一套学生管理系统,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用手机和计算机对学生各种信息进行日常管理,如查询、修改、增加、删除等,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生学籍管理规范化、电子化、控制辍学和提高义务教育水平的重要举措。
约束和限制
自需求到设计研发部署上线周期两个月
项目总资金成本控制 10 万
系统访问支持公网
学校总学生数量 2 万人;教职工 1000 人
学生信息、教师信息录入、账号开通
教师发布课程、学生选修
教师管理学习自己课程的学生信息
数据安全,不丢失
管理员、学生和教职工使用权限区分
总体架构
根据学生管理现状分析,学生管理具体可拆分为学生管理、课程管理和权限管理三个子模块区分开设计、研发。
学生管理主要负责学生信息的录入、编辑、删除;
课程管理主要教师课程维护、排课、创建作业试卷等;
权限管理是对所有用户群体账号密码、权限分配、角色管理。
架构分析
高可用
首先要求数据的高可用,数据不能丢失,就需要存储组件数据库和文件存储组件的数据不能丢失;就需要做到数据存储冗余;数据可考虑主从备份,文件存储考虑多机冗余存储。
再谈服务的高可用,由于学生管理系统主要定位于学校内的学生和教职工,属于对 B 业务系统,偶尔的不可用并没有太大影响,为了节约成本,可以不做服务的高可用。
高性能
学生和教师为主要用户群,共 2 万余人,人数很少,系统性质也说明用户活跃量也不会很大,偶尔在学生选修课程和考试的时候访问量较高,但也能预测在可接受范围。所以高可用可不考虑。
可扩展
学生管理较为传统,业务固化,未来的几年,可预测出基本不会改变。
总结:主要数据、文件存储要做到高可用,冗余存储上,可多增加一些成本,其余的可缩减。
详细设计
系统设计
为了满足数据存储额高可用,这里数据存储采用的主从模式,另外单独增加了一台 Nginx,作为反向代理服务路由,同时可设置防止攻击策略,为了解决成本,Nginx 和每个子系统应用单台部署即可。
功能设计
登录认证流程
课程业务流程
关键设计
应用开发使用主流范式:前后端分离,后端 Springboot、前端使用 VUE、ReactUI
前后端分离,接口范式严格,请求状态码 code,请求结果信息 message,业务响应数据 data
数据存储高可用:主从模式;读写分离策略可选
数据存储读写,注重事务,保证数据操作一致性,Mysql 采用 Innodb 存储引擎
统一身份认证鉴权,可使用 JWT 认证框架和 Shrio 权限框架整合使用
对于证件照,课件书籍资料等文件存储,可考虑高可用 NFS、云上 OSS 服务
质量设计
可测试性:测试接口,单元测试
可检测行:操作日志、资源负载监控
可维护性:架构设计文档、开发方案设计文档、测试文档
架构演进规划
项目性质上看,所有功能都可考虑周全,考虑一次性部署上线成功交付,后续业务基本不在改变
评论