此流浪动物救助平台的开发项目使用Java语言,采用基于MVC模式的JavaEE技术进行开发,使用MyEclipse编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS技术完成系统的开发。就论题的各类需求分析说明做出解释,然后再就网站的总体设计和详细设计做出论述,给出了网站总体结构的搭建方法。从而满足大部分中流浪动物救助平台的需求。
关键词:流浪动物救助平台:Springboot框架;Mysql数据库;
Abstract
ThedevelopmentprojectofthisstrayanimalrescueplatformusesJavalanguageandJavaEEtechnologybasedonMVCmode.ItiswrittenusingMyEclipsecompilerandmainlyusesMicrosoft'sMySQLrelationaldatabaseasthedatastoragemedium.Thesystemdevelopmentiscompletedinconjunctionwithfront-endHTML+CSStechnology.Explainthevariousrequirementsanalysisexplanationsforthetopic,andthendiscusstheoverallanddetaileddesignofthewebsite,providingamethodforbuildingtheoverallstructureofthewebsite.Soastomeettheneedsofmoststrayanimalrescueplatforms.
Keywords:Wanderinganimalrescueplatform:Springbootframework;MySQLdatabase;
1.1选题依据
1.2国内外研究现状
在国外,流浪动物救助事业已经发展得相对成熟。许多国家和地区都建立了完善的救助体系,包括专业的救助组织、全面的救助措施以及高效的救助平台。同时,国外在技术应用方面也更为先进。利用SpringBoot等框架构建的救助平台不仅功能强大,而且在用户体验、数据安全等方面也做得相当出色。这些成熟的经验和先进的技术为我们提供了宝贵的借鉴和参考,有助于推动我国流浪动物救助事业的快速发展。
综上所述,SpringBoot流浪动物救助平台在国内外都呈现出较大的研究价值和实践意义。通过借鉴国外的先进经验和技术,结合国内实际情况进行深入研究和实践,我们有望为我国流浪动物救助事业注入新的活力,推动其向更加成熟、高效的方向发展。
1.4论文结构与章节安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的现状和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
2.1可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1技术可行性分析
流浪动物救助平台存储所使用的是Mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用Springboot框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前Springboot框架也是很多用户选择的框架之一。
2.1.2经济可行性分析
在开发流浪动物救助平台中所使用的开发软件像IDEA开发工具、Tomcat服务器、MySQL数据库等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
2.1.3操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
2.2系统功能分析
2.2.1功能性分析
按照流浪动物救助平台的角色,我划分为了用户模块、志愿者模块及管理员管理模块这三大部分。
用户模块:
(3)动物资讯:用户进行资讯的阅览,查看管理者发布的动物资讯信息。
(6)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。
(6)个人中心:在前台点击“我的”下面的“个人中心”可以对个人首页、领养信息、加入志愿者、爱心募捐、收藏等的信息进行管控。
志愿者用户管理模块:
(1)个人信息:当志愿者用户点击“个人信息”按钮,可以对个人的头像、昵称、手机号码等信息进行更新。
(3)留言管理:点击“留言管理”按钮会显示出所有的留言管理,支持对留言管理的增删改查操作。
(4)领养信息管理:点击“领养信息管理”按钮会显示出所有动物的领养信息信息,支持对领养信息的增删改查操作。
(5)爱心募捐管理:点击“爱心募捐管理”按钮会显示出所有用户的爱心募捐信息,支持对爱心募捐的增删改查操作。
(6)加入志愿者管理:点击“加入志愿者管理”按钮会显示出所有加入志愿者信息,支持对加入志愿者的增删改查操作。
管理员管理模块:
(1)系统用户:管理员可以对前台上注册过的用户信息进行管控,也可以对管理员信息进行管控。
(5)留言管理:点击“留言管理”这个菜单,可以查看到所以用户提交的留言反馈信息,进行查询,添加、删除等操作。
(6)流浪动物管理:点击“流浪动物管理”这个菜单,可以查看到所以流浪动物信息,进行查询,添加、删除等操作。
(7)个人信息:管理员点击“个人信息”按钮,可以对个人的头像、昵称、手机号码等信息进行更新。
2.2.2非功能性分析
流浪动物救助平台的非功能性需求比如流浪动物救助平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1流浪动物救助平台非功能需求表
2.3系统用例分析
通过2.3功能的分析,得出了本流浪动物救助平台的用例图:
用户角色用例如图2-2所示。
图2-2流浪动物救助平台用户角色用例图
志愿者角色用例如图2-3所示。
图2-3流浪动物救助平台志愿者角色用例图
web后台管理上的管理员是维护整个流浪动物救助平台中所有数据信息的。管理员角色用例如图2-4所示。
图2-4流浪动物救助平台管理员角色用例图
2.5本章小结
本章主要通过对流浪动物救助平台的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个流浪动物救助平台要实现的功能。同时也为流浪动物救助平台的代码实现和测试提供了标准。
3流浪动物救助平台总体设计
本章主要讨论的内容包括流浪动物救助平台的功能模块设计、数据库系统设计。
3.1系统架构设计
本流浪动物救助平台从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1流浪动物救助平台系统架构设计图
表现层(UI):又称UI层,主要完成本流浪动物救助平台的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本流浪动物救助平台时的舒适度。UI的界面设计也要适应不同版本的流浪动物救助平台以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本流浪动物救助平台的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本流浪动物救助平台的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本流浪动物救助平台的数据存储和管理功能。
3.2系统功能模块设计
3.2.1整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本流浪动物救助平台中的用例。那么接下来就要开始对本流浪动物救助平台的架构、主要功能和数据库开始进行设计。流浪动物救助平台根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2流浪动物救助平台功能模块图
3.3数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1数据库概念结构设计
下面是整个流浪动物救助平台中主要的数据库表总E-R实体关系图。
图3-6流浪动物救助平台总E-R关系图
3.3.2数据库逻辑结构设计
通过上一小节中流浪动物救助平台中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表access_token(登陆访问时长)
表adoption_information(领养信息)
表animal_types(动物类型)
表auth(用户权限管理)
表collect(收藏)
表hits(用户点击)
表joining_volunteers(加入志愿者)
表love_donation(爱心募捐)
表message(留言板)
表notice(公告)
表praise(点赞)
表registered_users(注册用户)
表slides(轮播图)
表upload(文件上传)
表user_group(用户组:用于用户前端身份和鉴权)
表volunteer_users(志愿者用户)
表wandering_animals(流浪动物)
3.4本章小结
整个流浪动物救助平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
流浪动物救助平台的详细设计与实现主要是根据前面的流浪动物救助平台的需求分析和流浪动物救助平台的总体设计来设计页面并实现业务逻辑。主要从流浪动物救助平台界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1前台首页界面
当进入流浪动物救助平台的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。
图4-1前台首页界面图
4.1.2用户注册界面
图4-2前台用户注册界面图
注册关键代码如下:
/**
*注册
*/
//查询用户
Mapquery=newHashMap<>();
Mapmap=JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
Listlist=service.selectBaseList(service.select(query,newHashMap<>()));
if(list.size()>0){
returnerror(30000,"用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
returnsuccess(1);
Stringusername=data.get("username");
Stringemail=data.get("email");
Stringphone=data.get("phone");
Stringpassword=data.get("password");
ListresultList=null;
Mapmap=newHashMap<>();
if(username!=null&&"".equals(username)==false){
map.put("username",username);
resultList=service.select(map,newHashMap<>()).getResultList();
elseif(email!=null&&"".equals(email)==false){
map.put("email",email);
elseif(phone!=null&&"".equals(phone)==false){
map.put("phone",phone);
}else{
returnerror(30000,"账号或密码不能为空");
if(resultList==null||password==null){
//判断是否有这个用户
if(resultList.size()<=0){
returnerror(30000,"用户不存在");
UserbyUsername=(User)resultList.get(0);
MapgroupMap=newHashMap<>();
groupMap.put("name",byUsername.getUserGroup());
ListgroupList=userGroupService.select(groupMap,newHashMap<>()).getResultList();
if(groupList.size()<1){
returnerror(30000,"用户组不存在");
UserGroupuserGroup=(UserGroup)groupList.get(0);
//查询用户审核状态
if(!StringUtils.isEmpty(userGroup.getSourceTable())){
Stringsql="selectexamine_statefrom"+userGroup.getSourceTable()+"WHEREuser_id="+byUsername.getUserId();
Stringres=String.valueOf(service.runCountSql(sql).getSingleResult());
if(res==null){
if(!res.equals("已通过")){
returnerror(30000,"该用户审核未通过");
//查询用户状态
if(byUsername.getState()!=1){
Stringmd5password=service.encryption(password);
if(byUsername.getPassword().equals(md5password)){
//存储Token到数据库
AccessTokenaccessToken=newAccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
//返回用户信息
JSONObjectuser=JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token",accessToken.getToken());
JSONObjectret=newJSONObject();
ret.put("obj",user);
returnsuccess(ret);
returnerror(30000,"账号或密码不正确");
4.1.4流浪动物界面
图4-4流浪动物界面图
4.1.5领养信息界面
图4-5领养信息界面图
4.2管理员功能模块
4.2.1系统用户界面
流浪动物救助平台中的管理人员是可以对前台注册的用户和志愿者用户进行管理的,也可以对管理员进行管控。界面如下图4-6所示。
图4-6系统用户界面图
系统用户代码如下:
publicMapset(HttpServletRequestrequest)throwsIOException{
service.update(service.readQuery(request),service.readConfig(request),service.readBody(request.getReader()));
4.2.2流浪动物管理界面
流浪动物救助平台中的管理人员是可以对系统内的所有流浪动物进行维护和管理的,支持增删改查操作。界面如下图4-7所示。
图4-7流浪动物界面图
流浪动物代码如下:
publicMapadd(HttpServletRequestrequest)throwsIOException{
service.insert(service.readBody(request.getReader()));
publicMapaddMap(Mapmap){
4.2.3留言管理界面
管理员可以对所以留言反馈进行管控,还可以进行查询、重置、删除、添加等操作。界面如下图4-8所示。
图4-8留言管理界面图
4.2.4资讯管理界面
管理员可以对流浪动物救助平台中的资讯列表、分类列表信息进行增删改查。界面如下图4-9所示。
图4-9资讯列表界面图
4.3志愿者功能模块
4.2.1加入志愿者管理界面
点击“加入志愿者管理”按钮会显示出所有的志愿者信息,支持对加入志愿者的的增删改查操作。界面如下图4-10所示。
图4-10加入志愿者管理界面图
4.2.2爱心募捐管理界面
击“爱心募捐管理”按钮会显示出所有的募捐信息,支持对爱心募捐信息的增删改查操作。界面如下图4-11所示。
图4-11爱心募捐管理界面图
爱心募捐管理关键代码如下所示。
publicMapobj(HttpServletRequestrequest){
ListresultList=service.selectBaseList(service.select(service.readQuery(request),service.readConfig(request)));
if(resultList.size()>0){
JSONObjectjsonObject=newJSONObject();
jsonObject.put("obj",resultList.get(0));
returnsuccess(jsonObject);
returnsuccess(null);
系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。客户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。
近年来,软件包含测试从现在的检验当中来看,系统接近预期目标可能出现的问题,并对这些错误做出相应的修正,假如我们不进行早期的测试错误就会延续下去,最后所做出的成品就会有很大的困难。
我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试
5.1系统测试的意义
图5-1测试与纠错信息流程
5.2测试方法
具体测试方法包括:黑盒测试和白盒测试。
黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。
白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。
具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。
5.3测试分析
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。
(2)该流浪动物救助平台内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因客户的马虎操作而出现的失误,其操作方便,会员界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进流浪动物救助平台的发展,发展前景广阔。
结论
参考文献
[1]AnjaningrumDW,AzizahN,SuryadiN.SpurringSMEs’performancethroughbusinessintelligence,organizationalandnetworklearning,customervalueanticipation,andinnovation-EmpiricalevidenceofthecreativeeconomysectorinEastJava,Indonesia[J].Heliyon,2024,10(7):e27998-.
[2]SetiawanRAA,MunawarSS,IshizakiR,etal.Optimizingbiomasssupplyforcofiringatpowerplantstominimizeenvironmentalimpact:AcaseofoilpalmemptyfruitbunchesinWestJava[J].Fuel,2024,367131359-.
[3]AriantiDF,TriastonoJ,PertiwiDM,etal.RenewableenergypotentialofricestrawandpaunchmanureasbioethanolfeedstocksinCentralJava,Indonesia[J].CaseStudiesinChemicalandEnvironmentalEngineering,2024,9100677-.
[4]赵慧,温艳冬.基于对分课堂的Java语言程序设计课程合作学习模式[J].计算机教育,2024,(04):204-208.DOI:10.16512/j.cnki.jsjjy.2024.04.039.
[5]AgastyaMPLN,WiseS,KerteszM,etal.TransformationofchildwelfareInstitutionsinBandung,WestJava:AcaseofdeinstitutionalizationinIndonesia[J].ChildrenandYouthServicesReview,2024,159107545-.
[6]刘慧玲,谭定英,陈平平.基于SpringBoot和Vue.js的大学生团队管理系统的设计[J].电脑编程技巧与维护,2024,(03):120-122.DOI:10.16184/j.cnki.comprg.2024.03.039.
[7]付俊峰,魏博文,黄佩兵,等.基于Java平台的超大发电装备运载线路数值测试方法[J].三峡大学学报(自然科学版),2024,46(02):98-105.DOI:10.13393/j.cnki.issn.1672-948X.2024.02.015.
[8]赵彩霞,张栽培,杨璇.基于Java编程导航学习平台开发设计的研究[J].家电维修,2024,(03):62-64.
[9]张学芹.基于Java的学生请假管理系统设计与实现[J].无线互联科技,2024,21(04):90-93+111.
[10]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[11]白茹鑫.基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现[J].现代信息科技,2024,8(01):44-49.DOI:10.19850/j.cnki.2096-4706.2024.01.009.
[12]刘禹松.全球旅行救助平台升级大模型解放企业生产力[N].中国贸易报,2023-07-20(003).DOI:10.28113/n.cnki.ncmyb.2023.000943.
[13]王奕昕.共情之跃:动物救助类短视频的情感化表达与动员[D].苏州大学,2023.DOI:10.27351/d.cnki.gszhu.2023.000064.
[14]桑菁华.智慧救助体系的设计与实现[J].电子技术,2022,51(10):324-325.
[15]丁晶晶.大理市城市流浪动物协同治理研究[D].云南财经大学,2022.DOI:10.27455/d.cnki.gycmc.2022.000727.
[16]安琪.基于服务设计思维的城市流浪动物助养系统设计研究[D].北京化工大学,2022.DOI:10.26939/d.cnki.gbhgu.2022.001964.
[17]张勇.云南建立政府救助平台防止规模性返贫[N].光明日报,2022-01-10(010).DOI:10.28273/n.cnki.ngmrb.2022.000175.
[18]王克强.我市帮扶救助平台建设工作稳步推进[N].保山日报,2021-12-17(001).DOI:10.43604/n.cnki.nbsrb.2021.001142.
[19]秦豆豆,赵佳意,徐池,等.AIT——流浪猫狗救助平台管理系统的设计与实现[J].电子技术与软件工程,2021,(14):158-159.
[20]姜苏.基于互联网平台解决社会流浪动物问题的可行性研究[D].山东农业大学,2020.DOI:10.27277/d.cnki.gsdnu.2020.001043.
致谢
首先,我们要特别感谢我们的团队成员们。他们不仅具备出色的技术实力,更拥有对流浪动物救助事业的深厚情怀。在平台研发过程中,他们克服了重重困难,付出了大量的心血和汗水,才使得平台能够顺利上线并稳定运行。他们的辛勤付出和默契配合,是我们能够取得成果的关键所在。
同时,我们也要感谢导师和专家们的悉心指导和无私帮助。他们凭借丰富的专业知识和实践经验,为我们在平台研发过程中提供了宝贵的建议和指导,帮助我们解决了许多技术难题,使平台的功能更加完善、性能更加稳定。他们的教诲和指导,不仅让我们在技术上得到了提升,更让我们对流浪动物救助事业有了更深刻的认识和体会。
最后,我们要向所有支持和帮助过我们的人表示衷心的感谢和崇高的敬意!我们将继续努力,不断优化平台功能,提升服务质量,为流浪动物救助事业贡献更多的力量。同时,我们也希望更多的人能够加入到这个事业中来,共同为流浪动物创造一个更好的生存环境。