写点什么

架构实战营作业 M03

用户头像
Shawn Liu
关注
发布于: 21 小时前

前言

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


词汇表

学生自助平台:指学生用于自助信息管理、查询的操作平台

教师自助平台:指教师用于自助信息管理、课程、考试等信息管理的操作平台


1. 业务背景

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

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

因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、增加、删除等,提高 信息的准确度以及日常管理的工作效率。

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



从功能角度,整体系统可以分为 3 个组成部分:

  • 学生自助平台:给学生提供查询个人信息、课程信息、选课、考试结果查询等功能的平台

  • 教师自助平台:给教师提供管理学生信息、录入课程信息、考试信息等功能的平台

  • 学生管理系统:实际的后端程序,用于支撑上述 2 个交互系统。


2. 限制 &约束

  1. 整体项目必须在日期 xxx 前完成

  2. 整体成本不能超过 xxx 万


3. 总体架构设计



整体架构采用了微服务的架构。按照业务功能又细分为 3 个子系统:

  • 学生子系统:用于实现学生信息的 CRUD 等操作

  • 课程子系统:用于实现课程信息的 CRUD 等操作

  • 权限子系统:用于权限控制

整体系统使用 B/S 结构。通过 Web 界面提供学生自助平台、教师自助平台的功能。

外层通过 Nginx 提供统一的访问 API,学生自助交互平台和教师自助交互平台通过 HTTP + JSON 方式和后台系统进行交互。

每个子系统可以酌情使用多机器部署,使用 Nginx + KeepAlive 来避免单点故障


4. 详细架构设计

4.1 核心功能

4.1.1 课程信息录入流程



整个信息录入流程包含下面几个步骤:

  1. 教师登录教师自助平台,录入信息,提交信息

  2. 课程信息发送到课程子系统,课程子系统调用权限子系统进行鉴权操作

  3. 鉴权通过,课程子系统写入实际信息到数据库

  4. 课程子系统返回响应,界面显示录入结果


4.2 关键设计

1) 灵活权限管理

整个系统多个场景设计到权限控制,如:

  • 学生个人信息的权限控制,信息隔离

  • 学生个人媒体资产的权限控制

  • 学生信息和老师信息之前关联的权限控制

  • 课程信息和学生信息、老师信息之间的权限控制

  • ...

为加强整体架构设计的扩展性,系统使用 Shiro 配合 RBAC 的设计思路来构建整体的权限控制方案,并单独拆分权限控制子系统来方便系统迭代和演进。


4.3 设计规范

1)后端技术栈使用 SpringBoot + Shiro + MyBatis

2)数据库使用 MySQL(Innodb 存储引擎)

3)前端技术栈(学生自助平台、教师自助平台)使用 Vue+Webpack

4)前后端之间使用 HTTP+JSON 格式进行交互,消息格式满足基础格式固定,形如:

{  "code": 200,  "body": { ... }}
复制代码


5. 架构质量设计

5.1 数据安全

由于该系统为实际生产系统,学生、考试、课程等信息又是高校相对重要的一种数字资产。所以数据存储安全要求相对较高。但是顾全到整体技术度和成本,考虑使用 MySQL 主备的方案来进行核心数据的存储。且可以酌情选择将数据库数据定期冷备到三方存储,加强数据防丢保障。


6. 架构演进规划

6.1 学生管理系统一期

包含下述主要功能:

  • 学生账号信息管理

  • 组织管理层级信息管理

  • 学生个人学习资料管理、权限控制

  • 学生信息查询,如课程、成绩、文件查询

  • 课程管理信息管理功能

  • 教师侧排课功能、教程选定功能等

  • 考试信息管理


6.2 学生管理系统二期

包含下述主要功能:

  • 学生账号信息增加三方信息绑定功能,三方如手机号、微信号等,并增加账号自助找回功能

  • 增加学生个人学习资料支持媒体类型

  • 增加课程习题功能、作业功能

  • ...

发布于: 21 小时前阅读数: 5
用户头像

Shawn Liu

关注

还未添加个人签名 2018.05.04 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营作业 M03