基于web的校园失物招领系统设计与实现

摘 要

随着社会的发展和校园生活的丰富多样,物品的丢失和寻回问题日渐突出。为了解决这一问题,本论文设计并实现了一基于Web的校园失物招领系统。该系统旨在为师生提供一个便捷的平台,以帮助他们快速发布失物招领、认领物品、寻物启示以及交流沟通。通过引入Java语言、MySQL数据库、Spring Boot框架和Web技术,系统不仅具备了良好的性能和用户体验,同时也实现了安全性和高可用性等要求。基于Web的校园失物招领系统研究与实现不仅可以提升校园管理效率,实现校园信息化管理,促进师生之间的信息沟通,减少物品遗失带来的损失,同时还可以增强学校的服务能力。

关键词:校园失物招领系统;Web;Java语言;Mysql数据库;springboot框架

Abstract

With the development of society and the richness and diversity of campus life, the problem of lost and retrieved items has become increasingly prominent. To address this issue, this paper designs and implements a web-based campus lost and found system. The system aims to provide a convenient platform for teachers and students to quickly publish lost and found items, claim items, search tips, and communicate with each other. By introducing Java language, MySQL database, Spring Boot framework, and web technology, the system not only has good performance and user experience, but also meets requirements for security and high availability. The research and implementation of a web-based campus lost and found system can not only improve campus management efficiency, achieve campus information management, promote information communication between teachers and students, reduce losses caused by lost items, but also enhance the school's service capabilities.

Key words: campus lost and found system; Web; Java language; MySQL database; Springboot framework

目录

1 绪论

1.1 研究背景

1.2 研究现状

1.3 研究内容

1.4 论文结构

2 系统关键技术

2.1 Java技术

2.2 Mysql数据库

2.3 Spring Boot框架

2.4 Web技术

2.5 B/S结构

3 系统分析

3.1 可行性分析

3.2 系统性能分析

3.3 系统功能分析

3.4 系统流程分析

4 系统设计

4.1 系统结构设计

4.2 数据库设计

5 系统详细设计

5.1普通用户功能模块

5.2管理员功能模块

6 系统测试

6.1 测试定义

6.2 测试目的

6.3 测试方案

6.4 测试用例

6.5 测试分析

7 结论

参考文献

谢辞

1 绪论

1.1 研究背景

随着社会的快速发展,人们的生活方式和工作、学习环境不断变化,尤其是在校园内,学生的学习资料、个人物品等日常物品的丢失频率逐渐增加。物品的遗失不仅影响了个人的学习和生活,也造成了一定的经济损失。与此同时,寻找失物的方式常常繁琐且效率低下,传统的寻找方式难以满足现代学生对信息快速获取和交流的需求。因此,建立一个高效、便捷的失物招领系统显得尤为重要。

基于web的校园失物招领系统设计与实现的具有重要的现实意义和实践价值。首先,借助高效且便捷的校园失物招领系统,学校能够更好地管理遗失物品,提高物品归还率,减少物品损失提升校园管理效率促进校园管理的现代化、信息化建设。接着,本系统提供了一个信息发布和交流的平台,方便师生之间的信息沟通,促进师生交流交互提高校园内的信息透明度。同时,本校园失物招领系统的建立可以增强学校服务能力,让学校在服务方面更具人性化和现代化,提升在校人员的满意度和归属感。此外本研究将为后续类似系统的开发和研究提供借鉴和参考,推动校园信息化建设的发展。

1.2 研究现状

在国内,校园失物招领系统的研究和实践逐渐受到重视。众多高校已开始尝试借助信息技术手段来提升失物招领的效率。一些高校通过开发基于Web的失物招领平台,利用Java、PHP、Python等开发语言,结合数据库技术,实现信息的高效管理和便捷查询。部分高校已经落地了失物招领系统,并取得了一定的成功。例如,通过微信公众号、小程序等移动端应用,实现便捷的信息查询和发布同时,近年来,越来越多的研究侧重于用户体验,关注界面设计、交互功能等,力求提高学生的使用便利性。此外,随着各种系统的推广,数据隐私和信息安全问题逐渐受到重视,相关研究开始探讨在系统设计中如何更好地保护用户信息。

国外对校园失物招领系统的研究相对成熟,尤其是在信息技术和用户体验方面的应用更为广泛。许多高校开发了全面的失物招领系统,利用现代Web技术,确保信息能够及时更新,便于师生快速查询和交互。同时,在国外,许多校园失物招领系统将社交媒体融入平台设计,通过社交网络帮助传播失物信息,提高寻物的成功率。部分国外研究还应用大数据和机器学习技术,对物品丢失的规律进行分析,帮助学校提高物品管理和防损能力。另外,一些学者专注于用户如何在系统中互动,研究如何通过设计优化用户体验,提升系统的有效性。

总体来看,国内外在失物招领系统方面都有所探索,但仍存在提升空间,特别是在信息整合、用户体验和管理模式创新等领域。本研究旨在借鉴上述研究成果,推动校园失物招领系统的进一步发展。

1.3 研究内容

校园失物招领系统的开发和设计根据用户的实际情况出发,对系统的需求进行了详细的分析,然后进行系统的整体设计,最后通过测试使得系统设计的更加完整,可以实现系统中所有的功能,在开始编写论文之前亲自到图书馆借阅springboot框架书籍,web技术书籍、Mysql数据库书籍等编程书籍,然后针对开发的校园失物招领系统,去网上查找了很多别人做好的系统,参照他们的设计结果,来对自己的系统进行更加详细的系统的设计,将系统中所有的功能结果一一列举出来,然后进行需求分析,最后对所有的功能模块进行编码,最后完成系统的整体测试,实现系统的正常运行。

1.4 论文结构

这次编写的论文包含了六大部分的内容,具体内容如下:

第一部分绪论文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。

第二部分相关技术系统开发用到的各种技术都大致做出了简介。

第三部分系统分析对系统的可行性分析以及对所有功能需求进行详细的分析,来查看该系统是否具有开发的可能。

第四部分系统设计功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示。

第五部分系统实现进行系统主要功能模块的界面展示。

第六部分系统测试测试系统的每一个功能是否能够正常运行,是否可以满足用户的需求。

2 系统关键技术

2.1 Java技术

Java语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。

Java相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它,Java既可以镶嵌使用又可以独力的使用。Java大致可以分成两个部分,一种部分是Java负责的编译,另一种是Java负责的运行。JavaC++语言很相像,但Java在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。Java分布式、体系结构中立的特点也使得其存储更快,编议更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好。

2.2 Mysql数据库

网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。

本次开发的校园失物招领系统使用的数据库是Mysql数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。Mysql是一个开源和多线程的关系管理数据库系统,Mysql是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了多个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。

2.3 Spring Boot框架

Spring Boot是一个用于简化Spring应用程序配置和开发的框架。它采用“约定优于配置”的理念,使得项目能够快速启动和部署。在本系统中,使用Spring Boot能有效简化后端开发流程,提升开发效率,并提供了丰富的自动配置选项来应对不同的需求。

2.4 Web技术

Web技术是构建现代在线系统的基础,包括HTML、CSS和JavaScript等。这些技术使得系统界面美观且交互性强,为用户提供了友好的使用体验。同时,通过Ajax技术实现数据的异步加载,提高了系统的响应速度。

2.5 B/S结构

B/S(浏览器/服务器)结构将客户端和服务器端的职责进行了合理分配,使得用户只需通过浏览器访问系统而无需安装客户端。这样不仅降低了用户的使用门槛,而且便于系统的维护和升级。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。

图2-1 B/S模式三层结构图

3 系统分析

3.1 可行性分析

在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。

3.1.1 技术可行性

校园失物招领系统基于web技术,采用springboot框架Java编程语言和Mysql数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。

3.1.2 经济可行性

在设计该系统的时候主要是从节约成本出发,然后进行具体的系统的设计,在系统的设计过程中由于采用的所有工具以及技术支持全部都是免费的,因此不需要有任何的成本就可以进行该系统的设计。所用到的所有资源都是免费的,只要有网络就可以进行下载使用,不需要支付相应的费用,因此该项目在经济方面是完全可以实行的。

3.1.3 操作可行性

本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。

从上面几个部分的可行性分析得出,这次开发的校园失物招领系统在开发上面没有什么大问题,值得开发。

3.2 系统性能分析

1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒,并支持至少10000人同时在线所有系统。

(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。

(3)储存性高:因为校园失物招领系统中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。

4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。

5)稳定性需求:开发的校园失物招领系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。

3.3 系统功能分析

校园失物招领系统主要包括两大功能模块,即管理员功能模块和普通用户功能模块

1)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员功能来管理后台系统。主要功能有:登录、后台首页、系统用户(普通用户、管理员)、物品分类管理、失物招领管理、认领记录管理、寻物启示管理、系统管理、通知公告管理、资源管理(校园资讯、资讯分类)、留言管理、交流管理(交流论坛、论坛分类)等功能。

管理员用例图如图3-1所示。

图3-1 管理员用例图

管理员模块功能说明如下

登录:管理员账号密码由系统生成,可使用账号密码可进行登录,使用系统功能,并对个人信息和密码进行管理

系统用户:管理员可管理和查看系统用户信息,包括对普通用户和管理员进行管控,进行添加,编辑、删除、查询操作,可进入详情页浏览

物品分类管理:管理员可管理和查看物品分类信息,进行添加,编辑、删除、查询操作,支持分类搜索,可进入详情页浏览

失物招领管理:管理员可管理和查看失物招领信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,审核失物招领信息(审核通过才可显示在系统前台界面),并可查看评论内容

认领记录管理:管理员可管理和查看认领记录信息,进行查询、删除操作,可进入详情页浏览,审核认领记录信息

寻物启示管理:管理员可管理和查看寻物启示信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,审核寻物启示信息(审核通过才可显示在系统前台界面),并可查看评论内容

系统管理:管理员可对管理和查看系统前台首页的轮播图,进行添加,编辑、删除、查询操作,可进入详情页浏览

留言管理:管理员可对管理和查看留言反馈信息,进行查询、删除操作,可进入详情页浏览,可点击回复按钮,回复留言反馈,并可查看已回复的内容

通知公告管理:管理员可对管理和查看通知公告信息,进行添加,编辑、删除、查询操作,可进入详情页浏览

资源管理:管理员可管理和查看校园资讯和资讯分类信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,并可查看校园资讯的评论内容

交流管理:管理员可管理和查看交流论坛和论坛分类信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,并可查看交流论坛的评论内容

2普通用户:首页、交流论坛、通知公告、校园资讯、留言反馈、失物招领、寻物启示、我的账户、个人中心(个人首页、失物招领、认领记录、寻物启示、收藏)等功能,普通用户如图3-2所示。

图3-2 普通用户用户用例图

普通用户模块功能说明如下

注册登录:用户游客可以通过注册成为系统用户,使用账号密码可进行登录,使用系统功能

首页:用户可通过系统上方搜索框,输入关键词搜索系统信息;查看轮播图、通知公告、校园资讯等展示推荐信息;并通过系统导航栏进入各功能界面操作

交流论坛:用户可搜索和浏览交流论坛消息,支持局部搜索,点击某一信息可进入详情页,进行点赞、收藏和评论,并可点击发布内容按钮,发布交流贴

通知公告:用户可搜索和浏览通知公告信息,点击某一通知公告可进入详情页

校园资讯:用户可搜索和浏览校园资讯信息,提供热门文章推荐,点击某一校园资讯可进入详情页,进行点赞、收藏和评论

留言反馈:用户可浏览留言反馈信息,点击某一留言反馈可进入详情页,并可点击留言按钮,输入并发布留言反馈

失物招领:用户可搜索和浏览失物招领信息,点击某一失物招领可进入详情页,进行点赞、收藏和评论,并可点击认领按钮,填写并提交认领信息

寻物启示:用户可搜索和浏览寻物启示信息,点击某一寻物启示可进入详情页,进行点赞、收藏和评论

我的账户:用户可管理自己的个人资料,包括可进行修改密码和修改资料操作

个人中心:用户展示个人首页、失物招领、认领记录、寻物启示、收藏等子功能入口。

点击“个人首页”可管理和展示自己的个人信息

点击“失物招领”,可管理自己的失物招领信息,包括添加,编辑、删除、查询失物招领信息(发布的失物招领经过审核通过才可显示在系统前端);

点击“认领记录”,可查询和查看自己的认领记录信息,确认审核状态;

点击“寻物启示”,可管理自己的寻物启示信息,包括添加,编辑、删除、查询寻物启示信息(经管理员审核通过才可显示在系统前端);

点击“收藏”,可管理和查看所有收藏信息

3.4 系统流程分析

3.4.1 登录流程

登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图3-3所示。

图3-3 登录流程图

3.4.2 注册流程

未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图3-4所示。

图3-4 注册流程图

3.4.3 添加信息流程

用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图3-5所示。

图3-5 添加信息流程图

3.4.4 删除信息流程

用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图3-6所示。

图3-6 删除信息流程图

4 系统设计

4.1 系统结构设计

整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。

校园失物招领系统结构图如图4-1所示。

图4-1 系统功能结构图

4.2 数据库设计

一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计[12]

4.2.1 数据库E-R图设计

校园失物招领系统采用的是Mysql数据库,数据存储快,因为校园失物招领系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,系统的E-R图如下图所示:

下面是整个校园失物招领系统中主要的数据库表总E-R关系图。

图3.2 校园失物招领系统总E-R关系图

4.2.2 数据库表设计

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表claim_record (认领记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

claim_record_id

int

10

0

N

Y

认领记录ID

2

recruitment_title

varchar

64

0

Y

N

招领标题

3

item_name

varchar

64

0

Y

N

物品名称

4

item_classification

varchar

64

0

Y

N

物品分类

5

pick_up_location

varchar

64

0

Y

N

拾取地点

6

pick_up_time

datetime

19

0

Y

N

拾取时间

7

publish_user

int

10

0

Y

N

0

发布用户

8

consultation_hotline

varchar

64

0

Y

N

咨询电话

9

claim_user

int

10

0

Y

N

0

认领用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

contact_number

varchar

64

0

Y

N

联系电话

12

claim_remarks

text

65535

0

Y

N

认领备注

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

examine_reply

varchar

16

0

Y

N

审核回复

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表discovery_inspiration (寻物启示)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

discovery_inspiration_id

int

10

0

N

Y

寻物启示ID

2

title_of_searching_for_items

varchar

64

0

Y

N

寻物标题

3

item_name

varchar

64

0

Y

N

物品名称

4

item_classification

varchar

64

0

Y

N

物品分类

5

lost_location

varchar

64

0

Y

N

遗失地点

6

lost_time

datetime

19

0

Y

N

遗失时间

7

publish_user

int

10

0

Y

N

0

发布用户

8

contact_number

varchar

64

0

Y

N

联系电话

9

cover_photo

varchar

255

0

Y

N

封面图片

10

content_details

longtext

2147483647

0

Y

N

内容详情

11

hits

int

10

0

N

N

0

点击数

12

praise_len

int

10

0

N

N

0

点赞数

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表item_classification (物品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

item_classification_id

int

10

0

N

Y

物品分类ID

2

item_classification

varchar

64

0

Y

N

物品分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表lost_and_found (失物招领)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

lost_and_found_id

int

10

0

N

Y

失物招领ID

2

recruitment_title

varchar

64

0

Y

N

招领标题

3

item_name

varchar

64

0

Y

N

物品名称

4

item_classification

varchar

64

0

Y

N

物品分类

5

pick_up_location

varchar

64

0

Y

N

拾取地点

6

pick_up_time

datetime

19

0

Y

N

拾取时间

7

publish_user

int

10

0

Y

N

0

发布用户

8

consultation_hotline

varchar

16

0

Y

N

咨询电话

9

cover_photo

varchar

255

0

Y

N

封面图片

10

content_details

longtext

2147483647

0

Y

N

内容详情

11

hits

int

10

0

N

N

0

点击数

12

praise_len

int

10

0

N

N

0

点赞数

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

contact_number

varchar

16

0

Y

N

联系电话

5

class_name

varchar

64

0

Y

N

班级名称

6

learning_id

varchar

64

0

N

N

学习学号

7

examine_state

varchar

16

0

N

N

已通过

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

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

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

5 系统详细设计

5.1普通用户功能模块

5.1.1 首页界面

进入系统后,首先进入前台首页界面,界面简洁,呈上下布局,界面上方为系统搜索框导航栏、注册登录入口等系统功能性操作入口,下方为轮播图、系统推荐或最新信息等系统概览或重要信息界面设计如下图所示

图5-1 首页界面图

首页关键代码如下:

server:

  port: 5000

  servlet:

    context-path: /api

spring:

  mvc:

    static-path-pattern: /upload/**

  resources:

    static-locations: file:此处填写地址/project93355/server/src/main/resources/static

datasource:    

jdbc:mysql://127.0.0.1:3306/projectxxxxx?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8

    username: root

    password: root

    driver-class-name: com.mysql.cj.jdbc.Driver

    type: com.alibaba.druid.pool.DruidDataSource

  jackson:

    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

    default-property-inclusion: ALWAYS

    time-zone: GMT+8

    date-format: yyyy-MM-dd HH:mm:ss

  servlet:

    multipart:

      max-file-size: 500MB

      max-request-size: 500MB

  redis:

    host: 127.0.0.1

    port: 6379

    password:

    database: 2

    lettuce:

      pool:

        max-idle: 30

        min-idle: 10

        max-active: 30

        max-wait: 10000

mybatis-plus:

  mapper-locations: classpath*:mapper/*.xml

  type-aliases-package: com.project.demo.entity

  configuration:

    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

    use-column-label: true

    map-underscore-to-camel-case: false

    lazy-loading-enabled: true

    aggressive-lazy-loading: false

use-generated-keys: true

5.1.2 注册界面

注册界面包含必要信息输入框和注册按钮,提供信息格式说明。用户需填写用户名、密码、邮箱等必要信息,并进行格式验证。用户注册时系统需检查用户名和邮箱是否已被注册。注册成功后,向用户邮箱发送验证邮件,以确保邮箱有效,界面设计如下图所示

图5-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);

}  

5.1.3 登录界面

登录界面包含用户名、密码输入框和登录按钮,找回密码链接。用户通过输入用户名和密码进行登录。若输入错误,系统需提示错误信息。提供找回密码功能,用户可通过此功能重置找回密码,界面设计如下图所示

图5-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, "账号或密码不正确");

        }

    }

5.1.4 交流论坛界面

用户可搜索和浏览交流论坛消息,支持局部搜索,点击某一信息可进入详情页,进行点赞、收藏和评论,并可点击发布内容按钮,发布交流贴界面设计如下图所示

图5-4 交流论坛界面图

5.1.5 失物招领界面

用户可搜索和浏览失物招领信息,点击某一失物招领可进入详情页,进行点赞、收藏和评论,并可点击认领按钮,填写并提交认领信息。

失物招领详情页界面设计如下图所示

图5-5 失物招领界面图

失物招领认领界面设计如下图所示

图5-6 失物招领认领界面图

5.1.6 个人中心界面

个人中心界面主要展示个人首页、失物招领、认领记录、寻物启示、收藏等子功能入口。点击“个人首页”可管理和展示自己的个人信息;点击“失物招领”,可管理自己的失物招领信息,包括添加,编辑、删除、查询失物招领信息(发布的失物招领经过审核通过才可显示在系统前端);点击“认领记录”,可查询和查看自己的认领记录信息,确认审核状态;点击“寻物启示”,可管理自己的寻物启示信息,包括添加,编辑、删除、查询寻物启示信息(经管理员审核通过才可显示在系统前端);点击“收藏”,可管理和查看所有收藏信息界面设计如下图所示

图5-7 个人中心界面图

5.2管理员功能模块

5.2.1 系统用户界面

管理员可管理和查看系统用户信息,包括对普通用户和管理员进行管控,进行添加,编辑、删除、查询操作,可进入详情页浏览界面设计如下图所示。

图5-8 系统用户界面图

系统用户管理代码如下:

@RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

    }

5.2.2 失物招领管理界面

管理员可管理和查看失物招领信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,审核失物招领信息(审核通过才可显示在系统前台界面),并可查看评论内容

失物招领管理界面设计如下图所示。

图5-9 失物招领管理界面图

添加失物招领信息代码如下:

@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);

 }

失物招领管理审核界面设计如下图所示。

图5-10 失物招领管理审核界面图

审核失物招领信息代码如下:

  @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

5.2.3 留言管理界面

管理员可对管理和查看留言反馈信息,进行查询、删除操作,可进入详情页浏览,可点击回复按钮,回复留言反馈,并可查看已回复的内容界面设计如下图所示。

图5-11 留言管理界面图

5.2.4 交流管理界面

管理员可管理和查看交流论坛和论坛分类信息,进行添加,编辑、删除、查询操作,可进入详情页浏览,并可查看交流论坛的评论内容界面设计如下图所示。

图5-12 交流管理界面图

6 系统测试

一个系统设计好后,就会进入测试阶段,测试的目标是检验设计好的网站是否可以正常无误的运行,尽可能的发现网站的问题,已使后期网站投入使用后网站尽少出错[12]

6.1 测试定义

系统测试主要是判断系统是否可以正常运行,功能模块是否可以实现操作。程序代码中是否有错误出现。测试程序是开发过程中的一个主要问题。就算系统完成的再好,再进行程序测试时也会发现一个从来没有被发现的错误信息。

6.2 测试目的

测试的目的在于要对系统的稳定和可操作性能进行对照检查。对于软件的开发利用最终的目的在最后的测试和试用,这是一个不可缺少的重要环节。对于软件开发者而言,在对每一个单独的功能进行编排时候,都要有单独的测试,并通过测试阶段才可以研发多个功能性软件,这样既缩短了研发时间,也可以在的单个的早期测试中发现问题,以免融合后的软件,在查找问题时就很难快速解决或者急速定位问题。

6.3 测试方案

对测试计划的把握是测试方案的重中之重。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试[14]

构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。

性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后看一下我们的这个程序完整性能不能达到要求。

1)模块测试

单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。

2)集成测试:

集成测试就是对系统的测试以及对他子系统的一些性能测试,检查的系统的包装程序信息找出其中的问题优势主要有以下这几点:

软件耗费较少。

可以提前发现端口的错误。

更好的地位系统中错误的位置。

从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。

3)验收测试:

终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。

其结果是分别是:

有一定的差异在用户的需求。

再者就是结果与之差不了多少。

到了最后了,我们发现的问题都是与用户的需求存在一定的关联。

6.4 测试用例

1登录测试

表6-1 登录测试用例表

用例编号

UC-TEST-001

测试名称

登录

前提条件

用户已拥有系统账号

步骤

操作描述

期望结果

测试结果

1

使用正确的账号密码登录

成功登录

符合预期

2

使用正确的账号但错误的密码登录

提示密码错误

符合预期

3

使用错误的账号登录

提示不存在账户

符合预期

4

不输入账号,点击登录

提示输入账号

符合预期

5

输入账号但不输入密码点击登录

提示输入密码

符合预期

6

已登录账号,查看登录入口

不显示登录入口

符合预期

测试说明

测试结果

成功

测试人

2)失物招领测试:

表6-2 失物招领测试用例表

用例编号

UC-TEST-002

测试名称

失物招领

前提条件

用户已登录系统

步骤

操作描述

期望结果

测试结果

1

点击菜单栏的失物招领按钮,进入失物招领展示界面

跳转失物招领展示界面

2

进入失物招领展示界面在搜索框,输入关键字并搜索

页面显示相关关键字下的失物招领信息

符合预期

3

进入失物招领展示界面选择一失物招领信息,查看详情

跳转到失物招领详情界面

符合预期

4

进入失物招领详情页,点击点赞、收藏按钮

显示点赞、收藏成功

符合预期

5

进入失物招领详情页,输入评论内容并发布

界面显示新的评论内容

符合预期

6

进入失物招领详情页,点击认领按钮,输入认领信息并提交

跳转到认领界面,认领信息提交成功

符合预期

测试说明

测试结果

成功

测试人

3)寻物启示测试:

表6-3 寻物启示测试用例表

用例编号

UC-TEST-003

测试名称

寻物启示

前提条件

用户已登录系统

步骤

操作描述

期望结果

测试结果

1

点击菜单栏的寻物启示按钮,进入寻物启示展示界面

跳转寻物启示展示界面

2

进入寻物启示展示界面在搜索框,输入关键字并搜索

页面显示相关关键字下的寻物启示信息

符合预期

3

进入寻物启示展示界面选择一寻物启示信息,查看详情

跳转到寻物启示详情界面

符合预期

4

进入寻物启示详情页,点击点赞、收藏按钮

显示点赞、收藏成功

符合预期

5

进入寻物启示详情页,输入评论内容并发布

界面显示新的评论内容

符合预期

6

进入寻物启示详情页,点击认领按钮,输入认领信息并提交

跳转到认领界面,认领信息提交成功

符合预期

测试说明

测试结果

成功

测试人

4)失物招领管理测试:

表6-4 失物招领管理测试用例表

用例编号

UC-TEST-004

测试名称

失物招领管理

前提条件

管理员已登录系统后台

步骤

操作描述

期望结果

测试结果

1

点击菜单栏的失物招领管理按钮,进入失物招领管理展示界面

跳转失物招领管理展示界面

2

进入失物招领管理界面在搜索框,输入关键字并搜索

页面显示相关关键字下的失物招领信息

符合预期

3

进入失物招领管理界面选择一失物招领信息,点击详情

跳转到失物招领详情界面

符合预期

4

进入失物招领管理界面选择一失物招领信息,点击查看评论

显示该失物招领的评论内容界面

符合预期

5

进入失物招领管理界面点击添加,输入正确完整的信息并提交

显示添加成功

符合预期

6

进入失物招领管理界面选择某条或多条信息,点击删除

显示删除成功

符合预期

7

进入某一失物招领信息详情页,编辑修改审核状态

显示提交成功

符合预期

测试说明

测试结果

成功

测试人

5)寻物启示管理测试:

表6-5 寻物启示管理测试用例表

用例编号

UC-TEST-005

测试名称

寻物启示管理

前提条件

管理员已登录系统后台

步骤

操作描述

期望结果

测试结果

1

点击菜单栏的寻物启示管理按钮,进入寻物启示管理展示界面

跳转寻物启示管理展示界面

2

进入寻物启示管理界面在搜索框,输入关键字并搜索

页面显示相关关键字下的寻物启示信息

符合预期

3

进入寻物启示管理界面选择一寻物启示信息,点击详情

跳转到寻物启示详情界面

符合预期

4

进入寻物启示管理界面选择一寻物启示信息,点击查看评论

显示该寻物启示的评论内容界面

符合预期

5

进入寻物启示管理界面点击添加,输入正确完整的信息并提交

显示添加成功

符合预期

6

进入寻物启示管理界面选择某条或多条信息,点击删除

显示删除成功

符合预期

7

进入某一寻物启示信息详情页,编辑修改审核状态

显示提交成功

符合预期

测试说明

测试结果

成功

测试人

6.5 测试分析

校园失物招领系统设计要求基本都可以达到,此系统具有完整的软件功能,良好的用户界面,能够正确的处理错误信息,而且能够准确的提出错误的种类。但是系统测试时也出现了一些系统的不足和缺陷,所以在今后的日子里我会对其视觉上的不足作出修改,其次系统的代码和数据库出现了非常多的冗余现象,都是因为对编程技术的应用不够熟练,在日后我会加强自己的自身学习和能力,减少这样的冗余现象。

经过对上述的测试结果分析,本校园失物招领系统无论是在技术方面,还是操作方面,还是经济方面都是完全可以实行的,并且经过测试,该系统操作简单,所有的功能都可以实现,因此该系统可以满足用户的使用需求,值得被推广。

总体说来,软件通过测试。

7 结论

本文主要论述了如何使用Java语言的Springboot框架结合Web技术开发一个校园失物招领系统,在文章开端首先对个研究背景、研究现状和研究内容作了简单的介绍,然后通过系统分析,引申出本系统研究的主要内容,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。

本系统将严格按照软件开发流程进行各个阶段的工作,采用模块化设计和前后端分离设计,主要使用者分为管理员和普通用户,实现功能包括后台首页、系统用户、物品分类管理、失物招领管理、认领记录管理、寻物启示管理、系统管理、通知公告管理、资源管理、留言管理、交流管理等模块,整体功能模块设计比较全面,具有用户友好、操作简单、数据安全等特点,能够使得整个校园失物招领系统信息管理的过程得以实现。

通过实现了SpringbootMysql相结合构建的校园失物招领系统,我感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。由于在此之前对于Java知识并不了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过我不断的查阅相关的资料,以及向老师同学请教,最后出现的所有的问题都得到了解决同时认识到,要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。通过这次校园失物招领系统的开发,让我学到了更多的知识,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。同时,也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件,本次系统的设计提高了我的编程水平,为了我今后系统的开发打下了结实的基础。

参考文献

[1]庄丽君,汤海林.基于Java Web技术的校园论坛网页的设计与实现[J].现代信息科技,2024,8(15):74-77.DOI:10.19850/j.cnki.2096-4706.2024.15.016.

[2]白昌盛.Java Web开发中前后端分离的性能分析[J].电子元器件与信息技术,2024,8(07):36-38.DOI:10.19772/j.cnki.2096-4455.2024.7.011.

[3]王泽轩,肖香成,程文志.基于Web的B2C校园闲置物品交易系统设计与实现[J].无线互联科技,2024,21(10):75-77.

[4]张新海,朱祎.基于MVVM模式SpringBoot框架的高校信息化项目管理系统[J].信息技术与信息化,2024,(05):54-58.

[5]郭甲天,陈婷,向阳.一种基于SpringBoot框架校园宿舍管理系统的设计与实现[J].电脑知识与技术,2024,20(07):37-40.DOI:10.14004/j.cnki.ckt.2024.0444.

[6]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.DOI:10.14004/j.cnki.ckt.2023.1860.

[7]游晶,邱淑丽,李敬文.基于SpringBoot的校园智慧报修系统的设计与实现[J].电脑知识与技术,2023,19(32):50-52+65.DOI:10.14004/j.cnki.ckt.2023.1718.

[8]欧阳习彪,叶力洪.校园服务系统的设计与实现[J].现代计算机,2023,29(19):72-77.

[9]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[10]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):

[11]秦彬,李冰,樊续徳,等.校园失物招领小程序的设计与开发[J].无线互联科技,2022,19(20):84-88.

[12]朱志慧,蔡洁.基于SpringBoot+Vue+Uni-app框架的校园失物招领系统[J].电子技术与软件工程,2022,(17):62-65.

[13]王志诚,林永鑫,徐佳家,等.基于Web平台的校园生活服务平台[J].电脑知识与技术,2022,18(22):47-48.DOI:10.14004/j.cnki.ckt.2022.1513.

[14]谢哲宇.基于弹性搜索的失物招领平台的设计与实现[D].大连理工大学,2022.DOI:10.26991/d.cnki.gdllu.2022.000047.

[15]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.

[16]李学刚,王世华,吴思莹,等.失物帮系统研究与开发[J].中国新通信,2021,23(14):139-140.

[17]李孝华,段平,李佳,等.基于WebGIS的失物招领系统设计与实现[J].地理空间信息,2020,18(10):64-66+5.

[18]孙思杰.Web项目基于前后端分离模式的设计与应用[J].科技创新与应用,2020,(27):96-97.

[19]侯泽民,王斌.高校失物招领平台的设计与实现[J].现代信息科技,2020,4(15):1-4.DOI:10.19850/j.cnki.2096-4706.2020.15.001.

[20]Virola L R .The Design of Campus Lost and Found Platform Based on Digital Map Data[J].Indian Journal of Public Health Research & Development,2019,1(1):

谢辞

本次毕业设计圆满的结束了,通过这次毕业设计我学到了很多的知识,也提高了我软件开发的能力,在系统开发设计的过程中,出现了很多的问题,但是通过老师和同学们的帮助,最后所有的问题都得到了解决,因此我要感谢在此过程中对我帮助的老师和同学们,感谢指导老师帮助我选课题,给我做详细的讲解,给我提供设计所需要的各种设备,也经常询问我进度与成果,再有难点的时候给我解决思路,帮助我顺利完成。没有的指导,也不会有我今天所展现出的成果。

首先我要感谢我的指导老师,指导老师在教学任务繁忙的情况下,抽出时间帮助我纠正我在设计当中出现的问题,并耐性地为我的论文作校正,是他的定期检查和指导使得我们的毕业设计高质量完成。他在我整个课题开发和设计的过程中,为程序的设计、框架的设计、代码的撰写方面以及论文框架的设计提供了很多宝贵的意见,并且为我推荐了许多有用的资料和文献,他的指导和建议使我受益匪浅,有了指导老师的辅导和指点,我论文才能够顺利完成。老师的认真负责的工作态度和治学严谨之道使我们这些即将踏入社会的毕业生受益匪浅。

然后要感谢我的同学们,感谢大家对我这次毕业设计的帮助,也感谢大家在大学生活中对我的陪伴,使得我的大学生活过的很快乐。

另外,我还要感谢父母,感谢一直以来对我的支持,让我能够顺利的完成我的学业,没有你们也就没有我的今天,感谢你们无私的付出,未来我一定会报答你们的。

最后,感谢在座的所有参加我论文答辩的老师们,感谢大家的聆听,你们辛苦了。

点赞+收藏+关注 → 私信领取本源代码、数据库

更多推荐