写点什么

外包学生管理系统设计文档

作者:波波
  • 2021 年 11 月 14 日
  • 本文字数:2381 字

    阅读完需:约 8 分钟

外包学生管理系统设计文档

前言

本文是对外包学生管理系统设计文档,用于指导后续的开发、测试和运维工作。

词汇表

MySQL: 一种关系型数据库

Nginx:负载均衡服务器

SpringBoot:Java 开发框架


1. 业务背景

随着学校的规模不断扩大,学生的数量不断增加,需要处理的信息也日趋增大,不仅花费大量的教师资源,工作的效率也十分低下。

  • 为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。

  • 学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高

信息的准确度以及日常管理的工作效率。

  • 系统可以应用于学生各类信息的管理,实现学生信息关系的系统化、规范化、自动化,其主要统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等。

2. 约束和限制

  1. 需要通过公网访问

  2. 成本不能超过 10 万

  3. 必须支持 3000 学生使用

  4. 开发周期不能超过 1 个月

  5. 数据不能对外泄露


3. 总体架构



说明:

  • 短信接口:主要提供手机验证码功能,用于登录和支付;

  • 网银接口:主要用于缴费扣款;

  • 机器学习:主要用于学生成绩自动阅卷,为学生提供推荐书籍、课程等;

  • 人脸识别:识别权限相关,例如门禁等。

3.1 架构分析

3.1.1 高可用

对于学生管理系统而言,学生和教师相关信息丢失,以及课程相关数据丢失,会导致教学事故,严重影响整个教学工作的开展,可用性要求较高。

3.1.2 高性能

对于整个学校来说,总人数维持 3000 人左右,每年毕业生人数与新生人数基本相等,不会出现突增的情况,所以对性能的要求不高;

3.1.3 可扩展

随着科技的发展,学生和教师的要求会越来越高,需要更多的智能化的办公平台和学生学习平台,功能会逐步增多。


3.2 总体架构



1)采用 nginx 做负载均衡;

2)使用 springboot 进行应用开发,并部署多服务器;

3)使用 MySQL 进行数据存储,采用一主一备架构,主备均可提供读服务,写请求只能写入主库,再通过主从进行数据同步。


4. 详细设计

4.1 核心功能

4.1.1 学生管理

  • 系统登录:此功能面向所有用户角色,根据用户角色权限不一,功能权限也不一样。

  • 账号分配:学生账号由系统生成,给定相应权限,可进行密码更改,无法对系统成绩评定等功能做出相应干涉。教师账号由管理者(教务)通过系统生成,教师有对学生成绩评定和试卷评定的权限,同时兼容学生权限。管理(教务)权限由系统固有账号,是系统 root 权限,对教师有分配管理权限,对数据有增加、修改、删除、查询权限。

  • 账号绑定:学生账号可通过第三方如:手机号码、微信等自行绑定,可实现账号自助找回等。

  • 组织管理层级:按学生实际情况划分归属。 例如:软件学院—数字传媒方向(专业)—软件 1306—苗雨乔。

  • 文件上传/下载:此功能针对所有用户开放,学生可以将自己课堂笔记、日常作业等相关信息在线传输,教师通过学生上传的相关作业、试卷信息进行相应评定,完成对学生平时成绩的评定。此功能一旦评定结束,所有用户只有查询、浏览的权限,除管理员外其他用户没有对成绩修改的权限。

4.1.2 教师管理

  • 系统登录:此功能面向所有用户角色,根据用户角色权限不一,功能权限也不一样。

  • 账号分配:账号由系统生成,给定相应权限,可进行密码更改,拥有对学生成绩进行评定等功能。

  • 账号绑定:账号可通过第三方如:手机号码、微信等自行绑定,可实现账号自助找回等。

  • 组织管理层级:按学院专业划分归属。

4.1.3 权限管理

  • 权限定义:由教务处管理员进行定义权限。

  • 权限分配:由教务处管理员对不同角色进行权限分配。

4.1.4 课程管理

  • 课程录入:由管理员对相应课程体系进行录入,供学生、教师进行在线选择。

    选课功能:学生可以在线对自己的课程体系进行选择,相对应的课程选择功能类比。

    排课功能:此功能根据学生选定的课程和教学体系安排,对相应教师、教室、时间进行统一规划安排。排课功能备选开发方向为在线排课和人工录入,在线排课是系统根据课程要设置课程的名称、课时、上课的班级、代课老师等信息,除此之外,还可以选填排课时的优选项,例如:上课时间有限上午等系统自动生成课程信息,管理员有权限对课程安排作出添加、删除、修改等判定。

  • 教材选择:此功能由教务统一管理,根据每门课程选定相应教材。

4.2 关键设计

1) 将系统从业务上划分为四个模块:教师管理模块、学生管理模块、课程管理模块、权限管理模块。采用 springboot 进行应用开发,每个业务模块对应一个代码模块,业务功能实现都在各自的模块内。

2) 应用部署至少 3 台服务器,采用 nginx 进行负载均衡。

3) 数据使用 MySQL 数据库存储,一主两备的架构模式。

4) 表结构设计:学生信息表,教师信息表,课程信息表,学生课程关系表,教师课程关系表,学生成绩表,权限管理表,权限配置表。

4.3 设计规范

1. 采用 Spring Boot 2.5.6 作为开发框架;

2. 服务间接口数据采用 JSON 格式;

3. 服务间接口使用 dubbo 框架进行 rpc 通信,且响应时间不能超过 200 ms;

4. 采用 Innodb 存储引擎的 MySQL 数据库;

5. 后端服务提供 restful api。

5. 质量设计

1)可测试性

严格编写单测,行覆盖率至少 80%。重要的接口需要有集成测试。

2)可维护性

  • 代码分层结构明显

  • 提供必要的运维工具

  • 增加相关监控功能

3)可观测性

添加系统指标监控和相关业务监控。

4)成本

为节省成本,使用 3 台 4 核 8G 内存 60G 磁盘的服务器即可。

6. 演进规划

6.1 一期实现的功能

快速开发完成上线,实现从 0 到 1 的过程。基本实现各业务模块功能。

学生管理模块:登录、学号的分配与绑定、查看个人信息;

教师管理模块:登录、账号的分配与绑定;

课程管理模块:课程排期、老师录入课程成绩,学生查看课程成绩与课程点评;

权限管理模块:学生和教师权限分配与管理。

6.2 二期实现的功能

学生管理模块:为学生个性化推荐书籍、兴趣活动等;

课程管理模块:为学生推荐适用课程和线上课程学习;


用户头像

波波

关注

还未添加个人签名 2017.12.20 加入

还未添加个人简介

评论

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