摘 要
信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对学生志愿者管理等问题,对学生志愿者者管理进行研究分析,然后开发设计出学生志愿者管理系统以解决问题。
学生志愿者管理系统主要功能模块包括个人中心、志愿者管理、招募信息管理、活动信息管理、环保知识管理、招募管理等采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用JavaEE框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。
针对学生志愿者管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现学生志愿者管理系统和部署运行使用它。
关键词:学生志愿者管理;Java EE框架;MySQL数据库
1 绪 论
1.1 课题背景
传统的大学生志愿者服务管理,一开始都是志愿者进行手工记录,然后将手工记录的信息进行存档;随着电脑的普及,大学生志愿者服务管理演变成了手工记录后,输入电脑进行存档。这两种管理方式,对志愿者来说工作量大,后期大学生志愿者服务管理还需要花费大量时间。而且这种传统的管理方式,容易出现遗失或因为失误输入错误的信息等等。在这些基础上,我把用Java语言开发的大学生志愿者服务管理系统作为我的毕业设计,希望可以解决传统大学生志愿者服务管理中出现的问题,简化志愿者的工作,对各种信息进行系统化、电子化的管理。
1.2 目的与意义
志愿者管理着社会一些志愿活动事务,平时信息管理和活动事务的具体管理都是依靠各个部门的人员反复沟通交流和核对。这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和管理都带来了不少的困难。
随着计算机技术的飞速发展,计算机在企业和大学管理中应用的普及,利用计算机实现活动事务的管理势在必行。利用计算机支持协会组织高效率完成活动管理的日常事务,是适应现代社会发展要求,推动大学活动事务管理走向科学化、规范化的必要条件 。
大学生青年志愿者管理的实现可以让减轻比较繁琐的手工活动管理,让人力资源管理人员从繁重琐碎的案头工作和频繁低效的部门组织交流中解脱出来,去完成更重要的工作。它具有手工管理所无法比拟的优点,比如信息流通到位及时、组织管理责任明确、文件查找方便、档案处理可靠性高、存储量大、寿命长等。这些都可以让我们更加针对性、便捷性地科学进行志愿者活动事务管理,极大地提高活动管理的效率,更好地为热心的志愿者提供信息支持而和活动平台,同时也为大学生青年志愿者管理的发展奠定了一个坚实的基础,所有这些都将大大提升活动效果和积极地影响志愿者们的价值观念,为培养是三能人才添砖加瓦。
1.3 国内外研究现状
国内的志愿者服务平台体系结构对中国而言最主要的一块就是能够随时得到政府的支持,所以就主要功能过的志愿者协会中必然有一个部门是与政府直接相关的,可以很快的领略政府的精神和含义,在此基础上件起起了志愿者服务管理组织的其他部门,例如:社区义工联以及共青团志愿者组织,这种小型的社区网站体系结构主要是建立在了上述的部门上,而其自身又衍生去了很多管理部门,其主要的组成是由志愿者、志愿者直接管理者、志愿者协会管理专员、以及志愿者协会的团支部来组成的。所以大学生志愿者是这个系统架构的主要成员。而这些志愿者又被分为在职志愿者以及临时志愿者,在职志愿者主要从事的是一些全职的工作由他们负责管理整个志愿者组织,而临时志愿者则是来自于社会各界人士,他们平时都有自己的工作,而在空暇之余来参加志愿活动。
西方国家的志愿者的服务管理工作早已经有了完善的制度,志愿活动本身已经成为了西方社会制度化、专业化的社会工作了。所以从以上的叙述可以看出,这样的结果不仅是因为许多西方国家的志愿服务活动起步早且规模大,更大的原因则是政府管理措施严谨,所以让志愿活动产生了极高的社会效益。当然,现在国内也在政府的管理下慢慢的开始步入组织化、规范化和系统化的道路,政府已经意识到志愿者的服务活动不仅仅是国家进行公民的道德教育的机会,更是一种维护社会稳定的无形力量和有力措施,现在国内建立志愿者组织的目标就是为了对志愿者服务的管理形成一套很是完整的运作机制。
1.4 论文研究主要内容
随着信息化的发展,互联网需要提供更多的服务,构造更完善的体系以满足越来越多的志愿者的精神与物质需求。伴随着Internet技术的日益成熟,一种建立在网络基础上的信息管理模式形成了,这便是今天为大家所熟悉的线上管理系统。
本设计主要是实现一个大学生志愿者服务管理系统,实现大学生志愿者服务管理的自动化、信息化、管理。系统的主要的设计原则是:以实际应用为核心,重点突出“实用、易用、简洁、稳定”的优点。既能够注重到实效,满足现实用户的实际需要,也能够为系统以后的升级和扩展留有一定的余地。在技术设计的实现上,突出“实现合理、结构清晰、简单易懂”的特点。
2 关键技术介绍
2.1 B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
2.2 MYSQL
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.3 JAVA语言
Java语言是一个完全的面向对象的程序设计语言。面向对象编程语言的思想是把客观存在的事物看成是具有状态和行为的一类对象,然后通过抽象的方法找出相同一类对象的共同状态和行为,从而构成模型--类。类是Java程序设计语言的核心,是Java语言的基本抽象单元。世间上的各种事物都是对象,都可以把它抽象成具有状态和行为的类。Java语言的主要特点有:
Java语言是典型的面向对象的。它提供了类,类又提供了对象的模型,通过使用继承和多态的方法,可以实现代码的重用。
Java语言是安全的。当代网络环境要解决的最大的问题就是安全问题。Java具有内部的安全措施,可以确保程序的安全与完整。
Java语言的操作无关平台。Java程序可以在任何的系统中运行,只要安装了Java的运行系统。
Java语言是多线程的。Java语言具有内存管理。Java可以自动地对内存进行管理,很好地利用了系统的资源,减少浪费。
2.4 Springboot
本技术是Java平台的开源应用框架,其目的是简化Spring的初始搭建和开发过程。默认配置了很多框架的使用方式,自动加载Jar包,为了让读者尽可能快的跑起来Spring应用程序。
SpinrgBoot的主要优点有:
1、为所有Spring开发提供了一个更快、更广泛的入门体验;
2、零配置;
3、集成了大量常用的第三方库的配置;
4、提供准备好的特性。当今,Java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐成为领导者。
3 需求分析
3.1 功能性需求
整个大学生志愿者服务管理系统为了便于志愿者查看与管理员管理,采用了以下几大功能管理模块,包括管理员与志愿者的设计:
·志愿者
游客只能做一些简单的操作,看看首页的招募信息、活动信息、环保知识、新闻资讯、问题反馈,当你成为志愿者后,进行注册、登录,学号、密码都正确的时候就可以成功登录,此时进入页面,可以修改个人信息等操作。
·管理员
作为一名管理员,可以看到前台用户能看到的一切内容,而且还可以进行一系列的操作,这个操作可以直接影响前台的展示,管理员是权限最大的,无论哪个模块它都可以控制,包括人员的新增和删除,信息的增删改,并且还可以审核用户提出的问题,当然也可以删除一些不正当的语言。
3.1.1 用例概述
系统整体用例图如图3.1所示。
用例摘要描述如表3.1所示。
表3.1用例摘要描述
用例标识(UC) | 用例名称 | 摘要描述 |
0 | 登录 | 使用系统前的安全认证 |
1.1 | 首页 | 系统登录后的主页面 |
1.2 | 个人中心 | 用户和用户可以对个人信息的查看、修改入口 |
1.3 | 志愿者管理 | 管理员可以管理志愿者信息 |
2.1 | 招募信息管理 | 管理员可以管理招募信息 |
2.2 | 活动信息管理 | 管理员可以对活动进行管理 |
2.3 | 环保知识管理 | 管理员可以对环保知识进行管理 |
2.4 | 招募报名管理 | 管理员和用户可以对招募报名活动信息进行管理 |
2.5 | 活动报名管理 | 管理员和用户可以对活动报名信息进行管理 |
2.6 | 问题反馈管理 | 管理员可以对招募信息管理 |
2.7 | 系统管理 | 管理员可以对系统的用户等信息进行统一管理 |
3.1.2 用例描述
(1)志愿者管理用例
志愿者管理用例如图3.2所示
① 添加志愿者用例
表3.2 添加志愿者信息用例
用例标识 | 1.2.1 |
用例名称 | 添加志愿者 |
参与者 | 管理员 |
前置条件 | 已经以管理员身份登录。 |
后置条件 | 在志愿者管理表中添加一条志愿者信息。 |
用例概述 | 管理员可以对志愿者信息进行添加。 |
基本事件流 | 1. 管理员在管理这远着主界面选取添加志愿者信息项。 2. 系统显示添加志愿者界面。 3. 管理员输入志愿者信息,提交添加请求。 4. 系统检查输入信息的有效性。 5. 系统将录入志愿者信息记录到志愿者信息表中。 6. 系统显示添加志愿者信息成功。 |
备选事件流 | 管理员输入无效信息,系统提示错误且不添加志愿者信息 管理员中途离开关闭页面,系统不添加志愿者信息 |
备注 | 管理员没有点击保存按钮,系统不会保存。 |
② 修改志愿者用例
表3.3 修改志愿者信息用例
用例标识 | 1.2.2 |
用例名称 | 修改志愿者 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 志愿者信息表中修改一条志愿者信息 |
用例概述 | 管理员进入系统可以对志愿者信息进行修改。 |
基本事件流 | 1. 管理员在管理志愿者主界面选取修改志愿者信息项。 2. 系统显示修改志愿者界面。 3. 管理员修改志愿者信息,提交添加请求。 4. 系统检查修改信息的有效性。 5. 系统将修改志愿者信息更新到志愿者信息表中。 6. 系统显示修改志愿者信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击保存按钮,系统不会保存。 |
③ 删除用例
表3.4 删除志愿者信息用例
用例标识 | 1.2.2 |
用例名称 | 删除志愿者 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 志愿者信息表中删除一条志愿者信息 |
用例概述 | 管理员删除志愿者信息 |
基本事件流 | 1. 管理员在管理志愿者主界面选取删除志愿者选项。 2. 系统删除志愿者信息。 3. 系统显示删除志愿者信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击确定按钮,系统不会删除志愿者信息。 |
(2)活动信息管理用例
活动信息管理用例如图3.3所示
① 添加活动信息用例
表3.5 添加活动信息用例
用例标识 | 1.2.1 |
用例名称 | 添加活动 |
参与者 | 管理员 |
前置条件 | 已经以管理员身份登录。 |
后置条件 | 在活动信息管理表中添加一条活动信息。 |
用例概述 | 管理员可以对活动信息进行添加。 |
基本事件流 | 1. 管理员在管理这远着主界面选取添加活动信息项。 2. 系统显示添加活动信息界面。 3. 管理员输入活动信息,提交添加请求。 4. 系统检查输入信息的有效性。 5. 系统将录入志愿者信息记录到活动信息表中。 6. 系统显示添加活动信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击保存按钮,系统不会保存。 |
② 修改活动信息用例
表3.6 修改活动信息用例
用例标识 | 1.2.2 |
用例名称 | 修改活动信息 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 志愿者信息表中修改一条活动信息 |
用例概述 | 管理员进入系统可以对活动信息进行修改。 |
基本事件流 | 1. 管理员在管理活动信息主界面选取修改活动信息项。 2. 系统显示修改活动界面。 3. 管理员修改活动信息,提交添加请求。 4. 系统检查修改信息的有效性。 5. 系统将修改活动信息更新到活动信息表中。 6 6. 系统显示修改活动信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击保存按钮,系统不会保存。 |
③ 删除用例
表3.7 删除志愿者信息用例
用例标识 | 1.2.2 |
用例名称 | 删除活动信息 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 活动信息表中删除一条活动信息 |
用例概述 | 管理员删除活动信息 |
基本事件流 | 1. 管理员在管理活动信息主界面选取删除活动选项。 2. 系统删除志愿者信息。 3. 系统显示删除志愿者信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击确定按钮,系统不会删除活动信息。 |
(3)环保知识管理用例
环保知识管理用例如图3.4所示
① 添加环保知识信息用例
表3.8 添加环保知识信息用例
用例标识 | 1.2.1 |
用例名称 | 添加环保知识 |
参与者 | 管理员 |
前置条件 | 已经以管理员身份登录。 |
后置条件 | 在活动信息管理表中添加一条环保知识信息。 |
用例概述 | 管理员可以对环保知识信息进行添加。 |
基本事件流 | 1. 管理员在管理环保知识主界面选取添加环保知识信息项。 2. 系统显示添加环保知识信息界面。 3. 管理员输入环保知识信息,提交添加请求。 4. 系统检查输入信息的有效性。 5. 系统将录入环保知识信息记录到活动信息表中。 6. 系统显示添环保知识信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击保存按钮,系统不会保存。 |
② 修改环保知识信息用例
表3.9 修改环保知识信息用例
用例标识 | 1.2.2 |
用例名称 | 修改环保知识信息 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 环保知识信息表中修改一条环保知识信息 |
用例概述 | 管理员进入系统可以对环保知识进行修改。 |
基本事件流 | 1. 管理员在管理环保知识信息主界面选取修改环保知识信息项。 2. 系统显示修改环保知识界面。 3. 管理员修改环保知识信息,提交添加请求。 4. 系统检查修改环保知识信息的有效性。 5. 系统将修改环保知识信息更新到环保知识信息表中。 6 6. 系统显示修改活动信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击保存按钮,系统不会保存。 |
③ 删除用例
表3.10 删除环保知识信息用例
用例标识 | 1.2.2 |
用例名称 | 删除环保知识信息 |
参与者 | 管理员 |
前置条件 | 已经管理员身份登录。 |
后置条件 | 环保知识信息表中删除一条环保知识信息 |
用例概述 | 管理员删除环保知识信息 |
基本事件流 | 1. 管理员在管理环保知识信息主界面选取删除环保知识选项。 2. 系统删除环保知识信息。 3. 系统显示删除环保知识信息成功。 |
备选事件流 |
|
备注 | 管理员没有点击确定按钮,系统不会删除环保知识信息。 |
3.2 非功能性需求
正确性:不允许出现业务错误。
健壮性:在系统出现故障时,系统必须提供相应的数据保护措施,不能丢失数据,并提供重新恢复正常工作的机制。
性能:系统处理业务时间正常业务量的情况下不超过2秒,繁忙业务情况下最迟时间不可超过5秒。
安全性:信息具有保密性,信息只能由内部人员使用。
兼容性:可运行在Windows7以上操作系统中。
3.3 运行环境
本软件系统运行所需的硬件环境如下。
(1)主机类型
应用服务器:SUN E220,单CPU,1G RAM
数据库服务器:SUN E220,单CPU,1G RAM
工作站:LEGEND PC,256M RAM
(2)网络类型
互联网
(3)存贮器容量
应用服务器:20G以上
数据库服务器:100G以上
本软件系统运行所需的软件环境如下。
(1)操作系统
应用服务器:Windows NT Server 2003以上版本
工作站:windows 7以上
(2)数据库管理系统
MYSQL8.0.2
3.4 系统可行性分析
3.4.1 技术可行性分析
本系统开发选择Java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,Java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
3.4.2 操作可行性分析
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,提高了工作效率。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.4.3 经济可行性分析
基于Java的大学生志愿者服务管理系统,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的大学生志愿者服务管理系统,同时还能实现对人力资源和管理资源的有效节约,该大学生志愿者服务管理系统在经济上完全可行。
4 系统设计
4.1 系统设计
关于大学生志愿者服务管理系统,我找到许多相似的线上管理系统,对Java进行了更进一步的了解,在整体设计方面选择了比较清新的颜色,网站网页的颜色不要过于花哨,要能使整个页面看起来很统一,所以选择了比较简洁大方的设计。数据库采用的是mysql数据库,本网站对用户进行了权限的设计,为了数据库的安全普通的用户只拥有浏览信息页面的功能,而且需要其它操作的话,就需要先到用户注册页面去注册一个属于自己的账号,然后通过登录才能进行其它操作。最后,在主要功能模块都能实现之后,再对整个网站进行反复的测试与修改,这样就能达到自己理想的效果。
4.2 软件体系结构设计
4.2.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图4.1所示。
图4.1 系统功能结构图
·志愿者管理功能
该部分内容提供招募报名、活动报名、我的收藏等,志愿者能够进行注册、登录、修改个人信息和查看功能。
该部分内容包含了招募信息、活动信息、环保知识、招募报名、活动报名、问题反馈等。管理员可对所有的信息进行增、删、改、查,能对志愿者信息进行管理,更新最新的信息。
4.3 数据库设计
4.3.1概念结构设计
在对数据库设计之前首先要分析一下大学生志愿者服务管理系统的功能,和各模块之间的关系,再对数据表进行设计。每一个模块的实体都会对应多个实体对象,下面是几个系统中的数据实体。
招募信息实体E-R图如图4-2所示:
图4-2招募信息E-R图
志愿者信息实体E-R图如图4-3所示:
图4-3志愿者信息实体E-R图
活动信息实体E-R图如图4-4所示:
图4-4活动信息体E-R图
问题反馈信息实体E-R图如图4-5所示:
图4-5问题反馈信息实体E-R图
4.3.2 表的详细设计
大学生志愿者服务管理系统的操作都是依靠数据库来进行数据的操作,包括对数据的添加、删除、修改和查询等。所以对数据库的设计是一个很重要的环节,本大学生志愿者服务管理系统根据志愿者和管理员的需求分析,对数据库进行了设计,为方便数据查询,本大学生志愿者服务管理系统数据库中创建了数据表。这些实体对象是数据表结构的基本模型,这个数据模型包含了网站所有的数据实体和属性。
(1)环保知识
表4.1 环保知识
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhishimingcheng | varchar | 200 | 知识名称 | ||
zhishileixing | varchar | 200 | 知识类型 | ||
zhishifengmian | varchar | 200 | 知识封面 | ||
zhishishipin | varchar | 200 | 知识视频 | ||
faburiqi | date | 发布日期 | |||
zhishineirong | longtext | 4294967295 | 知识内容 |
(2)志愿者
表4.2 志愿者
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
touxiang | varchar | 200 | 头像 | ||
xingbie | varchar | 200 | 性别 | ||
shouji | varchar | 200 | 手机 |
(3)配置文件
表4.3 配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
(4)招募信息
表4.4 招募信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhaomumingcheng | varchar | 200 | 招募名称 | ||
zhaomuleixing | varchar | 200 | 招募类型 | ||
zhaomutupian | varchar | 200 | 招募图片 | ||
zhaomuyaoqiu | longtext | 4294967295 | 招募要求 | ||
zhaomuneirong | longtext | 4294967295 | 招募内容 | ||
faburiqi | date | 发布日期 |
(5)招募报名
表4.5 招募报名
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhaomumingcheng | varchar | 200 | 招募名称 | ||
zhaomuleixing | varchar | 200 | 招募类型 | ||
baomingxinxi | varchar | 200 | 报名信息 | ||
baomingriqi | date | 报名日期 | |||
yonghuming | varchar | 200 | 用户名 | ||
shouji | varchar | 200 | 手机 | ||
crossuserid | bigint | 跨表用户id | |||
crossrefid | bigint | 跨表主键id | |||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
(6)用户表
表4.6 用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
(7)token表
表4-7 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 |
(8)收藏表
表4.8 收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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 | 推荐类型 |
(9)新闻资讯表
表4.9 新闻资讯
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
(10)新闻反馈表
表4.10 问题反馈
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 留言内容 | ||
cpicture | varchar | 200 | 留言图片 | ||
reply | longtext | 4294967295 | 回复内容 | ||
rpicture | varchar | 200 | 回复图片 |
(11)活动信息表
表4.11 活动信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
huodongmingcheng | varchar | 200 | 活动名称 | ||
huodongfenlei | varchar | 200 | 活动分类 | ||
huodongtupian | varchar | 200 | 活动图片 | ||
huodongdidian | varchar | 200 | 活动地点 | ||
huodongshijian | datetime | 活动时间 | |||
huodonggonggao | longtext | 4294967295 | 活动公告 | ||
huodongneirong | longtext | 4294967295 | 活动内容 |
(12)活动报名表
表4.12 活动报名
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
huodongmingcheng | varchar | 200 | 活动名称 | ||
huodongtupian | varchar | 200 | 活动图片 | ||
huodongdidian | varchar | 200 | 活动地点 | ||
huodongshijian | varchar | 200 | 活动时间 | ||
baomingshijian | datetime | 报名时间 | |||
baomingneirong | varchar | 200 | 报名内容 | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
shouji | varchar | 200 | 手机 | ||
crossuserid | bigint | 跨表用户id | |||
crossrefid | bigint | 跨表主键id | |||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
5 系统实现
5.1 核心功能实现
5.1.1 前台首页模块实现
该界面是大学生志愿者服务管理系统的首页,界面设置要求界面简洁明了、操作简单、兼容性好。在考虑设计界面时,首先要考虑界面标准化设计,其次是完善界面设计,但不要因对界面的美化使界面的操作变得复杂,志愿者可在此页面进行登录等操作,页面顶部导航条是各模块的入口。
前台首页页面主要包括首页、招募信息、活动信息、环保知识、新闻资讯、问题反馈、个人中心、后台管理等内容,并根据需要进行详细操作;如图5.1所示:
相关代码如下:
public R list(@RequestParam Map<String, Object> params,ZhiyuanzheEntity zhiyuanzhe, HttpServletRequest request){
EntityWrapper<ZhiyuanzheEntity> ew = new EntityWrapper<ZhiyuanzheEntity>();
PageUtils page = zhiyuanzheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhiyuanzhe), params), params));
return R.ok().put("data", page);
}
志愿者注册,在志愿者注册页面通过填写用户名、密码、确认密码、姓名、手机等信息完成志愿者注册操作,如图5.2所示:
图5.2志愿者注册界面图
志愿者登录,在志愿者登录页面通过填写账号、密码等信息完成志愿者登录操作,如图5.3所示:
图5.3志愿者登录界面图
个人中心,在个人中心页面可以填写用户名、密码、姓名、头像、性别、手机等信息更新,退出登录,并进行查看我的收藏等操作;如图5.4所示。
图5.4个人中心界面图
问题反馈,在问题反馈页面查看用户名、留言内容、留言图片、回复内容、回复图片等内容,进行立即提交操作,如图5.5所示:
图5.5问题反馈界面图
环保知识,在环保知识页面查看知识名称、知识类型、发布日期等信息,进行点我收藏操作,如图5.6所示:
图5.6环保知识界面图
活动信息,在活动信息页面查看活动名称、活动分类、活动图片、活动地点、活动时间、活动公告等内容,进行点我收藏、报名、活动内容等操作,如图5.7所示:
图5.7活动信息界面图
招募信息,在招募信息页面查看招募名称、招募类型、招募图片、发布日期等内容,进行点我收藏、报名、招募内容等操作,如图5.8所示:
图5.8招募信息界面图
5.1.2 管理员功能模块实现
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录操作,如图5.9所示:
图5.9管理员登录界面图
相关代码如下:
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
管理员登录系统后,可以对首页、个人中心、志愿者管理、招募信息管理、活动信息管理、环保知识管理、招募报名管理、活动报名管理、问题反馈、系统管理等进行相应的操作管理,如图5.10所示:
图5.10管理员功能界图面
志愿者管理,在志愿者管理页面可以对用户名、姓名、头像、性别、手机等内容,进行详情、修改和删除等操作,如图5.11所示:
图5.11志愿者管理界面图
相关代码如下:
//查询
ZhiyuanzheEntity zhiyuanzhe = zhiyuanzheService.selectById(id);
//保存
zhiyuanzhe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhiyuanzhe);
ZhiyuanzheEntity user = zhiyuanzheService.selectOne(new EntityWrapper<ZhiyuanzheEntity>().eq("yonghuming", zhiyuanzhe.getYonghuming()));
if(user!=null) {
return R.error("用户已存在");
}
zhiyuanzhe.setId(new Date().getTime());
zhiyuanzheService.insert(zhiyuanzhe);
//修改
zhiyuanzheService.updateById(zhiyuanzhe);//全部更新
//删除
zhiyuanzheService.deleteBatchIds(Arrays.asList(ids));
招募信息管理,在招募信息管理页面可以查看招募名称、招募类型、招募图片、发布日期等内容,进行详情、修改、删除等操作,如图5.12所示:
图5.12招募信息管理界面图
活动信息管理,在活动信息管理页面可以查看活动名称、活动分类、活动图片、活动地点、活动时间等内容,进行详情、修改和删除等操作,如图5.13所示:
图5.13活动信息管理界面图
招募报名管理,在招募报名管理页面可以对招募名称、招募类型、报名信息、报名日期、用户名、手机、审核回复、审核状态、审核等内容,进行详情、修改和删除等操作,如图5.14所示:
图5.14招募报名管理界面图
活动报名管理,在活动报名管理页面可以查看活动名称、活动类型、动图片、活动地点、活动时间、报名时间、用户名、姓名、手机、审核回复、审核状态、审核等内容,进行详情、修改和删除等操作,如图5.15所示。
图5.15活动报名管理界面图
问题反馈,在问题反馈页面可以查看用户名、留言内容、留言图片、回复内容、回复图片等内容,进行详情、修改、回复和删除等操作,如图5.16所示:
图5.16问题反馈界面图
系统管理;管理员在该页面查看新闻资讯、轮播图管理,进行新闻资讯发布,还可以上传轮播图的图片进行查看、修改操作,以及图片的删除操作操作,如图5.17、5.18所示。
图5.17新闻资讯界面图
图5.18轮播图管理界面图
5.1.3 志愿者功能模块实现
志愿者登录进入网站后台可以对首页、个人中心、招募报名管理、活动报名管理、我的收藏管理等进行相应操作,如图5.19所示:
图5.19志愿者功能界面图
个人中心,在个人中心页面查看用户名、姓名、头像、性别、手机等信息修改,进行修改密码操作,如图5.20所示:
图5.20个人中心界面图
招募报名管理,在招募报名管理页面查看招募名称、招募类型、报名信息、报名日期、用户名、手机、审核回复、审核状态等内容,进行详情操作,如图5.21所示:
图5.21招募报名管理界面图
活动报名管理,在活动报名管理页面查看活动名称、活动类型、动图片、活动地点、活动时间、报名时间、用户名、姓名、手机、审核回复、审核状态等内容,进行详情操作,如图5.22所示:
图5.22活动报名管理界面图
我的收藏管理,在我的收藏管理页面查看收藏名称、收藏图片、推荐类型等内容,进行详情、删除等操作,如图5.23所示。
图5.23我的收藏管理界面图
5.2 编码规范
(1)标识符命名,采用驼峰命名形式。
PageUtils queryPage(Map<String, Object> params);
List<HuodongbaomingVO> selectListVO(Wrapper<HuodongbaomingEntity> wrapper);
HuodongbaomingVO selectVO(@Param("ew") Wrapper<HuodongbaomingEntity> wrapper);
List<HuodongbaomingView> selectListView(Wrapper<HuodongbaomingEntity> wrapper);
HuodongbaomingView selectView(@Param("ew") Wrapper<HuodongbaomingEntity> wrapper);
PageUtils queryPage(Map<String, Object> params,Wrapper<HuodongbaomingEntity> wrapper);
(2)注释
多行注释:
/**
* 主键id
*/
@TableId
private Long id;
单行注释:
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody ZhaomuxinxiEntity zhaomuxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(zhaomuxinxi);
zhaomuxinxiService.updateById(zhaomuxinxi);//全部更新
return R.ok();
}
方法前注释:
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
zhiyuanzheService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
(3)标准的书写格式,合理使用空行及缩进,举例说明。
6 系统测试
6.1 软件测试的方法
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。
6.2 系统功能测试
系统主要模块测试如6.1表所示:
表6.1系统主要模块测试表
功能 | 系统登录模块测试 | |
目的 | 测试系统登录模块中的登录功能是否有效 | |
前提条件 | 数据中已存放用户的信息 | |
输入/动作 | 输出结果 | 实际情况 |
用户名:abo 密码:123 | 能够正常登录系统 | 正常 |
用户名:abo 密码:空 | 不能登录到系统并显示密码不能为空 | 正常 |
用户名:空 密码:空 | 不能登录到系统,并显示用户名和密码不能为空 | 正常 |
功能 | 招募信息管理功能模块的测试 | |
目的 | 测试招募信息管理新增、修改、删除是否正常 | |
前提条件 | 先要进行新增招募信息管理的测试 | |
输入/动作 | 输出结果 | 实际情况 |
进入后台招募信息管理页 | 招募信息列表显示 | 正常 |
招募信息添加 | 跳转入信息添加页,输入数据后放入招募信息表中 | 正常 |
招募信息修改 | 点击招募信息修改跳入招募信息修改界面 | 正常 |
招募信息删除 | 点击招募信息列表页某招募信息后的删除键进行删除 | 正常 |
7 结 论
经过这几个月来的学习与制作,本大学生志愿者服务管理系统的功能已基本实现。总结这一次的制作过程,这就是将课本上的知识运用到实现的操作中,通过这次的制作让我了解到了制作一个网站的基本过程,加深了我对计算机技术的了解。
由于我对Java学习的时间不够长,目前还是Java的新手,知识水平能力有限,所以本系统还有很多不足和值得改进的地方,由于我的能力有限,这一模块功能未实现,对于用户信息录入资料时的条件判断还不够严密,所以可能会出现自己输入信息时有误。
当初在做毕业设计的时候也遇到过很多的问题,在我用Java里面自带的URL连接网页时,测试提交注册信息和修改资料都没有反应,原因找了好久都没有找到,最后无意间用了另一个版本的浏览器,问题竟然迎刃而解了。本网站的各模块功能可能设计得不够完善,有待于以后的改进。我希望能在以后的学习中能够进一步的学习,把这些应用中用到的功能扩充得更加丰富,能够适应各种用户的需求。
参考文献
[1] 李兴华. JavaWeb开发实战经典基础篇(第1版)[M].北京:清华大学出版社,2010.8.
[2] 程志艳, 张亮. Springboot实用简明教程[M].北京:清华大学出版社,2018.12.
[3] 陈刚.Eclipse从入门到精通[M].北京:清华大学出版社,2019.6.
[4] 李勇平.Springboot应用开发详解[M].电子工业出版社,2017.10.
[5] 郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2019.2.
[6] 张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2017.
[7] 李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2018.
[8] 孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2019.6:1-205.
[9] 曹广鑫编著.Springboot数据库项目开发宝典[M].北京:电子工业出版社,2017.
[10] 王剑,邓武.基于Web服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2018,2(3):65-90.
[11] 周旌恒.Springboot应用开发详解(第三版)[M].北京:电子工业出版社,2019.
[12] Shanliang Xue;Qing Yan Wei;Guang Ming Jiao;Dun Wen Zuo. Research Code Management System Based on J2EE[J]. Key Engineering Material.2019,Vol.431-432(188-191).
[13] Yan Ming Li;Li Feng Wan. Design On Framework Structure of College English Learning Management System Based on Struts2[J].Advanced Materials Research.2017,Vol.846-847(1558-1561).
[14]Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2016.
[15] Joshua Bloch. Effective Java[M]. Piscataway, N.J: IEEE Press, 2019.
[16] Juan Lipson Vuong.A semantics-based routing scheme for grid resource disc overy[M].E-Science: First 2019.International Conference on E-Science and GridComputing,2015:58-70,90.
致 谢
路漫漫其修远兮,吾将上下而求索。我的本科生涯,到这里就差不多结束了。始于2019年初秋,终于2023年盛夏,四年一瞬,聚散有时。目之所及,皆是回忆。纵有万般不舍,但仍心怀感激。
桃李不言,下自成蹊。在这里我首先要感谢论文指导老师在开题时对我选题的指导和帮助,同时也要感谢我的论文答辩老师。指导老师在我毕业论文设计的过程中给予了我很大的帮助,对工作认真负责,对于我的课题帮我深入的剖析。在老师这边我学到的不仅仅是系统和程序的设计知识,还有为人处事的道理。无论是学习还是生活,指导老师给予我的这些帮助,将是我之后学习和工作中的一笔巨大的财富。得遇良师,何其有幸。师恩难忘,铭记于心。
春晖寸草,山高海深。二十余载求学路,感恩父母对我无条件的帮助和支持,使我能够衣食无忧,让我站在他们的肩膀上,见识到他们所未能见识的繁华。夺走父母青春的从来不是时间,而是我,养育之恩无以为报,只有不断努力,成为你们的骄傲。感谢我的姐姐在我遇到困难的时候帮我排忧解难,在我无助的时候嘘寒问暖,给我鼓励和帮助,是我一直以来最坚强的后盾。
同窗数载,知己难寻。我要感谢我的舍友,我们来自天南地北,但我们相聚在此,皆是缘分。感谢你们四年来对我的包容和帮助,陪我度过了很多艰难的时光。同时也要感谢同班的全体同学,感谢在一起生活学习的日子。花开花落总无情,唯有友情藏心间。祝我们保持热爱,奔赴山海,高处相见。
我生来平凡,惊艳不了青春,斑驳不了岁月,感谢普通且不断努力的自己。
凡是过往,皆为序章。我将带着学校教给我的知识与人生道理,不断前行。山水相逢,终有一别,我们后会有期!
喜欢的点赞收藏加关注私信作者交流沟通