🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘 要
随着社区互助规模的不断扩大,社区互助数量的急剧增加,有关社区互助的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有社区互助管理来提高社区互助管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。
建立开放社区互助平台,进一步提高用户对社区互助信息的查询。帮助用户和管理者提高工作效率,实现信息查询的自动化。 使用本系统可以轻松快捷的为用户提供他们想要得到的社区互助信息。
根据本系统的基本设计思路,本系统在设计方面前台采用了java语言,在Eclipse平台开发软件,使用ssm框架等进行基本的页面设计,后台数据库采用的是MySQL。本系统的设计实施为社区互助平台的运行打下了基础,为社区互助平台提供良好的社区互助条件。
最后我们通过分析功能、测试调整社区互助平台实现的实际需求相结合,讨论了技术开发社区互助平台。
关键词:社区互助;ssm框架;Java语言;
1.1 课题研究背景
如今互联网发展迅猛,大量的信息都是通过网络这一渠道来传播,所以利用网络渠道来传播知识是非常有前景的。社区互助的主要目的是开发平台,是一个新知识诞生的地方,光靠现有的平台是远远不够的,因此建设社区互助平台是有必要的,这样能使用户通过社区互助开发新网站来弥补现有网站的不足,社区互助平台在此同时也增加的不少知名度,为开发新网站有着重大意义。
至今为止,时代的发展趋势一直指向的就是在网络上进行系统管理。这次我所设计的课题是社区互助平台,正是Internet与用户的紧密关系的体现。由Internet表现出来的便捷,快速等诸多优势,已经使它成为社会各行各业,甚至是平民大众工作,生活不可缺少的一个重要组成部分。
随着社会的发展线下管理的方式已经不可避免的显示出它在时间与空间等方面的局限性,广大的人民群众迫切的需要打破这种局限性。在这种要求下,基于网络的电子商务产生了。它的出现不但解决了传统管理方式的缺点,而且给了广大用户更大的选择空间,促进了社区互助的优化管理,有效的避免了社区互助管理缭乱的局面。所以像社区互助平台这种电子商务的发展壮大也是不可避免的。
社区互助平台作为一种典型的电子商务系统也迅速的发展并深入人们的日常生活中,它使管理员足不出户就可以管理社区互助信息等,最大化减缩了管理员的管理时间,提高了管理效率。
由此设计与开发一个社区互助平台是非常有必要的,java语言是所有语言中的基础,学生学习好java语言才能去更深入的学习其它语言。java语言有以下特点:绘图能力强、可移植性、数据处理能力强,适于编写系统软件、三维和二维图形,还可以编写出动画的效果,所以它是一种高级语言。
1.2 课题研究意义
当前各企事业单位正在建立数字化管理系统,充分利用网络的有利资源,已经实现了办公无纸化的数字化建设。但是,目前很多社区互助的管理体系并不完善,然而对于社区互助来说,社区互助平台是社区互助管理不可缺少的部分,社区互助能够为用户提供充足的信息和快捷的查询手段。
在现阶段的社区互助管理工作中,社区互助运用计算机完成数据收集、查询、修改和删除以及统计等工作,提高了管理者工作效率,避免了因信息量巨大,造成的人为错误.社区互助平台作为新产品开发的先行者,那些先进的、优秀的技术往往会为社区互助所率先采用,网络技术也不外如此,优秀的管理决策者一定会选择或者自主开发一个适合本社区互助平台十分有意义。
1.3前期工作
为了使本系统的功能做得更加完美,使用户看上去清晰明了,特意去查找分析了一些相关社区互助管理网站,了解和分析出其网站的功能和具体功能模块的实现方法,还具体了解了其社区互助平台的系统功能的组织结构。最后通过问卷调查的方法进行了实地调查,了解了学生初步的需求,开始初步设计本系统。从问卷调查中得知:该系统在技术上是可行的,在经济上也是可行的,开发成本相对较低。
1.4本文的组织结构
本系统使用的是比较成熟的java技术和比较完善的MySQL数据库,将网络社区互助平台可以更安全、技术性更强的满足系统所有信息的管理。
社区互助主要实现了管理员和用户两大模块。通过本社区互助平台可以提高管理人员的工作效率,减少出错率,对于数据存储及查找有了更方便的操作。
对内容的介绍详细阐述如下:
第一章、绪论,介绍了研究课题选择的背景及意义和开发系统前期的工作做了详细的介绍。
第二章、引入技术知识,通过引入关键技术进行系统开发。
第三章、对系统进行分析,对系统开发的可行性,系统的流程以及功能进行了探讨。
第四章系统具体功能的设计,主要是实现管理员和用户两种身份相应的模块,然后进行整合,分析其结构,然后设计,并进行相对应的数据库的构架与设计。
第五章是本系统的实现,也是系统的核心,主要介绍三种方式登录页面,包括管理员管理模块,前台网站功能模块,用户功能模块各异,页面清楚简洁,简单易懂。
最后是总结,主要是对本系统的总结和对后期的展望。
第2章 系统开发环境
2.1 Java语言简介
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:
1.面向对象
面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
2.平台无关性
Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
3.可靠性和安全性
Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
4. 多线程
Java提供了多线程功能,利用编程实现同一时间同时工作的功能。
2.2Vue介绍
前端框架介绍
A)前端框架有: React/ Facebook/Angular/Google/Vue全世界
B)Angular、Vue、React的区别
Vue与React
React与Vue 都采用虚拟DOM.核心功能都在核心库中,其他类似路由这样的功能则由其他库进行处理React的生态系统更庞大,由ReactNative来进行混合App开发; Vue更轻量. React由独特的JSX语法; Vue是基于传统的Web计数进行扩展(HTML、CSS、JavaScript),更容易学习.
Vue与Angular
Angular1和Angular2以后的版本 是完全不同的两个框架; 一般Angular1被称作Angular.js, Angular之后的版本被称作 Angular, Vue与Angular的语法非常相似, Vue没有像Angular一样深入开发,只保证了基本功能。 Angular过于笨重, Vue的运行速度比Angular快得多, Angular的脏检查机制带来诸多性能问题.
2.3MySQL 介绍
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.4MySQL环境配置
本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.5 B/S架构
B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。
图2-1 B/S模式三层结构图
2.6SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
第3章 系统分析
3.1系统总体分析
本系统采取了一系列的设计原则,主要目的是为了系统的功能设计,还有管理人员在后期对系统维护时的方便,以及使用户能够简易的操作。最重要的设计原则包括:简单性、针对性、实用性、一致性、先进性。
(1)简单性:在该系统中功能模块实现的同时,让用户操作起来简单明了,很快找到所需资源是最直接的目的。
(2)针对性:该系统是根据设计需求为导向来开发社区互助平台的设计,所以针对性较强。
(3)实用性:该设计能够满足社区互助平台的实际的功能需求,能够在实际中让用户真正使用到,具有实际的应用价值。
(4)一致性:系统整体的页面布局,在不同的界面之间,img里的图片的放置位置以及大小都应该有严格的一致性。变量命名规则应该具有统一性。
(5)先进性:本系统采用java语言作为开发技术、B/C结构和 MySQL作为系统数据库,它们被软件设计者们广泛使用。
3.2可行性研究
通过对系统研究目标及内容的分析审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步分析经济可行性和操作可行性等方面。
3.2.1 经济可行性
开发系统所涉及到的资料,一般是在图书馆查阅,或是在网上进行查找收集。所需要的一些应用软件也都是在网上可以免费下载的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。
3.2.2 技术可行性
技术可行性是考虑在现有的技术条件下,能否顺利完成开发任务。以及判断现有的软硬件配置是否能满足开发的需求。而本系统采用的是java技术开发,并非十分困难,所以在技术上是绝对可行的。此外,计算机硬件配置是完全符合发展的需要。
3.2.3 运行可行性
当前计算机信息化的知识已经十分普及了,现在的操作人员也都是对系统环境有很强的适应性,各类操作人员大都是有过培训补充的,因此完全不影响组织结构,所以在运行上也是可行的。
3.2.4 时间可行性
从时间上看,在大四的最后一个学期,在实习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相关知识,并开发系统,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的努力功能基本实现。
3.3系统功能
通过前面的功能分析可以将社区互助平台的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管理,趣事分享管理,我的收藏管理,系统管理等内容。任何用户只要进入网站不需登录也可浏览到的信息,后台管理是针对已登录的用户看到满意的社区互助信息而设计的。
1、一般用户的功能及权限
所谓一般用户就是指还没有注册的过客,他们可以浏览主页面上的信息。但如果有中意的社区互助信息时,要登录注册,只有注册成功才有的权限。
用户信息的添加和管理,社区互助详细信息添加和管理和文档信息添加和管理以及网站信息管理,这些都是管理员的功能。
第4章 系统设计
4.1系统功能设计
系统的功能设计是整个系统的运行基础,是一个把设计需求替换成以计算机系统的形式表示出来。通过对社区互助平台的调查、分析和研究,得出了该网站的总体规划,这是开发设计系统的初步核心。
系统功能结构图如图4-1所示。
图4-1系统功能结构图
4.2数据库设计
在整个系统来说,数据库的设计是相当重要的,需要非常仔细去设计。
本系统中涉及的各级权限分别是:
(1)用户登录权限,可以查看系统前台的社区互助信息,修改查看自己的信息,并能修改个人资料,查看社区互助信息,还可以在线咨询客服,可以看到网站的公告等。
(2)管理员权限,管理员有系统的所有权限,包括用户的管理,可以添加、修改和删除任意权限的用户。
4.2.1概念结构设计
根据分析系统的数据需求,得到系统的实体属性图。
(1失物招领信息E-R图,如图4-2所示:
图4-2失物招领信息E-R图
(2)租房信息E-R图,如图4-3所示:
图4-3租房信息E-R图
(3)宠物代遛管理E-R图,如图4-4所示:
图4-4宠物代遛管理E-R图
4.2.2数据库逻辑结构分析
数据库概念结构设计后,可以数据库概念转化实际的数据模型,这是一种数据库的逻辑结构,就是将概念结构与支持数据库管理系统的模型相符合。具体的表设计如下所示:
表4-1:客服聊天表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
adminid | bigint | 管理员id | |||
ask | longtext | 4294967295 | 提问 | ||
reply | longtext | 4294967295 | 回复 | ||
isreply | int | 是否回复 |
表4-2:趣事分享
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghu | varchar | 200 | 用户 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
表4-3:其他
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuhao | varchar | 200 | 序号 | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
表4-4:租房信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-5:停车位出租评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-6:失物招领评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-7:趣事分享评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-8:租房信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuhao | varchar | 200 | 序号 | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
表4-9:其他评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-10:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
touxiang | varchar | 200 | 头像 |
表4-11:宠物代遛评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-12:停车位出租
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuhao | varchar | 200 | 序号 | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
表4-13:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-14:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-15:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 收藏id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 收藏名称 | ||
picture | varchar | 200 | 收藏图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
inteltype | varchar | 200 | 推荐类型 |
表4-16:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-17:宠物代遛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuhao | varchar | 200 | 序号 | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
表4-18:失物招领
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xuhao | varchar | 200 | 序号 | ||
biaoti | varchar | 200 | 标题 | ||
fengmian | varchar | 200 | 封面 | ||
neirongxiangqing | longtext | 4294967295 | 内容详情 | ||
fabushijian | date | 发布时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 |
第5章 系统实现
5.1系统功能模块
社区互助平台,在系统首页可以查看首页,租房信息,失物招领,宠物代遛,停车位出租,其他,趣事分享,个人中心,后台管理,客服等内容,并进行详细操作,如图5-1所示。
图5-1系统首页界面图
用户注册,在用户注册页面通过填写用户账号,用户姓名,密码,确认密码,联系方式等内容完成用户注册,如图5-2所示。
图5-2用户注册界面图
租房信息,在租房信息页面可以查看标题,序号,发布时间,用户账号,用户姓名,联系方式等内容,并可根据进行点我收藏操作,如图5-3所示。
图5-3租房信息界面图
趣味分享,在趣味分享页面可以查看标题,发布时间,用户账号,用户,联系方式等内容,并可根据进行点我收藏操作,如图5-4所示。
图5-4趣味分享界面图
个人中心,在个人中心页面通过填写用户账号,用户姓名,密码,性别,联系方式,上传图片等内容进行更新信息,根据需要对我的收藏进行详细操作,如图5-5所示。
图5-5个人中心界面图
5.2管理员功能模块
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-6所示。
图5-6管理员登录界面图
管理员登录系统后,可以对首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管理,趣事分享管理,我的收藏管理,系统管理等进行相应的操作管理,如图5-7所示。
图5-7管理员功能界面图
用户管理,在用户管理页面可以对索引,用户账号,用户姓名,性别,联系方式,头像等内容进行详情,修改和删除等操作,如图5-8所示。
图5-8用户管理界面图
租房信息管理,在租房信息管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,修改,查看评论和删除等操作,如图5-9所示。
图5-9租房信息管理界面图
失物招领管理,在失物招领管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,修改,查看评论和删除等操作,如图5-10所示。
图5-10失物招领管理界面图
停车位出租管理,在停车位出租管理页面可以对索引,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,修改,查看评论和删除等操作,如图5-11所示。
图5-11停车位出租管理界面图
我的收藏管理,在我的收藏管理页面可以对索引,收藏名称,收藏图片,推荐类型等内容进行详情,修改和删除等操作,如图5-12所示。
图5-12我的收藏管理界面图
系统管理,在客服管理页面可以查看新消息,状态等内容进行详情,修改等操作,还可对轮播图管理进行相应操作,如图5-13所示。
图5-13系统管理界面图
5.3用户功能模块
用户登录进入系统可以对首页,个人中心,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管理,趣事分享管理,我的收藏管理,系统管理等进行相应操作,如图5-14所示。
图5-14用户功能界面图
租房信息管理,在租房信息管理页面可以查看索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,查看评论和修改操作,如图5-15所示。
图5-15租房信息管理界面图
失物招领管理,在失物招领管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,查看评论和删除等操作,如图5-16所示。
图5-16失物招领管理界面图
宠物代遛管理,在宠物代遛管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,查看评论和删除等操作,如图5-17所示。
图5-17宠物代遛管理界面图
停车位出租管理,在停车位出租管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,查看评论和删除等操作,如图5-18所示。
图5-18停车位出租管理界面图
其他管理,在其他管理页面可以对索引,序号,标题,封面,发布时间,用户账号,用户姓名,联系方式等内容进行详情,查看评论和删除等操作,如图5-19所示。
图5-19其他管理界面图
系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
登录测试
录入登录信息,账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
除了保证基本的页面和功能外,性能方面也是需要注意的,这个需要借助自动化工具loadrunner等等,下面的表中列了几个用例,详细见表:
表:性能测试点列表
用例编号 | 操作 | 预期结果 |
1 | 持续使用系统5个小时 | 页面显示正常、每个功能都能实现 |
2 | 模拟多个用户同时登陆 | 可同时登录,页面不会出现混乱和报错 |
3 | 不同用户可同时下载听力 | 且下载速度不受影响 |
总结与展望
历经六个月左右的时间,本次的毕业设计已画上了句号。原本以为完成一个系统会很顺利,因为在之前课上,也曾动手操作过相关的模块编写,但当真正接触到一个完整的系统时,发现并没有想象地那么简单。首先,以前实践过的只是单独的模块,而这次,是一个庞大的系统,许多细节不容忽视,有时候稍不留意的一个小错误,会致使整个系统都运行不起来,而查找错误的过程又漫长且艰辛,这也正是经验不足所导致的。在整个系统开发过程中,也查阅了很多书籍和相关资料,这让我不但巩固了原本的知识,同时还学习到了一些新的知识,这让我受益匪浅。
此次系统从整体看来,已基本达到预期的设计目的,能够实现基本的功能,但相较于市场的一些优秀网站而言,还是有许多不足的地方。遗憾的是,由于时间的有限,已经不允许再投入更多的时间和精力进行研究开发。相信在以后的工作中,我会接触到更多相关的知识,会更丰富自身的经验,我希望到时能够在此基础上完成一个丰富完整的学习网站,这将对我有很大的意义。
通过这次的毕业设计,我学到了很多,除了学识方面的知识,在态度上也有了很大的转变,细心和耐心是整个开发过程中最重要的两件事。我也在跟随着系统的完善而成长,这次毕业设计考核地也不单单是所学的知识,也同样在衡量着面对困难时的态度。
参 考 文 献
[1]孔波,邹有,卢红兵,杨华武,庹苏行.基于Web的色质数据解析平台设计与开发[J].计算机技术与发展,2019,29(12):198-204.
[2]闫朝阳.基于Web的大数据分析平台交互设计研究[J].设计,2019,32(17):94-97.
[3]胡念祖,林晓焕,肖新帅.基于嵌入式Web服务器的远程温度采集系统设计[J].舰船电子工程,2019,39(09):113-117+182.
[4]谭卫,阳晓霞.基于移动Web技术的高校思想品德教育工作评价系统设计与研究[J].信息与电脑(理论版),2019(15):101-104.
[5]宋丽芳.网站建设中网页设计的安全缺陷及对策分析[J].信息通信,2019(08):113-114.
[6]吴城.跨境电商网站系统的设计与分析[J].商场现代化,2019(15):37-38.
[7]蔡振海,张静.基于python的网络爬虫系统的设计与实现[J].电脑知识与技术,2019,15(23):36-37.
[8]黄绍涵.“HZD”校友圈社交网站设计与开发研究——就业模块设计[J].电声技术,2019,43(08):29-32.
[9]李翔宇.基于Web前端开发技术的儿童教育网站设计与实现[J].中国新通信,2019,21(15):196.
[10]曾婷,凌财进.基于HTML5的计算机一级考试模拟Web APP的设计与实现[J].办公自动化,2019,24(15):60-62.
[11]王立强.HTML5:电商网站设计与实现[J].营销界,2019(30):152-157.
[12]黄安.基于PHP+Mysql技术的网站设计与实现——以美食网站系统的设计为例[J].轻纺工业与技术,2019,48(07):168-170.
[13]张欢.服务类网站设计与经营模式的实例研究[J].科技经济导刊,2019,27(21):207+197.
[14]王瑞,徐方晨.开放共享实验室的Web平台设计与实现[J].工业控制计算机,2019,32(07):120-122.
[15]苏思雨,陈汝倩.长白山体验式旅游日文网站的设计与建设[J].数字技术与应用,2019,37(07):139-140.
核心代码展示
/**
* 公告通知
* 后端接口
* @author
* @email
* @date 2021-03-09 11:33:59
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询公告通知成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}