基于SpringBoot的毕业设计管理系统的设计与实现
摘 要
当前社会信息化进程的快速发展,高校毕业设计管理系统的设计与实现也是应对信息化需求的重要举措之一。随着互联网技术的日新月异,传统的毕业设计管理方式已无法满足快速、高效的需求,因此需要借助信息技术提供更便捷、高效的管理方案。
本文介绍了一个基于springboot框架的毕业设计管理系统的设计与实现过程,旨在利用Java编程语言,使用springboot技术框架,采取MySQL数据库构建一个高效、便捷、安全、友好的毕业设计管理系统。根据用户需求分析,确定了系统的核心功能,主要包括系统用户、毕设选题管理、申请选题管理、毕设资料管理、评审成绩管理、通知信息管理、系统管理、校园公告管理、资源管理等功能模块,能够有效促进毕业设计管理工作智能化、数据化、信息化发展,实现对毕业设计全过程的自动化管理,提升管理水平,推进学校信息化建设。最后,对实现的毕业设计管理系统进行了全面的测试,验证了系统的运行稳定性和数据库准确性。
关键词:springboot;毕业设计管理系统;Java;MySQL
Abstract
The rapid development of information technology in the current society has made the design and implementation of a graduation project management system in universities an important measure to meet the demand for information technology. With the rapid development of Internet technology, the traditional graduation design management method can no longer meet the rapid and efficient needs, so it is necessary to provide a more convenient and efficient management scheme with the help of information technology.
This article introduces the design and implementation process of a graduation project management system based on the Spring Boot framework, aiming to use Java programming language, Spring Boot technology framework, and MySQL database to build an efficient, convenient, secure, and friendly graduation project management system. Based on user needs analysis, the core functions of the graduation project management system are determined, including system users, graduation project topic management, application topic management, graduation project data management, evaluation score management, notification information management, system management, campus announcement management, resource management, and other functional modules. These modules can effectively promote the intelligent, data-driven, and information-based development of graduation project management, achieve automated management of the entire graduation project process, improve management level, and promote the informationization construction of the school. Finally, this article conducted a comprehensive test on the implemented graduation project management system, verifying its operational stability and database accuracy.
Keywords: springboot; Graduation Design Management System; Java; MySQL
目 录
1 绪 论
1.1 研究背景与意义
当前社会信息化进程的快速发展,高校毕业设计管理系统的设计与实现也是应对信息化需求的重要举措之一。随着互联网技术的日新月异,传统的毕业设计管理方式已无法满足快速、高效的需求,因此需要借助信息技术提供更便捷、高效的管理方案。
本文介绍了一个基于springboot框架的毕业设计管理系统的设计与实现过程,旨在利用Java编程语言,使用springboot技术框架,采取MySQL数据库构建一个高效、便捷、安全、友好的毕业设计管理系统。根据用户需求分析,确定了系统的核心功能,主要包括系统用户、毕设选题管理、申请选题管理、毕设资料管理、评审成绩管理、通知信息管理、系统管理、校园公告管理、资源管理等功能模块,能够有效促进毕业设计管理工作智能化、数据化、信息化发展,实现对毕业设计全过程的自动化管理,提升管理水平,推进学校信息化建设。最后,本文对实现的毕业设计管理系统进行了全面的测试,验证了系统的稳定性和推荐准确性。
毕业设计管理系统的设计与实现有着重要的研究意义。首先,通过本系统,能够提高毕业设计管理的效率和质量,让学生、指导老师和管理员之间的沟通更加顺畅。其次,帮助学生更好地选择毕业设计题目、管理毕设资料,方便指导老师了解学生选题情况,审核学生毕设资料,对学生毕设进行评分,简化管理流程,提升整体毕业设计过程的质量。再者毕业设计管理系统的开发能够充分利用互联网、数据库、前后端技术等资源,实现对毕业设计全过程的自动化管理,提升管理水平,推进学校信息化建设。因此,毕业设计管理系统的设计与实现能够更好地适应当前社会对高等教育质量,对学校毕业设计工作的推进和学生素质的提升具有积极的促进作用。
在国内外,关于高校毕业设计管理系统设计与实现的研究已经得到了广泛关注。国外一些发达国家的大学已经建立了先进的毕业设计管理系统,利用先进的信息技术实现对学生、导师和评审人员之间的协作和信息交流。这些系统不仅能够提高毕业设计过程的效率,还能够提升毕业生的综合素质和就业竞争力。
在国内,随着高校信息化建设的不断推进,越来越多的高校开始关注毕业设计管理系统的设计和实现。已有一些高校在自身特点和需求的基础上开展了系统的研究与实践,取得了一定的成果。一些研究重点包括系统的功能设计、技术架构、用户体验等方面,以提高毕业设计管理的效率和质量。
总的来说,国内外的研究都表明,利用信息技术设计和实现高校毕业设计管理系统对提升高校毕业生素质、推动教学改革具有重要意义。未来的研究还需进一步深入,不断优化系统设计,提高管理效率,促进高等教育的发。
1.3 论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:绪论。第一章主要介绍了课题研究的背景,系统开发的意义和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统总体设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
2 系统需求分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
2.1 可行性分析
(1)技术可行性:
Spring Boot作为一个成熟的开发框架,具有丰富的功能和广泛的支持。它提供了快速开发和部署应用程序的能力,适合构建所需的功能和性能要求。Java作为一种流行的编程语言,具有广泛的库和工具生态系统,可以满足项目的需求。MySQL是一种可靠的关系型数据库管理系统,具备良好的性能和稳定性。使用Java开发技术、通过基于spring boot框架和MySQL结合起来研发一个毕业设计管理系统,一定是合理而且有效的。因此,在技术层面上,该项目是可行的。
(2)经济可行性:
Spring Boot的自动配置功能可以根据应用程序的依赖和环境来进行自动配置,减少了大量的手动配置工作,可以降低开发成本,并且该系统使用的各种开发工具,大多都能够免费从网上下载,对于这些工具和技术,也都在学校学过,所以可以由本人独立操作完成,基本无需额外的成本;此外,Spring Boot的代码质量和可维护性较高,可以降低后期维护成本,所以该系统的研究具备经济可行性。
(3)操作可行性:
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以毕业设计管理系统具备操作可行性。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。
图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。
图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。
图2-3 数据删除流程图
2.3.1 功能需求分析
按照毕业设计管理系统的角色划分为学生用户模块,老师用户模块和管理员模块这三大部分。
1、学生用户模块:
- 注册登录:学生可以通过注册成为系统用户,可使用账号密码进行登录,使用系统功能。
- 首页:学生用户登录系统后,首先进入前台首页界面,可查看轮播图、校园公告、校园资讯、毕设选题推荐等信息,并可使用系统其他功能。
- 校园公告:学生用户可查看包括关于我们、联系方式、网站介绍等管理员发布的所有校园公告信息详情。
- 校园资讯:学生用户可查看管理员发布的所有校园资讯信息详情,支持局部、筛选、排序搜索,同时支持热门文章推荐,进行点赞、收藏和评论。
- 毕设选题:学生用户可查看发布的所有毕设选题信息详情,支持老师姓名、选题名称、选题类型、排序搜索,可进行点赞、收藏和评论,并可点击申请选题操作,填写并提交申请选题信息。
- 我的账户:学生用户可对自己的个人资料进行管理,包括修改密码和修改资料。
- 个人中心:学生用户可对自己的个人首页、申请选题、毕设资料、评审成绩、通知信息、收藏等信息进行管控和查阅信息详情。确认申请选题情况;上传毕设资料,等待审核;了解自己的评审绩信息;知悉管理员发布的通知信息。
2、老师用户模块:
- 注册登录:老师可以通过注册成为系统用户,可使用账号密码进行登录,使用系统功能
- 首页:指导老师登录系统后,首先进入前台首页界面,可查看轮播图、校园公告、校园资讯、毕设选题推荐等信息,并可使用系统其他功能。
- 校园公告:指导老师可查看包括关于我们、联系方式、网站介绍等管理员发布的所有校园公告信息详情。
- 校园资讯:指导老师可查看管理员发布的所有校园资讯信息详情,支持局部、筛选、排序搜索,同时支持热门文章推荐,进行点赞、收藏和评论。
- 毕设选题:指导老师可查看发布的所有毕设选题信息详情,支持老师姓名、选题名称、选题类型、排序搜索,可进行点赞、收藏和评论。
- 我的账户:指导老师可对自己的个人资料进行管理,包括修改密码和修改资料。
- 个人中心:指导老师可对自己的个人首页、毕设选题、申请选题、毕设资料、评审成绩、收藏等信息进行管控和查阅信息详情。查看评审成绩统计数据分析图表;添加发布毕设选题信息;确认学生用户申请选题情况;审核学生用户提交的毕设资料;对学生用户的毕设进行评分。
3、管理员管理模块:
- 登录:管理员账号密码由系统生成,可使用账号密码可进行登录,使用系统功能,并对个人信息和密码进行管理。
- 后台首页:管理员登录系统后台后,首先进入后台首页界面,可查看评审成绩统计信息数据分析图表。
- 系统用户:管理员可对学生用户、指导老师和管理员等系统用户信息进行管控和查看其信息详情,进行增改删查操作。
- 毕设选题管理:管理员可查看所有毕设选题信息详情,进行增改删查操作,支持老师姓名、选题名称、选题类型搜索,并可查看评论信息。
- 申请选题管理:管理员可查看所有申请选题信息详情,进行查询和删除操作,支持想选题名称、选题类型搜索,可审核申请选题信息,并可点击上传资料操作。
- 毕设资料管理:管理员可查看所有毕设资料详情,进行查询和删除操作,支持学生姓名、选题名称、选题类型、审核状态搜索,可审核学生用户上传的毕设资料,并可点击评分操作。
- 评审成绩管理:管理员可查看所有评审成绩信息详情,进行查询和删除操作,支持学生姓名、选题名称、选题类型搜索。
- 通知信息管理:管理员可查看所有通知信息信息详情,进行增删改查操作,支持学生姓名搜索。
- 系统管理:管理员可对首页的轮播图进行管理和查看其信息详情,进行增删改查操作,支持标题搜索。
- 校园公告管理:管理员可对校园公告进行管理理和查看其信息详情,进行增删改查操作,支持标题搜索。
- 资源管理:管理员可对校园资讯和资讯分类进行管理理和查看其信息详情,进行增删改查操作;其中校园资讯支持标题、标签、分类搜索,可查看其查看评论信息;资讯分类支持类型名称搜索。
毕业设计管理系统的非功能性需求比如毕业设计管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1毕业设计管理系统非功能需求表
安全性 | 主要指毕业设计管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指毕业设计管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响毕业设计管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着毕业设计管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 毕业设计管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.4 系统用例分析
通过2.3功能的分析,得出了本毕业设计管理系统的用例图:
图2-1 学生用户角色的用例展示。
图2-1 毕业设计管理系统学生用户角色用例图
图2-2 老师用户角色的用例展示。
图2-3就是管理员角色的用例展示。
图2-3毕业设计管理系统管理员角色用例图
2.5 本章小结
本章主要通过对毕业设计管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个毕业设计管理系统要实现的功能。同时也为毕业设计管理系统的代码实现和测试提供了标准。
本章主要讨论的内容包括毕业设计管理系统的功能模块设计、数据库系统设计。
3.1 系统架构设计
本毕业设计管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1毕业设计管理系统系统架构设计图
表现层(UI):又称UI层,主要完成本毕业设计管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本毕业设计管理系统时的舒适度。UI的界面设计也要适应不同版本的毕业设计管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本毕业设计管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本毕业设计管理系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本毕业设计管理系统的数据存储和管理功能。
3.2 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本毕业设计管理系统中的用例。那么接下来就要开始对本毕业设计管理系统的架构、主要功能和数据库开始进行设计。毕业设计管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 毕业设计管理系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个毕业设计管理系统中主要的数据库表总E-R实体关系图。
图3-3 毕业设计管理系统总E-R关系图
通过上一小节中毕业设计管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表applying_for_topic_selection (申请选题)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | applying_for_topic_selection_id | int | 10 | 0 | N | Y | 申请选题ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | application_time | date | 10 | 0 | Y | N | 申请时间 | |
5 | guidance_teacher | int | 10 | 0 | Y | N | 0 | 指导老师 |
6 | teachers_name | varchar | 64 | 0 | Y | N | 老师姓名 | |
7 | topic_name | varchar | 64 | 0 | Y | N | 选题名称 | |
8 | topic_type | varchar | 64 | 0 | Y | N | 选题类型 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | completion_materials_id | int | 10 | 0 | N | Y | 毕设资料ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | topic_name | varchar | 64 | 0 | Y | N | 选题名称 | |
5 | topic_type | varchar | 64 | 0 | Y | N | 选题类型 | |
6 | guidance_teacher | int | 10 | 0 | Y | N | 0 | 指导老师 |
7 | completion_report | text | 65535 | 0 | Y | N | 毕设报告 | |
8 | completion_materials | varchar | 255 | 0 | Y | N | 毕设资料 | |
9 | completion_achievements | varchar | 255 | 0 | Y | N | 毕设成果 | |
10 | completion_progress | varchar | 64 | 0 | Y | N | 毕设进度 | |
11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | guidance_teacher_id | int | 10 | 0 | N | Y | 指导老师ID | |
2 | teachers_name | varchar | 64 | 0 | Y | N | 老师姓名 | |
3 | teachers_phone_number | varchar | 64 | 0 | Y | N | 老师电话 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_message_id | int | 10 | 0 | N | Y | 通知消息ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | notification_time | date | 10 | 0 | Y | N | 通知时间 | |
5 | notification_matters | varchar | 64 | 0 | Y | N | 通知事项 | |
6 | notification_content | text | 65535 | 0 | Y | N | 通知内容 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | review_score_id | int | 10 | 0 | N | Y | 评审成绩ID | |
2 | guidance_teacher | int | 10 | 0 | Y | N | 0 | 指导老师 |
3 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
4 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
5 | topic_name | varchar | 64 | 0 | Y | N | 选题名称 | |
6 | topic_type | varchar | 64 | 0 | Y | N | 选题类型 | |
7 | review_score | int | 10 | 0 | Y | N | 0 | 评审成绩 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_phone_number | varchar | 16 | 0 | Y | N | 学生电话 | |
4 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表topic_selection_for_graduation_design (毕设选题)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | topic_selection_for_graduation_design_id | int | 10 | 0 | N | Y | 毕设选题ID | |
2 | guidance_teacher | int | 10 | 0 | Y | N | 0 | 指导老师 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 老师姓名 | |
4 | topic_name | varchar | 64 | 0 | Y | N | 选题名称 | |
5 | topic_type | varchar | 64 | 0 | Y | N | 选题类型 | |
6 | topic_cover | varchar | 255 | 0 | Y | N | 选题封面 | |
7 | topic_description | text | 65535 | 0 | Y | N | 选题描述 | |
8 | topic_requirements | text | 65535 | 0 | Y | N | 选题要求 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
整个毕业设计管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 系统实现
毕业设计管理系统的详细设计与实现主要是根据前面的毕业设计管理系统的需求分析和毕业设计管理系统的总体设计来设计页面并实现业务逻辑。主要从毕业设计管理系统界面实现、业务逻辑实现这两部分进行介绍。
4.1 前台用户功能模块
4.1.1 前台首页界面
当用户进入毕业设计管理系统的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是校园公告、校园资讯、毕设选题推荐等系统信息,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
学生和指导老师可以通过注册成为系统用户,点击右上角“注册”按钮进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等必要信息后点击“注册”按钮,系统将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册界面展示如下图4-2所示。
图4-2 用户注册界面图
用户注册的关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
4.1.3 用户登录界面
用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在验证信息一致才能成功登录系统;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
用户登录关键代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 校园资讯界面
学生用户和指导老师可查看管理员发布的所有校园资讯信息详情,支持局部、筛选、排序搜索,同时支持热门文章推荐,进行点赞、收藏和评论。界面如下图所示。
图4-7 校园资讯界面图
4.1.5 毕设选题界面
学生用户和指导老师可查看发布的所有毕设选题信息详情,支持老师姓名、选题名称、选题类型、排序搜索,可进行点赞、收藏和评论。同时学生用户还可以点击申请选题操作,填写并提交申请选题信息。界面如下图所示。
图4-6学生用户毕设选题详情界面图
4.1.6 学生用户个人中心界面
学生用户可对自己的个人首页、申请选题、毕设资料、评审成绩、通知信息、收藏等信息进行管控和查阅信息详情。确认申请选题情况;上传毕设资料,等待审核;了解自己的评审绩信息;知悉管理员发布的通知信息。
例如, 学生用户个人中心申请选题界面如下图所示。
图4-7 学生用户个人中心申请选题界面图
例如, 学生用户个人中心通知信息界面如下图所示。
图4-8学生用户个人中心通知信息界面图
4.1.7 指导老师个人中心界面
指导老师可对自己的个人首页、毕设选题、申请选题、毕设资料、评审成绩、收藏等信息进行管控和查阅信息详情。查看评审成绩统计数据分析图表;添加发布毕设选题信息;确认学生用户申请选题情况;审核学生用户提交的毕设资料;对学生用户的毕设进行评分。
例如, 指导老师个人中心毕设选题界面如下图所示。
图4-9指导老师个人中心毕设选题界面图
例如, 指导老师个人中心评审成绩界面如下图所示。
图4-10指导老师个人中心评审成绩界面图
4.2 后台管理员功能模块
管理员登录系统后台后,首先进入后台首页界面,可查看评审成绩统计信息数据分析图表。界面如下图所示。
图4-11后台首页界面图
4.2.2 系统用户管理界面
管理员可对学生用户、指导老师和管理员等系统用户信息进行管控和查看其信息详情,进行增改删查操作。界面如下图所示。
图4-12系统用户管理界面图
管理员可查看所有毕设选题信息详情,进行增改删查操作,支持老师姓名、选题名称、选题类型搜索,并可查看评论信息。界面如下图所示。
图4-13毕设选题管理界面图
管理员可查看所有申请选题信息详情,进行查询和删除操作,支持想选题名称、选题类型搜索,可审核申请选题信息,并可点击上传资料操作。界面如下图所示。
图4-14申请选题管理界面图
管理员可查看所有毕设资料详情,进行查询和删除操作,支持学生姓名、选题名称、选题类型、审核状态搜索,可审核学生用户上传的毕设资料,并可点击评分操作。界面如下图所示。
图4-15毕设资料管理界面图
管理员可查看所有通知信息详情,进行增删改查操作,支持学生姓名搜索。界面如下图所示。
图4-16通知信息管理添加界面图
添加的代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可对首页的轮播图进行管理和查看其信息详情,进行增删改查操作,支持标题搜索。界面如下图所示。
图4-17系统管理界面图
轮播图上传的关键代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
4.2.8 资源管理界面
管理员可对校园资讯和资讯分类进行管理理和查看其信息详情,进行增删改查操作;其中校园资讯支持标题、标签、分类搜索,可查看其查看评论信息;资讯分类支持类型名称搜索。界面如下图所示。
图4-18资源管理界面图
5系统测试
5.1 系统测试目的
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表5-1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表5-2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是毕设选题功能的测试用例,检测了毕设选题的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表5-3 毕设选题的测试用例
功能描述 | 用于毕设选题 | |
测试目的 | 检测毕设选题时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加毕设选题,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加毕设选题,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改毕设选题,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改毕设选题,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除毕设选题,选择毕设选题删除 | 提示删除成功 | 与预期结果一致 |
点击搜索毕设选题,输入存在的毕设选题名 | 查找出毕设选题 | 与预期结果一致 |
点击搜索毕设选题,输入不存在的毕设选题名 | 不显示毕设选题 | 与预期结果一致 |
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。
随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。毕业设计管理系统的开发是采用Java开发语言,基于Springboot框架,使用MySQL数据库系统进行储存和处理数据。
本文总结了毕业设计管理系统实现背景、意义与现状,介绍系统所使用的开发工具和相关技术,接着阐述了系统的具体业务需求,在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。同时,根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块,实现了毕业设计管理系统所需的一些基本功能。并且通过系统测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性,并对发现的漏洞和错误进行了完善,进而提高了系统整体的实用性。在系统投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好,数据安全。整个系统的各个功能设计合理,体现了人性化、数据化、信息化。
但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。
[1]戴建成,王华,范玉婷.基于SpringBoot+VUE的高校廉政档案管理系统设计与实现[J].产业与科技论坛,2023,22(21):58-60.
[2]曾臻.地方高校毕业设计(论文)管理系统研究与实践——以四川轻化工大学为例[J].科教导刊,2023,(29):18-20.DOI:10.16400/j.cnki.kjdk.2023.29.006.
[3]韩天屹,桑 燕,江海林.基于Springboot和VUE框架的医院需求管理信息系统的实现[J].医学论坛,2023,5(18):
[4]孙超.“互联网+”背景下毕业设计管理系统的研究与设计[J].吉林工程技术师范学院学报,2023,39(08):75-77.
[5]汪涛.基于SpringBoot和人脸识别的企业考勤管理系统设计与实现[D].阜阳师范大学,2023.DOI:10.27846/d.cnki.gfysf.2023.000144.
[6]王东升.基于SpringBoot的闲置资产盘活系统研究与实现[D].烟台大学,2023.DOI:10.27437/d.cnki.gytdu.2023.000734.
[7]杨微微,张雁.本科毕业设计网络化管理的探索与实践[J].中国新通信,2023,25(08):128-130.
[8]王以伍,舒晖.基于SpringBoot+Vue前后端分离的高校实验室预约管理系统的设计与实现[J].现代计算机,2023,29(01):114-117.
[9]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
[10]孙洪盼.基于SpringBoot和Vue的友为交流社区的设计与实现[D].重庆大学,2022.DOI:10.27670/d.cnki.gcqdu.2022.001430.
[11]刘慧娟.基于SpringBoot的民主测评系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000690.
[12]彭仁松.基于B/S的毕业设计信息管理系统开发[J].现代信息科技,2022,6(09):26-30.DOI:10.19850/j.cnki.2096-4706.2022.09.007.
[13]Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.
[14]余建国,肖芳海,伏顺利,等.面向“互联网+”环境的毕业设计管理系统的设计与应用[J].信息与电脑(理论版),2021,33(01):101-103.
[15]刘晓东,张静.高校毕业设计(论文)教学管理信息系统应用探讨[J].科技与创新,2020,(21):106-107.DOI:10.15913/j.cnki.kjycx.2020.21.048.
[16]孟子群,孙超.本科高校毕业设计(论文)网络管理系统研究与实践[J].吉林工程技术师范学院学报,2020,36(10):34-36.
[17]胡明,文翠,黄川.基于SpringBoot的毕业论文管理系统设计和开发[J].电脑编程技巧与维护,2020,(07):92-93+104.DOI:10.16184/j.cnki.comprg.2020.07.033.
[18]赵明文,闾枫.基于SpringBoot的高校学习社区的设计与实现[J].电子测试,2020,(13):92-93+129.DOI:10.16520/j.cnki.1000-8519.2020.13.035.
[19]刘继华,路晓梦,张志宏,等.基于SSM框架的毕业设计管理系统设计与实现[J].吕梁学院学报,2020,10(02):34-38.
[20]晏成竹.基于.Net高校毕业设计网上选题系统设计与实现[D].电子科技大学,2019.
回忆过去,许许多多的事情浮现在脑海,刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢信息学院所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。
在大学生活即将划上一个句号时候,在此我要特别感谢指导论文设计的老师。本论文是在他的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。老师无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向老师表示衷心的感谢和崇高的敬意,谢谢他细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。最后,我还要感谢我的父母,你们的养育之恩我永远不会忘记,将来我也要用我的成绩回报你们。
由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。
请关注点赞+私信博主,免费领取项目源码