外包学生管理系统架构设计文档
前言
本文是外包学生管理系统的架构设计文档,用于指导外包学生管理系统后续开放、测试和运维。
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。带来了以下问题:
占用大量的教师资源处理学生信息。
人工处理数据效率低,容易出错,不易维护。
基于以上问题,我们需要引入外包学生管理系统,实现学生信息关系的系统化、规范化、自动化,主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 约束和限制
1、预计 3 个月。
2、成本尽量少。
3、数据库采用 Mysql。
4、学生人数在几万,暂定 3 万。
3. 总体架构
总体架构设计:
3.1 架构分析
3.1.1 高可用
信息不能大量丢失,对高可用有一定的要求,但是不高。对于抢课等场景可以考虑引入消息队列。
3.1.2 高性能
一个学校一般 2、3 万人,所以对高性能没有太多的要求,此处不涉及。
3.1.3 可扩展
预计本系统将使用 3 到 5 年,对于数据量的要求不高,但要考虑各种需求扩展。
3.1.4 安全性
不涉及金融,社交,所以不考虑太多加解密。
3.2 总体架构
系统架构图:
1)采用 Nginx 实现对外网提供服务。
2)学生管理系统主要由学生子系统、课程子系统和权限子系统组成。
3)数据库使用 MySql,采用主备模式,防止数据丢失。
4. 详细设计
4.1 核心功能
学生子系统
课程子系统
权限子系统
4.2 关键设计
1)高可用
信息不能大量丢失,对高可用有一定的要求,但是不高。对于抢课等场景可以考虑引入消息队列。
2)高性能
不涉及。
3)可扩展
后期的业务场景比较复杂,需要考虑可扩展的复杂度。
4)安全性
定期更新漏洞。
4.3 设计规范
1)服务整体采用 Spring Boot+Netty 开发。
2)MySql 采用 Innodb 存储。
3)MySql 采用主备模式,抱着数据尽量不丢失。
4)上传下载的文件采用服务器本地存储。
5)网络数据格式采用 JSON。
6)采用 log4j 或 logback 记录日常操作日志。
5. 质量设计
5.1 学生管理系统前端采用 php 开发,后台采用 java 开发,前后端分离。
5.2 成本低,没有采用本地存储+本地数据库。
5.3 性能要求不高。
5.4 采用 MySql 主备,实现尽量少丢失数据。
6. 演进规划
6.1 学生管理系统一期
完成学生管理系统的权限模块中权限分配,注册和注册管理功能,课程模块中课程录入、教材录入、课程增删改、选课功能,学生模块登录、退出、查询、组织绑定、文件上传、文件下、教师上传文件、教师下载文件的功能。
6.2 学生管理系统二期
增加考试管理模块,实现题库录入、自动生成试卷、试卷评分、学生考勤录入、课堂笔记录入、课后作业录入、课后作业批阅、计算平时成绩功能、最终成绩、学生学籍、奖惩录入
评论