写点什么

学生管理系统详细设计

用户头像
缘分呐
关注
发布于: 1 小时前
学生管理系统详细设计

前言

本文是学生管理系统详细架构设计文档,用于指导学生管理系统后续的开发、测试和运维。

词汇表


  • Nginx:Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。该软件由伊戈尔·赛索耶夫创建并于 2004 年首次公开发布。2011 年成立同名公司以提供支持。2019 年 3 月 11 日,Nginx 公司被 F5 Networks 以 6.7 亿美元收购。 Nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。

1. 业务背景

学生管理成为学校教学管理中十分重要又相当复杂的管理工作之一,过去传统的靠人力手工登记,已经随着当前学生人数的增多,越来越不符合教育和管理的要求。而计算机的运算速度快,处理能力强等特点,恰好可以解决这一疑难问题。因此为了保证学校的信息流畅,工作高效,设计一个学生管理系统已经是相当有必要。这不但能为广大教工人员减轻了学生管理的工作,而且对于推动教学的发展也起到非常重要的作用。 

开发其系统主要是为了帮助广大教师提高工作效率,节约资源,提高学籍信息的精确度,实现学生信息管理工作流程的系统化、规范化和自动化。

2. 约束和限制

  1. 必须在 2021.08.31 号完成上线;

  2. 成本不能超过 20 万;

  3. 支持 2 万名学生及 200 教职工的使用;

  4. 保证学员信息数据的安全可靠;

3. 总体架构

3.1 架构分析

3.1.1 高可用

学生管理系统宕机后并不会影响教学的开展,因此学生管理系统的高可用要求并不是很高。

3.1.2 高性能

根据约束和限制里提到的需要支撑 2 万学生及 400 多名教职员工使用可知,在高性能方面无太高要求,一般的硬件服务器及系统架构即可满足日常使用。

3.1.3 可扩展

因学生管理系统的对接的外部系统较多,加上业务需求比较复杂,因此在可扩展性方面要求较高。

3.1.4 成本、安全

  • 由于在约束和限制里明确提出此项目费用不能超过 20 万,因此必须在硬件、人力成本上做控制。

采用阿里云 ECS 及 Mysql 服务器。人员团队数量控制在小于 4 人左右;

  • 同时约束和限制里也提出,不允许丢失学员数据,因此必须保证学员数据的安全,可采用主备数据库保证数据安全;

  • 安全的其他方面依托阿里云的安全服务来保证;

3.2 总体架构

学生管理系统整体作为一个部署单元部署在两台服务器上,前面采用 nginx 做为反向代理两台应用服务器,存储采用 mysql 一主一备,保证存储安全可靠。


  • 所有功能模块在一个工程里,业务复杂度不高时,开发效率高,部署简单

  • 整体架构简单,便于理解

  • 数据存储一主一备,能保证存储安全可靠




4. 详细设计

系统架构图里几个组件起到作用:

  • Nginx: Nginx 反向代理应用服务器,同时可以起到负载均衡的作用;

  • 业务服务器:即学生管理系统部署运行的服务器。可以通过部署多台业务服务器达到横向扩展的目的;

  • 数据库服务器:数据库主要存储业务数据。采用主备两台数据库服务器保证数据安全;

4.1 核心功能

4.1.1 学生管理功能



4.1.2 考试管理功能

4.1.3 课程管理功能


4.1.4 权限管理功能


4.2 关键设计


  • 数据可靠性:MySQL 以主备方式部署,通过冗余的方式保证数据的可靠性


  • 可扩展性:做好各个功能模块的划分,整个系统划分成大的功能模块:学生管理、课程管理、考试管理、权限管理。在各个模块做到高内聚,面向接口编程实现解耦。方便以后系统的演进;

4.3 设计规范


  • 应用程序使用 Spring Boot 开发

  • 采用 Mybatis 做数据持久化映射

  • MySQL 采用 5.8 版本, 且表使用 Innodb 存储引擎

  • 接口采用 restful 风格

5. 质量设计

5.1 可测试性

  • 重要核心功能要有相应的单元测试

  • 可通过 swagger ui 来对接口进行测试

5.2 可维护性

  • 因系统都是部署在阿里云上,因此硬件的可维护性可依托阿里云得到保障

  • 系统采用了清晰的模块划分,强制要求面向接口编程,因此软件的可维护性也能有保障

5.3 可观测性

  • 系统使用 springboot actuator 提供接口查看关键状态

  • 同时代码要求记录必要的 log,方便日常系统运行情况的观察

5.4 成本

  • 本系统在保证高可用的前提下一共需要 5 台服务器,将成本尽量控制的很低;

  • 多数都采用开源产品减少投入成本

6. 演进规划

6.1 一期

先上线学生管理、课程管理、考试管理、权限管理这四个功能模块,保证系统满足学生及老师日常教学使用

6.2 二期

对接学校财务系统、就业指导等系统

发布于: 1 小时前阅读数: 4
用户头像

缘分呐

关注

还未添加个人签名 2017.12.12 加入

还未添加个人简介

评论

发布
暂无评论
学生管理系统详细设计