当前位置:网站首页>外包学生管理系统架构文档
外包学生管理系统架构文档
2022-08-02 10:30:00 【InfoQ】

前言
修订历史
词汇表
1. 业务背景
- 效率低:教师需要手动将学生的个人信息、选课信息、考试信息等录入表格, 效率低;
- 扩展难:
- 易出错: 因为都是手动录入, 极易出现录入错误;
- 维护难: 由于信息之间关系较多, 数据分析难度较大, 信息变更流程复杂;
2. 约束和限制
- 外包方案需在2022年8月4日前完成;
- ISO9001质量体系标准;
- 数据库采用MySQL;
- 学校维护团队擅长java
3. 总体架构

3.1 架构分析
3.1.1 高可用
3.1.2 高性能
3.1.3 可扩展
3.1.4 成本
3.1.4 安全
3.2 总体架构
- 采用微服务的架构, 将系统分为学生子系统、课程子系统、权限子系统.
- 3个子系统共用一台主MySQL和一台备MySQL, 主备数据复制. 主MySQL负责读写, 备MySQL只负责读.
- 通过nginx进行服务分发, 实现外部于内部子系统交互.

4. 详细设计
4.1 核心功能
4.1.1 学生学籍信息录入流程
- 学生将自己的信息在学籍系统中进行录入, 包括学院、专业、教育经历等, 保存在数据库中;
- 教师对学生录入的信息进行检查, 对于有疑问的信息和学生沟通后进行更正;
- 系统提供向导功能;
4.1.2 学生选课流程
- 学校将课程信息录入在选课系统中;
- 学生登录系统选课模块;
- 学生进行必修、选修课的选择, 包括课程老师、上课地点、上课时间等, 保存在数据库中;
- 学生需在指定的时间段内登录系统进行选课, 非此时段不能选择;
- 系统提供向导功能;
4.1.3 学生成绩录入流程
- 教师登录系统
- 教师完成对自己学科的成绩信息录入
- 教师需在指定的时段内完成学生成绩录入
4.2 关键设计
4.2.1
学生信息存储的可靠性
4.2.2 信息录入的可靠性
4.2.3 系统的可扩展性
4.2.4 系统的安全性
4.3 设计规范
- 使用Linux CentOS 进行项目部署;
- 前端页面spring boot完成项目搭建;
- 学生子系统、课程子系统、权限子系统均使用java语言进行开发, 子系统间基于zookeeper协议实现子系统之间的交互;
- 服务端3个子系统共用一台主MySQL和一台备MySQL, 主备数据复制. 主MySQL负责读写, 备MySQL只负责读;
- 前端通过nginx代理转到服务端.
5. 质量设计
5.1 可测试性
5.2 可维护性
5.3 可观测性
6. 演进规划
6.1 外包管理系统1期
6.2 外包管理系统2期
边栏推荐
- 初探zend引擎
- 周鸿祎称微软抄袭 360 安全模式后发文否认;英特尔CEO基辛格回应市值被AMD超越:股价下跌是咎由自取|极客头条...
- org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)
- LayaBox---TypeScript---Module Analysis
- WPF 截图控件之文字(七)「仿微信」
- Oracle查询提示 ORA-00933 SQL command not properly ended 原因排查
- 详细总结SoC、DSP、MCU、GPU和FPGA等基础概念
- LayaBox---TypeScript---Module
- 软件测试岗位巨坑?阿里在职7年测试人告诉你千万别上当
- 你认同这个观点吗?大多数企业的数字化都只是为了缓解焦虑
猜你喜欢
随机推荐
Oracle超全SQL,细节狂魔
qq邮箱日发5万邮件群发技术(qq邮箱怎样定时发送邮件)
循环语句综合练习
LayaBox - TypeScript - merge statement
FPGA手撕代码——CRC校验码的多种Verilog实现方式 (2021乐鑫科技数字IC提前批代码编程)
8年软件测试工程师的感悟:与薪资相匹配的永远是实力
The 38-year-old daughter is not in love and has no stable job, the old mother is crying
MSYS2 QtCreator Clangd code analysis can not find mm_malloc.h problem remedy
Smoothing of time series data in R language: smoothing time series data to remove noise using the dpill function and locpoly function of the KernSmooth package
Why use BGP?
How to choose a truly "easy-to-use, high-performance" remote control software
Do you agree with this view?Most businesses are digitizing just to ease anxiety
Rear tube implements breadcrumb function
38岁女儿不恋爱没有稳定工作老母亲愁哭
Spearman's correlation coefficient
R language ggplot2 visualization: based on the fill parameter and shape parameter in the aes function, custom draw a grouped line chart and add data points (scatter points), use the legend.position fu
R语言ggplot2可视化:使用ggpubr包的ggbarplot函数可视化水平柱状图(条形图)、使用orientation参数设置柱状图转置为条形图
LayaBox---TypeScript---Namespaces and modules
使用较广泛的安全测试工具有哪些?
DirectX修复工具增强版「建议收藏」