写点什么

架构实战营模块三作业

用户头像
袁小芬
关注
发布于: 50 分钟前

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

前言

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

词汇表

Nginx: HTTP 和反向代理 web 服务器

MySQL: 关系型数据库管理系统

 

1. 业务背景

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

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

 

系统总体需求:系统主要应用于学校学生信息管理,总体任务是实现学生信息管理的系统化、规范化和自动化,其主要任务是管理学生相关信息,如学籍、课程、成绩、奖惩。

1.   系统使用者有学生、教师、管理员、辅导员等。

2.   学生:维护个人信息;在线选课;上传日常笔记或文件;查看个人信息、课程表、个人成绩等信息;

3.   教师:上传考试试题;批改作业;维护学生成绩;上传资料等;

4.   管理员:发布课程信息;权限维护等;

5.   辅导员:辅导员可以查看学生的信息,可以设置学生的奖惩信息等;

 

2. 约束和限制

1.必须在 2021.09.01 号完成(新学期要使用)

2.必须可以支持 10000 人(在校学生将近 1w 人)

3.服务器有限;

4.前期可以先做学生管理和课程管理,后期需要新增考试管理;

 

3. 总体架构

 

3.1 架构分析

高性能:不需要,由于只需要服务 10000 名学生,每秒峰值最多就几百,对系统性能要求不高。

高可用:需要,很多数据是手工录入,不希望丢数据,所以需要数据高可用。

可扩展:需要,系统需求涉及到学生管理,课程管理,需要扩展新的需求,比如考试管理等,有一定的复杂度。

安全:要求低,校内人员使用,不涉及金融、证券和资金。安全复杂度低。

成本:开发周期短;硬件成本低;

 

总结:架构的复杂度主要集中在业务可扩展性和数据高可用上。

3.2 总体架构



1)使用 NGINX 负责请求接入。

2)按模块划分子系统:学生、课程和权限。

3)数据库采用 mysql 主备架构。

 

4. 详细设计

4.1 核心功能

系统可分为四个子系统,其中考试管理子系统第二期考虑;



面向用户有:学生、教师、辅导员、管理员等;

4.2 关键设计

1、系统采用三层架构模型进行开发;



数据表现层:负责用户和系统之间的交互,主要表现在将系统的数据按照 用户的业务操作按照一定的规则显示在页面上

业务逻辑层:完成各个子系统之间的通信和交互,以实现系统的业务功能

数据处理层:实现系统的数据和数据库之间的交互

4.3 设计规范

1.   前后端分离,RESTful API 规范;

2.   后端服务使用 SpringBoot 开发,做数据持久化映射

3.   前端页面使用 Vue 开发;

4.   MySQL 使用 5.7 社区版,InnoDB 引擎。

 

5. 质量设计

1.可测试性设计:RESTful API 构造 mock 数据;

2.可维护性设计:增加管理后台;

3.可运维性设计:增加管理后台;

4.安全/成本设计:

6. 演进规划

第一期完成学生信息子系统、课程信息子系统、权限信息子系统的开发。

第二期完成考试管理子系统的开发。

 

发布于: 50 分钟前阅读数: 5
用户头像

袁小芬

关注

还未添加个人签名 2019.04.22 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块三作业