写点什么

学生管理系统架构设计文档

作者:唐敏
  • 2021 年 11 月 11 日
  • 本文字数:1351 字

    阅读完需:约 4 分钟

前言

本文档针对外包学生管理系统架构进行详细说明,用于指导后续系统研发、运维和测试工作。

需求背景

目前学校学生数量很多,对这些学生信息管理耗时耗力,还难免存在管理上的缺漏,进而造成查漏补缺花费老师等工作人员的时间成本。针对这些痛点,学校需要优化管理资源,在学生管理方面急切需要一个信息化管理的替代方案,规范化管理,提高管理效率和质量,并降低管理成本,避免造成学校资源的浪费。

所以需要开发一套学生管理系统,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用手机和计算机对学生各种信息进行日常管理,如查询、修改、增加、删除等,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生学籍管理规范化、电子化、控制辍学和提高义务教育水平的重要举措。

约束和限制

  1. 自需求到设计研发部署上线周期两个月

  2. 项目总资金成本控制 10 万

  3. 系统访问支持公网

  4. 学校总学生数量 2 万人;教职工 1000 人

  5. 学生信息、教师信息录入、账号开通

  6. 教师发布课程、学生选修

  7. 教师管理学习自己课程的学生信息

  8. 数据安全,不丢失

  9. 管理员、学生和教职工使用权限区分

总体架构

根据学生管理现状分析,学生管理具体可拆分为学生管理、课程管理和权限管理三个子模块区分开设计、研发。

学生管理主要负责学生信息的录入、编辑、删除;

课程管理主要教师课程维护、排课、创建作业试卷等;

权限管理是对所有用户群体账号密码、权限分配、角色管理。


架构分析

高可用

首先要求数据的高可用,数据不能丢失,就需要存储组件数据库和文件存储组件的数据不能丢失;就需要做到数据存储冗余;数据可考虑主从备份,文件存储考虑多机冗余存储。

再谈服务的高可用,由于学生管理系统主要定位于学校内的学生和教职工,属于对 B 业务系统,偶尔的不可用并没有太大影响,为了节约成本,可以不做服务的高可用。

高性能

学生和教师为主要用户群,共 2 万余人,人数很少,系统性质也说明用户活跃量也不会很大,偶尔在学生选修课程和考试的时候访问量较高,但也能预测在可接受范围。所以高可用可不考虑。

可扩展

学生管理较为传统,业务固化,未来的几年,可预测出基本不会改变。


总结:主要数据、文件存储要做到高可用,冗余存储上,可多增加一些成本,其余的可缩减。


详细设计

系统设计

为了满足数据存储额高可用,这里数据存储采用的主从模式,另外单独增加了一台 Nginx,作为反向代理服务路由,同时可设置防止攻击策略,为了解决成本,Nginx 和每个子系统应用单台部署即可。

功能设计

登录认证流程

课程业务流程

关键设计

应用开发使用主流范式:前后端分离,后端 Springboot、前端使用 VUE、ReactUI

前后端分离,接口范式严格,请求状态码 code,请求结果信息 message,业务响应数据 data

数据存储高可用:主从模式;读写分离策略可选

数据存储读写,注重事务,保证数据操作一致性,Mysql 采用 Innodb 存储引擎

统一身份认证鉴权,可使用 JWT 认证框架和 Shrio 权限框架整合使用

对于证件照,课件书籍资料等文件存储,可考虑高可用 NFS、云上 OSS 服务

质量设计

可测试性:测试接口,单元测试

可检测行:操作日志、资源负载监控

可维护性:架构设计文档、开发方案设计文档、测试文档


架构演进规划


项目性质上看,所有功能都可考虑周全,考虑一次性部署上线成功交付,后续业务基本不在改变


用户头像

唐敏

关注

还未添加个人签名 2020.12.07 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统架构设计文档