写点什么

外包学生管理系统架构文档

作者:Pengfei
  • 2022 年 6 月 08 日
  • 本文字数:1705 字

    阅读完需:约 6 分钟

前言

本架构文档用于指导实现外包学生管理系统(管理学生相关信息,如学籍、课程、成绩),总体任务是实现学生信息管理的系统化、规范化和自动化。

 

词汇表

Nginx: 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。

 

MySQL:关系型数据库管理系统,用于存储业务数据。

主备模式:主机和备机之间同步数据,当主机不可用后,切换到备机提供服务,用于数据库高可用方式。

 

1. 业务背景

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

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

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

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

 

2. 约束和限制

1.  项目交付:  2022 年 11 月 1 号

2.  硬件成本不得超过 20 万

3.  要支持至少存储 2 万个学生的数据和 1000 个学生的并发访问

 

3. 总体架构

 

3.1. 架构分析

3.1.1.高性能

学校师生人数总计约 2 万人,并且根据业务特点,用户的访问时间分布相对均匀,所以对性能要求并不高。


3.1.2. 高可用

学校的主要业务如教学并不依赖此系统,故计算的可用性要求并不高。但对数据的可用性有一定要求,因丢失数据需要大量时间来进行人工补录,若出现数据丢失需确保丢失量可控且相对较小。

3.1.3. 可扩展

在系统方案设计时,需要结合业务特点进行接口和表结构设计,能够适应多变的业务需求,提高系统的可扩展性

3.1.4. 成本与安全

本系统为单校系统,不涉及金融,且学生信息多为已公开信息,故安全要求不高。

成本有要求,硬件部署方案需要考虑成本因素。

 

3.2. 总体架构设计

整个学生管理系统分成三个子系统:权限子系统、学生子系统、课程子系统

·  权限子系统,主要负责统一身份认证、账号管理、角色管理、每个角色的权限分配。

·  学生子系统,主要负责维护学生的学籍相关信息。学生可以修改自己的基本信息;老师可以管理学生的学籍信息。

·  课程管理系统,主要负责完成排课管理、试卷管理、成绩管理以及课程管理。老师可以在上面进行排课、管理课程、录入成绩、布置/批改作业;学生可以查询课程、成绩、课表等信息并完成老师布置的作业。

 

4. 详细设计

4.1. 核心功能

·         用户鉴权

用户登陆时将通过学生子系统获得 Token 用以鉴权,之后的所有请求将携带此 Token 当请求设计到对于某一项数据的增删改查时,Token 将被用于向权限子系统进行鉴权来判断是否可以进行此项操作。

 

·  数据主备功能

业务数据读写主要在 MySQL 主库进行,并使用 binlog 同步至备库。

4.2. 关键设计

·  数据储存的可靠性

·  使用一主一备两台 MySQL 服务器,保证数据的可用性。

·  请求分发与控制

·   Nginx 根据 URL 来决定将请求反向代理至某个子系统,当某个子系统出现性能瓶颈时,通过 Nginx 做负载均衡

 

4.3.设计规范

1.  采用前后端分离方式,前端 vue3, 采用 Spring Boot 框架。

2.  MySQL 使用 InnoDB 储存引擎,采用主备设计模式。

3.  各个子系统之间的调用使用 restful 风格的接口调用

4.  使用 Swagger 展示接口 API

5.  统一使用 Logback 记录日志

5. 质量设计

可测试性:单元测试用例。

可维护性:详细的设计完档、部署文档、系统宕机可以快速重启。

可观测性:操作日志、系统异常预警,采用 Spring Boot Actuator。

成本:控制在 2 万以内。

 

6. 演进规划

6.1.学生管理系统一期

2022-08-01 至 2022-08-30

完成学生子系统,实现学生管理功能。

完成权限子系统,实现权限管理功能。

 

6.2. 学生管理系统二期

2022-09-01 至 2022-09-30

完成课程子系统,实现课程管理和考试管理功能。

用户头像

Pengfei

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
外包学生管理系统架构文档_Pengfei_InfoQ写作社区