《基于SpringBoot技术的论坛系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于SpringBoot技术的论坛系统设计与实现.docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科毕业设计(论文) 基于SpringBoot技术的论坛系统设计与实现 Design and implementation of forum system based on springboot Technology 院 (系)计算机科学与技术系专 业软件工程班 级软工一班学 号16210120123学生姓名李晓冰指导教师张薇提交日期2020年 4 月 15 日内容摘要随着计算机技术的发展,人们的工作、学习和生活变得更高效,更方便;现代人的生活已经离不开网络,在网络上跟人交流沟通的方式已经取代了传统的纸媒。人们可以在网站上方便、快捷、随意地分享自己的趣事,很多不同的网友也可以对帖子发布的内容进
2、行客观、实在的评价或者探讨对各种事物的不同看法;集思广益碰撞出不一样的思想火花。本次的毕业设计课题将围绕网上在线论坛系统进行设计与实现。系统将实现由论坛用户之间通过发帖、评论、回复来进行实时沟通的功能;本系统将从三层架构(即业务逻辑层-数据访问层-表示层)实现,主要技术有:业务逻辑层框架SpringBoot、数据访问层框架Mybatis、表示层框架bootstrap;本系统由用户模块、公共信息模块、帖子模块以及管理员模块组成,很大程度上实现了现代网上论坛具有的功能。关键词:网络技术 ;在线论坛;SpringBootAbstract With the development of compute
3、r technology, peoples work, study and life have become more efficient and convenient.The life of modern people has been inseparable from the network, the way of communication with people on the network has replaced the traditional paper media.People can easily, quickly and freely share their funny s
4、tories on the website. Many different netizens can also make objective and realistic comments on the contents of the post or discuss different views on various things.The collision of different ideas sparks.This graduation project will focus on the online forum system design and implementation.The s
5、ystem will realize the function of real-time communication among forum users through Posting, commenting and replying.The system will be implemented from three layers (namely, business logic layer - data access layer - presentation layer). The main technologies are: business logic layer framework Sp
6、ringBoot, data access layer framework Mybatis, and presentation layer framework bootstrap.This system is composed of user module, public information module, post module and administrator module, which realizes the function of modern online forum to a great extent.Key words: network technique ; Onlin
7、e forums; SpringBoot广东东软学院本科生毕业设计(论文)目 录1.前言11.1背景和意义11.2 在线论坛的发展状况11.3开发设计思想22. 开发技术简介32.1 SpringBoot技术简介32.2 java语言介绍32.3 Mysql数据库简介33.系统可行性和需求分析43.1可行性分析43.1.1 技术可行性分析43.1.2 运行可行性分析43.1.3 经济可行性分析43.1.4 操作可行性分析53.2需求分析53.2.1 功能分析53.2.2 用例分析63.2.3 业务流程分析94.数据库的概要设计114.1数据库需求分析114.2数据库的逻辑设计114.3 数据库
8、表设计125.系统概要设计145.1系统结构设计145.2系统功能模块图145.3系统流程图156.系统功能的具体实现186.1系统的总体界面186.2用户第三方登录界面186.3用户功能196.4论坛管理员功能207 系统测试217.1 系统测试概述217.2 系统测试环境与测试方法217.3 系统测试步骤与结果218 总结238.1 系统总结238.2 展望23参考文献24致谢2551.前言1.1背景和意义随着现代社会科技的快速全面发展,技术越来越成熟,人们的生活变得越来越便利。快捷的互联网诞生了众多方便人们生活的网站和系统。计算机技术的高速发展使得人们的工作效率越来越高,在网络上跟人交流
9、沟通也越来越方便,人们可以在网站上方便、快捷、随意地分享自己的趣事,很多不同的网友也可以对版主发布的内容进行客观、实在的评价或者探讨对各种事物的不同看法;当然人们也可以直接在网络上学习各种先进的技术、各种适合自己的思想、观念,碰撞出不一样的火花;人们可以把自己的疑难问题发布到网上,大家集思广益,也会有不一样的收获。本次的毕业设计课题将围绕网上在线论坛系统进行设计与实现。系统将实现由论坛用户之间通过发帖、评论、回复来进行实时沟通的功能;本系统将从三层架构(即业务逻辑层-数据访问层-表示层)实现,主要技术有:业务逻辑层框架SpringBoot、数据访问层框架Mybatis、表示层框架bootstr
10、ap;本系统由用户模块、公共信息模块、帖子模块以及管理员模块组成,很大程度上实现了现代网上论坛具有的功能。本系统的设计目的主要是为了方便同学们在论坛上进行沟通,与网友进行思维碰撞。方便大家在学习生活上有疑难的时候可以询问他人。1.2 在线论坛的发展状况网上论坛,英文简写BBS。随着计算机 的普及,难免会出现多人同时拨号一个站台的问题,急待着科技发展解决这个问题。虽然后面出现了多线站,但是真正给国内论坛发展带来革命性转折的人,是戴志康,他发布了软件Discuz,使得论坛的构建变得简单便捷。自此以后国内的论坛越来越多,也越来越追求专业性以及功能性,追求页面简洁美观,我们现在耳熟能详的新浪、猫扑等等
11、大 型的论坛就是那个时候开始的。我国的论坛的发展分为两个阶段,1996年是一个分水岭,在这之前虽然论坛也在快速发展,但是以为操作繁琐等一下原因导致受众不多;1996年之后因为技术上的革新使得论坛的构建变得简单,操作也变得简单,导致越来越多的人群习惯了在论坛上谈论实事,讨论观点,在这之后中国的网上论坛迎来了高速、跳跃式的发展。1.3开发设计思想随着互联网技术的不断革新,看着我之前很喜爱的网上论坛变得越来越末路。我想在毕设的时候做一个网上论坛系统来怀念我的青春;在信息时代,网上的信息越来月碎片化,导致很多人都没有逛论坛的习惯,很多的疑问可以直接百度查找答案,人们变得越来越没有耐心,虽然互联网的发展
12、拓宽了人么了解知识的渠道,但是也打破了人与人之间的联系。现在很多的论坛已经越来越式微,依旧蓬勃发展的可能只有知乎所代表的这一类后现代论坛了吧。我想把这个系统做成论坛最开始的模式,只有问者跟答者的关系,只有做的纯粹才是我的想法。本文系统采用Spring Boot技术进行开发、Html模板引擎使用的是thymeleaf;java具有跨平台的优点是现阶段最热门的开发语言;使用springboot技术的一大好处就是spring具有很完善的生态圈,可以很方便的直接在官网找到想要使用的技术或者spring的产品;论坛系统能够实现的功能有:第三方登陆、提问发帖、浏览、评论回复、回复提醒、编辑帖子和删除自己的
13、提问的功能;管理员对于论坛的管理包括删除违反互联网规定的提问帖,以及删除不合适回复,管理论坛的会员信息等。2. 开发技术简介2.1 SpringBoot技术简介论坛系统设计中使用的开发框架是Spring社区开发的架构Spring Boot,现在市场上非常多的公司也在使用它,足以说明它的优点,它旨在简化构建和开发一个大的Spring项目的过程,在保证原有Spring(IoC和AOP)的两个优秀特性的前提下,按照约定优于配置的方法使应用程序开发人员能够简化大部分配置,从功能上讲,Spring Boot并不是一套全新的J2EE架构, Spring Boot正是在Spring内核的基础上集成了相关功能
14、组件,实现了自动配置,降低了项目后台搭建的复杂性。2.2 java语言介绍Java是一款目前流行性很强的开发语言,无论在手机方面还是互联网方面,Java都应用广泛。这一款语言和C+很像,但Java摒弃了C+中很少使用的一些特征,继续保持C+语言受人们喜欢的一些优点:快速、安全。在使用Java进行开发程序时,Java面向对象的特点,可以让开发人员简单的使用,省去一些没有必要的操作,这样一来就可以节约时间,让开发人员可以用更多的时间精力来进行程序的研究。Java能够实现程序的跨平台运行,使用的运行环境不是编译执行,而是解释执行的方式,能够分辨硬件平台的不同,将程序解释成目前的机器码。2.3 Mys
15、ql数据库简介这次设计的论坛系统后台使用的是MYSQL这一款非常强大数据库系统,这是一款当下颇为流行的数据库,现在它是Oracle公司的,相比其他数据库,它的开放性和快速性以及多线程性,使得人们在建设网站时更喜欢使用它。MYSQL的优点显著,MYSQL无论在Unix,还是Linux以及Windows上,都可以工作,能够根据不同的语言来提供API函数。用MYSQL能够构建多个数据库表,这样能够使程序运行更快,数据更安全。3.系统可行性和需求分析3.1可行性分析3.1.1 技术可行性分析技术可行性分析主要是评估以目前的技术条件和开发者掌握的技术能力水平,能否满足系统的使用条件和需求。个人比较熟悉j
16、ava语言以及springboot技术的项目构建和代码编写,在技术条件方面没有遇到什么问题,thymeleaf模板引擎是一款非常适合前端人员使用的技术,之前有使用过这门技术来设计前端项目页面。整体来说,开发者技术水平跟软件的灵活性、安全性和易用性都是满足系统平台的开发需要的。3.1.2 运行可行性分析运行可行性分析即系统对组织及人员的适应性分析;论坛系统的受众群体为习惯在网上论坛进行分享、评论和聊天的用户;在现在的论坛系统中比较热门的是百度的百度贴吧、知乎两个头部应用;这两个论坛现在还是具有很大的日活量。本系统也将围绕着这些因素来设计,通过B/S架构来实现。3.1.3 经济可行性分析经济可行性
17、分析包含市场需求、配套成本、资源供应。要让用户在网上更容易,更快地发布帖子,开发能够满足人们在线交换信息的需求,本文章所研究的系统经济成本很低,用户只需在本地安装通用的Web浏览器,然后在浏览器中登录论坛进行浏览,发布,回复和其他操作;以下是分别说明这些因素:市场需求:现在网上的论坛以百度贴吧、知乎为头部应用;在百度指数中可以查看到这两个应用的搜索指数:其中百度贴吧在近一个月的搜索日均量为28303次;知乎在近一个月的搜索日均量为216087次;可以看出现在论坛系统的使用人数还是非常庞大的。百度指数-“百度贴吧”百度指数-“知乎”配套成本:论坛系统暂时还没有上线,因此对成本的需求不大,只需要在
18、本地的服务器就可以使用。资源供应:论坛系统的目标资源供应是自给自足,由论坛的用户产生资源吸引新的用户进入产生新的内容。3.1.4 操作可行性分析论坛系统的目的是给用户提供了一个网络环境良好、有利于用户沟通交流的平台。登录系统后的用户可以浏览帖子、发表帖子、回复帖子、编辑帖子、搜索帖子,这是作为一个论坛系统最基础的功能,本系统提供了很良好的操作性。论坛系统的用户分为两个角色:用户、管理人员。每类用户有不同的操作权限,用户具有论坛系统的大部分权限;管理员则拥有最高权限;系统通过提供不同的操作页面功能来实现两个角色不同的操作。3.2需求分析3.2.1 功能分析一个论坛重要且基础功能是让用户可以浏览帖
19、子,发布帖子,回复帖子,以及搜索帖子。同时,我们国家的互联网要求规定用户发布的帖子内容应该是健康合法的。系统的管理员应该借此加强对帖子的审阅,以防止不良内容的产生,不让本系统成了网络上藏污纳垢的地方。如果用户想在论坛上发布,则必须注册并登录。此外,必须将论坛分成多个部分,以方便区分发布和内容,并使管理员能够方便地管理发布。此外,用户必须分成不同的级别如普通用户和管理员用户,用以加强论坛的管理。论坛要实现帖子管理,也要实现用户管理,同时要考虑不同功能模块之间的协调与合作,以共同完成基于Spring Boot的论坛系统的业务需求。本论坛系统可能需要设计的功能有:用户注册功能,用户登录功能,发表主题
20、功能,回复帖子功能,查询帖子功能,浏览帖子功能,个人信息设置功能,后台管理功能。确定论坛系统的功能为:游客登录注册、发布提问帖子、浏览帖子、删除自己的帖子、搜索帖子;管理员删除帖子、管理员删除信息;功能分析:对于论坛系统最重要的就是可以让用户正常的对帖子进行增删改查操作。管理员功能是为了维护系统的网络环境绿色合法所以要保证管理员必须要有对帖子的的删除和对用户的信息删除权限。1、用户登录功能使用的是github的api调用了github的数据库资源,实现了第三方应用的登录功能;界面简洁耐看,与开放api的沟通良好,提高了用户的体验感。2、提问功能用户的主要需求就是进入系统后,能够进行发帖提问和评
21、论回复功能,设计风格应该简洁、美观大方、操作方便。 4、回复帖子功能系统首页的右上角有代办提醒会收到别的用户评论自己的帖子或者回复自己评论之后的提醒,查看详情之后点击跳转到详情的帖子页面。5、查询帖子功能输入关键字之后可以搜索匹配到帖子title符合的内容,点击之后可以进入详情页面。6、浏览帖子功能是为注册登录的用户提供浏览帖子的功能。设计风格应该简洁、美观大方、操作方便。 3.2.2 用例分析通过对系统中管理员和用户之间关系可以得出系统用例图:用户的主要功能是浏览帖子、发表提问、评论和回复帖子。管理员的主要功能是管理用户信息;管理帖子,删除不符合互联网规定的帖子。系统整体的用例图如3.1所示
22、:图3.1系统用例图1. 用户登录用例分析游客初次登录系统需要进行注册操作、注册包括系统注册、以及第三方登录注册论坛系统;第三方登录使用的是github;系统注册需要填写账号密码以及邮箱;账号是唯一存在,注册填写时会进行校验,邮箱是用来忘记密码是找回的。图3.2用户注册用例图以用户注册用例为例子,详细的介绍了系统的业务流程,当用户首次进入系统,打开页面完成登录后就可以正常访问此系统,但之后不需要再登录,因为系统会根据session保存的信息进行常态化登录。2.系统登录用例分析已经注册用户或者管理员,每次进入系统只需要点击登录就可以进行常态化登录,不需要输入账号密码;登陆成功后将进入首页。登陆成
23、功的用户权限是浏览帖子,回复帖子,评论帖子,删除自己的帖子。管理员界面可以进行的操作除了正常用户的增删改查操作还有删除所有帖子的权限以及管理用户信息的权限。系统登录用例图如图3.3所示。图3.3系统登录用例图登陆成功后会使用token来验证用户是否登陆成功,类似与vue的全局路由守护;以注册的用户和管理员登录例子来举例分析,详细介绍登录的全过程,来分析登录的详细步骤,很大程度上加大了系统的安全性和优化了用户使用感受。3.用户操作帖子用例分析用户正常登录之后就可以进行正常的系统功能操作,登录后可以先浏览帖子,对有兴趣的帖子参与回复的讨论中,类似于在线交流,如果个人有独到的见解,也可以单独发表一篇
24、帖子,在提醒的代办中能查看别人对自己的回复以及跳转目标贴子、可以删除自己的帖子、可以重新编辑自己发布的帖子信息。用户操作帖子用例图如图3.4所示。图3.4用户操作帖子用例图以用户操作帖子为例,描述用户操作帖子的整个流程,在用户提交发布之后会在首页显示,别的用户可以正常的查看会评论。实现了不同用户之间的交流数据传输,优化了每个用户的使用感受,有利于信息的传播和知识的分享。4.管理员操作帖子用例分析管理员通过登录后进入首页,先浏览全部的帖子,经过审核之后将不符合互联网规定或者将没有意义但是占据系统大量存储空间的灌水贴进行删除,对发布不良信息的账号进行屏蔽删除。管理员操作帖子用例图如下图3.5所示。
25、图3.5管理员操作帖子用例图以管理员操作帖子为例,描述管理员管理帖子的整个流程,帖子的来源并无严格的要求,这就要求管理员要进行公平的审核,对不符合互联网规定、没有意义的灌水贴的贴子进行删除,对发布不良信息的贴主进行删除信息;从而净化论坛的内容,使帖子在内容上质量更高。 3.2.3 业务流程分析1. 用户模块用户模块用来实现用户的登陆注册操作。该模块的作用是实现游客或者管理员登录进入系统;注册的方式有两种,一种是系统注册,一种是使用第三方登录(暂时只有github)系统。用户注册:游客需要进行注册之后才能正常的登录系统。用户登陆:用户需要验证系统保存的账号密码信息,验证成功之后就可以登录进系统进
26、行正常的操作;登录包括论坛系统登陆以及第三方系统登陆;首次登录需要进行账号密码验证,后面就不需要了,因为系统实现了常态化登录,通过把用户的账号密码保存在session中实现这一功能。用户发表提问帖:已经登陆的用户可以正常发帖。用户评论回复:已经登陆的用户可以通过浏览其他用户发布的帖子进行评论和回复别人的评论。2. 帖子模块论坛最基本功能就是实现帖子信息的发布和浏览;按照对提问帖操作的对象权限不同,对于帖子的操作分为两个模块,即登录用户操作模块和管理员操作模块。用户操作模块:(1)浏览帖子:进入网站正常登录之后的用户以及未登录的游客都可以浏览帖子,看到感兴趣的话题,还可以发表自己的见解但是评论只
27、对已经登录的用户开放,如果是未登录的游客将弹出提示登录的警告框,在技术层面上是用token来判断用户有没有登录,如果登录成功的话本地会保存系统返回的token,以方便实现页面跳转的时候进行判断,并且系统会在seeeion中保存用户的登录信息,以便下次登录的时候不需要再重新输入账号密码,可以直接进入系统。很大程度的提升了用户的使用感受,优化了用户体验。(2)帖子发布:登录的用户如果有自己的想法可以选择发布帖子,发布页面集成了富文本输入框组件,可以输入文本、上传文件、输入表情;文件将保存在数据库中,提供url地址进行访问。论坛本身就是提供给用户一个交流沟通的平台。(3)帖子回复:以登录用户在首页的
28、右上角有一个提醒的代办按钮,点击之后可以看到别的用户回复或者评论自己发布的内容;点击详情之后可以跳转到该页面,需要指出的是,用户在进行发帖和回帖时候前提条件是需要先登录,帖子的发布和回复功能很好的说明了论坛的核心功能,在这个用户交流沟通的平台上,最基础也是最重要的就是这两个功能。3.管理员模块管理员模块:管理员是系统最大权限的用户;包括不限于对所有帖子进行删除操作;对所有用户的信息进行修改和删除操作;管理员是每个系统必要有的功能;该角色可以保证在可视化页面对系统进行维护和管理;有利于保证系统的稳定性和保证系统的生命周期得以延续。管理用户模块:该模块又包括对于用户的增加、删除以及设置用户权限。其
29、中设置用户权限是指给予某些普通用户一定的权限成为版主,协助管理论坛指定版面内的帖子。这样为论坛管理引入领域专业人才,同时减轻管理员管理的负担。4.数据库的概要设计4.1数据库需求分析数据库是数据的仓库,而数据是整个系统的基础以及重点;在一个应用中如果没有数据,即使系统再花里胡哨也没有人会去使用,对受众群体没有任何的吸引力,因此应用的生命周期自然就短;数据库设计遵循三方面原则:一对一设计原则;独特命名原则;双向使用原则;网络论坛系统是基于SpringBoot架构且采用MySQL数据库存储数据,实现了论坛系统数据的集中存储。针对论坛系统,分别对用户、游客和管理员进行分析;总结出如下的需求信息:用户
30、需要提问发帖,涉及到数据的存储;用户需要评论回复帖子,设计到数据的存取;用户需要删除所属的帖子,设计到数据的删除;游客需要进行登录验证,设计到数据的存取;管理员需要进行删除提问,设计到数据的存取;结合上述的需求可以得出,论坛系统的数据库只需设计简单的CURD操作,不需要非常高深的数据库sql操作,因此结合可行性分析得出需要的数据库设计架构; 4.2数据库的逻辑设计数据库逻辑设计就是数据库表的创建过程、结构以及结果,不同的逻辑设计对应不同的数据库设计结果;结合以下内容论述论坛系统的数据库逻辑设计,尽量使用最简单最直接的方法达到目的,代表了最高效率最好的设计结果。归于简单,归于直接的设计才能最好的
31、体现架构的水平。在这些论点中我将数据字典和ER图转换为数据库的模型就是数据库的逻辑设计,数据库逻辑设计起到前后呼应的作用,为后面的数据库的物理设计做充足准备。用户:用户编号、账号、密码、邮箱、头像图片地址; 管理员: 管理员编号、账号、密码、邮箱、头像图片地址;提问帖: 编号、标题、主题内容、发帖人、发帖时间、标签;回复帖子:帖子编号、帖子状态、帖子回复数、创建时间、内容、回复内容编号、帖子归属用户编号;常态化登录状态表:用户编号、账号、密码、邮箱、头像图片地址;文件表:文件编号、文件名称、创建时间、文件保存地址4.3 数据库表设计(1)用户表包括(id、姓名、密码、邮箱、性别、图像共5个字段
32、,如下表4.1所示:表4.1用户表字段名数据类型字段大小说明IdInt11IdNameVarchar250姓名PassworkVarchar250密码SexVarchar50性别urlVarchar250图像EmailVarchar250邮箱(2)帖子内容表包括(id、标题、主题内容、发帖人id、创建时间、标签)共5个字段,如下表4.2所示:表4.2帖子内容表字段名数据类型字段大小说明IdInt11IdTitleVarchar250标题TopicContentText4000主题内容UseridInt11发帖人idGmt_modifidyTimestamp6创建时间BagVarchar250标
33、签(3)回帖表包括(帖子编号、帖子状态、帖子回复数、创建时间、内容、回复内容编号、帖子归属用户编号)共7个字段,如下表4.3所示:表4.3回复帖子表字段名数据类型字段大小说明IdInt11帖子编号StateVarchar250帖子状态CountInt11帖子回复数TimeTimestamp6创建时间DetailsText4000内容PostidInt11回复内容编号UseridInt11帖子归属用户编号(4)板块标签表包括(模块号、模块名)共2个字段,如下表4.4所示:表4.4 板块标签表字段名数据类型字段大小说明BoardIdVarchar20模块号BoardNameVarchar250模块
34、名(5)常态化登录状态表(用户编号、账号、密码、邮箱、头像图片地址、session储存记录)共6个字段,如下表4.5所示表4.5 常态化登录状态表字段名数据类型字段大小说明IdInt11IdNameVarchar250姓名PassworkVarchar250密码SexVarchar50性别urlVarchar250图像EmailVarchar250邮箱sessionVarchar250session储存记录(6)文件表(文件编号、创建人、文件名称、创建时间、文件保存地址)共5个字段,如下表4.6所示表4.6 文件表文件编号 数据类型字段大小说明IdInt11文件编号Op_createVarch
35、ar50创建人FileNameVarchar250文件名称C_timeTimestamp6创建时间FileurlVarchar250文件保存地址5.系统概要设计5.1系统结构设计论坛系统使用了B/S的结构体系,由以下几个模块组成。(1)前台部分模块:首先是游客点击登录跳转,登录成功之后跳转首页;如果没有登录的话是不能浏览其他用户的帖子的。(2)后台部分模块:后台部分模块包含用户和管理员不同权限的操作方法,游客可以通过github登陆系统,可实现发帖、回复帖、搜索帖子和浏览帖子功能;管理员有权限删除所有用户的帖子和删除用户的信息。后台使用MySQL数据库把系统通过实现用户登录系统后发布新帖、回复
36、新帖子以及对帖子管理的一系列操作产生的大量数据进行存储。 5.2系统功能模块图基于系统需求分析,将论坛系统分为四大模块,分别是用户模块、公共信息模块、帖子模块以及管理员模块;其中每一模块包括很多具体功能。管理员可以管理模块、帖子信息和管理用户信息,拥有最大的权限。系统功能结构图如下图5.1所示。图5.1系统总体模块设计图本系统具有以下功能, 1.用户功能 浏览帖子,发表帖子、搜索帖子、回复帖子、删除帖子。2.帖子回复管理功能 回复帖子;查看代办提醒跳转到回复位置;查看帖子回复信息。3.用户管理功能 管理员删除帖子信息、管理员删除用户信息、管理员管理模块信息。4.帖子管理功能 管理员删除帖子,用
37、户删除所属的帖子信息。5.3系统流程图1.用户注册登录模块跳转到注册登录页面,可以选择注册或者第三方(github)跳转登录,注册时将会用户输入进行校验,通过比对数据库中用户表信息校验用户名是否冲突,冲突会提示重新输入,否则提示注册成功。数据会提交到后台的数据库。如图 5.2所示。图5.2用户登录注册流程图首先,用户需要注册之后才能登陆系统,进行正常的系统功能;本模块包括三个小部分:(1)用户注册。首次登陆系统的用户需要进行注册,提交账号密码以及邮箱,上传头像校验通过之后提示注册成功,并返回首页,记住登录状态;(2)修改资料。用户可以对个人资料进行修改保存,并且可以修改用户密码。(3)忘记密码
38、。对于忘记密码的用户可以选择通过验证邮箱之后修改密码。2. 帖子模块用户进入帖子版块,会通过校验本地token来验证是否登陆,如果本地由token,用户可以点击登陆之后自动登录,系统会通过session信息来实现常态化登录状态。系统管理员可以对本论坛的所有帖子信息和用户信息进行管理,具有最高的操作权限。普通用户的功能包括,提问、发布、回复、浏览、搜索帖子、如果未登陆则只可浏览帖子。其功能流程图如图5.3所示。论坛系统功能流程用户管理员管理帖子、管理用户提问回复删除浏览图5.3论坛讨论区流程图论坛系统功能流程图解:游客登录成功后进入首页,可以提问、浏览帖子、删除自己提问、回复别人的帖子、搜索帖子
39、;管理员可以管理帖子、管理用户信息;未登录的游客只能浏览帖子和搜索帖子但是不能进行回复,会弹出登录警告。本模块包括五个小部分: (1)编辑帖子:针对已经登录的用户,编辑帖子的功能是可以看到自己的提问,然后进行重新编辑与发布,也可以删除自己的提问。(2)浏览帖子:此功能针对系统的所有用户,游客与用户还有管理员都可以使用。点击之后可以查看详情,然后游客会弹出登录警告而且不能进行评论。(3)发表帖子。登录用户可以发布新的提问。 (4)回复帖子:登录的用户可以在首页右上角的提醒中收到别人的评论和回复,点击进入详情之后可以选择回复帖子 (5)搜索帖子:此功能针对系统的所有用户,游客与用户还有管理员都可以
40、正常使用。3.系统管理员模块图5.4系统管理员模块流程图系统管理员模块流程图如图 5.4所示。模块只对管理员开放、涉及到的功能由管理用户信息、管理所有帖子的功能;如果查看到不符合互联网规定以及没有意义的帖子可以选择删除也删除违规用户,拥有系统的最高权限;6.系统功能的具体实现6.1系统的总体界面本文所设计的基于Spring Boot技术的论坛系统中,系统的总体界面如下图所示。界面整体设计简洁大方,界面设计美观,易用性较高。图6.1 系统总体界面6.2用户第三方登录界面该页面通过发送giehubapi请求,校验账号密码。输入正确,服务器将返回该用户的数据调用callback接口传入系统后台,论坛
41、系统会进行存储已经进行登录,重定向至论坛首页。否则将页面返回未登录的首页页面。用户登录界面如下所示。图6.2 第三方登录界面6.3用户功能用户搜索帖子的功能,如果要实现一个系统的帖子不断迭代更新,让更多的用户不断产出优质的资源,那么这个功能就是必不可少的。可以输入标题的关键字后端进行检索,然后返回到页面进行显示,用户可以直接点击进入详情。图6.1搜索功能图用户点击右上角的提问按钮,进入发帖页面,输入问题标题、具体内容,内容栏是集成了富文本输入组件的,可以支持上传附件(包括文件、视频、音乐)及动态表情,然后选择发布、发布会进行非空校验,发布成功,其他用户可以浏览和评论该帖。图6.2 用户功能界面
42、图6.4是用户的个人提问历史界面,用户点击标题帖子标题之后,可以进入到帖子的详细的内容页面,然后可以选择在里面进行回复适当的内容,(详见图6.5)。追加内容可以是你对这个问题的见解以及后续的一个解决方法,也可以是你关联的新问题,方便可以不用再行发贴。图6.3用户修改问题界面图6.5是帖子的浏览的功能,该功能增加了用户与用户之间互动性。当帖主发布问题之后,所有用户都可以在页面上看到这个帖子。可以直接在详情页中发表自己的看法,方便用户的沟通。图6.4 浏览帖子详情6.4论坛管理员功能管理员具有系统最高权限,可以删除帖子,如果一些帖子是不符合国家有关互联网规定,违反互联网守则的以及没有意义的灌水贴应
43、当给予删除。该功能对于一个论坛来说是至关重要的,如果不加以管控的话,必然会导致系统成为网络上藏污纳垢之地,不利于建设绿色互联网。删除帖子以及删除不良用户可以让更多的用户参与优秀问题的讨论,提升论坛的凝聚力。 7 系统测试7.1 系统测试概述系统测试是一个系统完成阶段的最后一个也是最重要的一个阶段,如果测试不通过的话要检查并修改bug,我在web页面做了功能测试。7.2 系统测试环境与测试方法类别名称系统环境Windows10家庭中文版测试工具Postman测试方法主要采用黑盒测试和白盒测试相辅相成的测试方法7.3 系统测试步骤与结果测试编号测试对象测试步骤预期结构实际结果1用户第三方登录跳出登
44、录页面,点击登录之后登录成功一致2用户第三方登录常态化登录,利用缓存存贮用户的登录信息,点击页面登录直接登录成功一致3用户搜索问题搜索问题标题,查询符合条件的问题一致4用户最新按钮显示最新的问题帖子一致5用户30天最热按钮显示30天内点击量最多的帖子问题一致6用户7天最热显示7天内点击最多的帖子问题一致7用户最热显示点击最多的帖子一致8用户点击帖子,显示详情点击帖子,显示该问题帖的详情一致9用户我的问题点击进入发布页面一致10用户退出登录点击之后退出登录一致11用户通知可以看到回复我的问题的评论一致12用户提问点击跳转到提问页面一致13用户热门标签点击跳转有改标签的帖子概览一致14用户提问页面输入富文本框正常输入一致15用户提问页面输入富文本框每个按钮都正常使用一致16用户提问页面输入添加标签,正常使用一致17用户发布正常发布一致18用户校验非空校验输入框非空一致19用户生命社区点击跳转首页一致20管理员通过页面进行登录登录成功进入首页一致21管