学生信息管理系统
项目源码:点此直达
链接:https://github.com/Student-Info-Manager-System
系统工具介绍
后端技术
SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Mybatis-Plus
Mybatis升级版,为简化开发而生。润物无声:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。效率至上:只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。丰富功能:代码生成、物理分页、性能分析等功能一应俱全。MybatisPlus曾获2019 年度开源中国最受欢迎的软件,开发工具类TOP1 。
MySql
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库。
Redis缓存
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。图1-2是Redis的图解过程。
图2-1:
2.1.5 云存储
云存储是一种网上在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。这样一来既能加快信息的访问速度,又能使网站整体性能提升,减小服务器的负担。
Shiro安全框架
Shiro是一款安全框架,提供身份验证、授权、密码学和会话管理。在本系统开发中涉及到登录功能,为防止用户在退出浏览器后需再次登录的繁琐步骤,系统加入Shiro安全框架来管理用户的登录,实现在本地一次登录即可长期使用的状态。Shiro图解2-2。
图2-2:
AOP切面编程
该系统在良好的框架结合后拥有强大的扩展性,对于系统日志的存储操作,我们希望在用户访问接口时就会自动记录下用户的操作信息,而日志操作既然需要在大部分接口上都需用到,就可以将其功能以切面的形式切到改接口。AOP可以很好的将日志操作业务与其他模块业务分离,便于开发与扩展。AOP图解2-3。
图-23:
前端技术
vue
Vue是一款渐进式JavaScript
框架,专注mvvm思想架构。该框架颠覆了已有的前端框架设计,有三大特性,易用:在拥有HTML、CSS、JavaScript的基础上即刻阅读指南就能立刻开始构建应用!灵活:不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩.高效:20kBmin+gzip 运行大小超快虚拟 DOM最省心的优化。对于mvvm架构图解如2-4.
图2-4:
Axios
Axios底层封装ajax,拥有易用、简洁且高效的http库,支持node端和浏览器端同样的API,平台切换无压力,支持Promise管理异步,告别传统callback方式;支持拦截器等高级配置,axios相关的npm包数量一直在增长。
Vant UI
Vant UI,一套为开发者准备的基于 Vue的移动端组件库.,使用组件 Demo快速体验交互细节;使用前端框架封装的代码能帮助工程师快速开发。
系统功能分析
全局功能脑图。
开发具体功能能前,对实际业务需求进行分析罗列。
概念结构设计
根据以上功能需求,我们的最终全局ER图如下图3-5。对于每张表都有的字段,将其属性抽取作为公共属性(以下ER图仅列举出主要属性,具体请见逻辑设计表结构)。
图3-5:
用户界面
登录页
登录页可以选择登录角色,包含管理员和学生,如图4-1所示。
图4-1:
公共菜单
系统使用两套公共菜单,在学生端和管理员端分别有不同的操作权限,如图4-2-1和图4-1-2所示。
图4-2-1管理员端:
图4-2-2学生端:
信息搜索
管理员和学生都有搜索的功能,通过对相应内容的检索,可以搜索到需要查看的内容,如图4-3所示。
图4-3:
动态关联
当管理员对某些信息进行增加的操作时,有关的会读取相关的数据进行匹配,例如添加学生必须在已有的班级上选择添加,如图4.4所示。
图4-4: