写点什么

模块 3 作业(外包学生管理系统架构文档)

作者:Geek_701557
  • 2022 年 6 月 05 日
  • 本文字数:1598 字

    阅读完需:约 5 分钟

前言


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


词汇表

Nginx:一个高性能的 HTTP 和反向代理 WEB 服务器。

  • MySql:最流行的开源的关系型数据库管理系统之一。

  • Redis:开源的 Key-Value 存储系统,支持网络、可基于内存亦可持久化的日志型数据库。


  • 1. 业务背景

    随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源, 处理效率也十分低下;同时由于数据较多,没有统一管理,纸质或者非纸质的数据资料简易丢失,查询管理不便,为提高学生管理的管理水平,优化资源,尽可能降低管理成本,所以需要设计开发一套学生管理系统。

    解决的问题包括:学生信息管理数据信息量大造成的修改不方便,对一系列数据进行分析时花费时间长、数据易丢失、多维度数据关联等问题,帮助学生管理人员有效管理学生信息。

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

    达到的目标:提供一个易用,高效,功能完整的学生信息管理系统。

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


    2. 约束和限制

    主要的限制性要求:

    1. 最迟 1 个年内完成

    2. 成本不能超过 100 万

    3. 数据可以极少量丢失,但需要事后补充完整

    4. 系统前台包括网页及手机 APP 端,网页端需要支持包括 IE 浏览器在内的 2 款浏览器,手机端需要支持安卓及苹果二个系统

    5. 要防止学生数据被盗,需要加密


    3. 总体架构

    3.1 架构分析

    3.1.1 高可用

    本系统是学校的内部系统,并不需要非常高的可用性,短暂的失去服务并不会造成多大的影响,所以并不需要多活。但是对于学生的数据还是需要保护的,可以采用 Mysql 主备的方案,备份数据。

    3.1.2 可扩展性

    目前的系统,按学生管理,权限管理,考试管理等几个模块进行了划分,后续如果有新的其它类别的需求,可以新增单独的组件,和现有的架构能很好的融合。

    3.1.3 安全性

    通过权限管理模块,进行常规的访问权限控制,账户及角色权限控制,对于敏感信息,进行加密或脱敏处理。

    3.1.4 高性能

    没有突然单点高峰访问的场景,且为内部使用,使用人数固定,并不会出现突然的增多,并没有高性能的需求。


    3.2 总体架构

    系统边界白盒图


    系统架构图

    系统主要分为 4 个子系统,分别为学生管理系统、权限管理系统、考试管理系统、课程管理系统,通过 Nginx 进行访问;数据部分采用 Mysql 主备方式,保证数据的可靠性。

    1)学生管理子系统:学生信息的管理

    2)权限管理子系统:角色管理,不同角色权限的管理

    3)考试管理子系统:考试内容的管理,试卷生成,成绩批改,考试安排等

    4)课程管理子系统:课程安排、布置/批改作业、签到等

    5)数据采用 Mysql 主从备份,记录所有的数据信息。

    4. 详细设计

    4.1 核心功能

    4.1.1 考试流程

    考试流程


    4.2 关键设计

    1.系统拆分为多个子系统,单独部署、开发,降低耦合,有利于业务的后期扩展

    2.数据存储采用 mysql, 主机负责读写,主备间通过 binlog 同步,如果主机挂了,会丢失部分数据,而在这一时间段内子系统读写数据库操作失败,用户需要等数据切换到备机再操作一次。

    4.3 设计规范

    1.前后端分离,后端服务采用 C++开发,手机 APP 采用 Html5 开发, 前端通过 restful 接口和后台服务交互,后端各子系统通过 thrift RPC 访问。

    2.Mysql 使用 innoDB 存储引擎

    3.消息结构采用 google protobuf

    5. 质量设计

    可测试性:后台 90%覆盖率的单元测试,完善的自动化测试,完善的全流程的测试用例

    可维护性:详细的部署文档,系统使用手册,数据库文档,组件指标异常的告警

    可观测性:完整的后台日志文档,组件指标的告警或提示

    成本:控制在 100 万内

    6. 演进规划

    6.1 项目一期

    完成学生管理、权限管理、课程管理、三个子系统的开发

    6.2 项目二期

    根据一期系统的使用体验及优化建议,进行优化,同时开发考试管理、通知推送,简单的系统运维监控。


    用户头像

    Geek_701557

    关注

    还未添加个人签名 2021.06.28 加入

    还未添加个人简介

    评论

    发布
    暂无评论
    模块3作业(外包学生管理系统架构文档)_Geek_701557_InfoQ写作社区