基于SpringBoot美食菜谱分享平台的设计与实现.doc
美食分享平台提供菜谱分享和烹饪建议 #生活乐趣# #生活分享# #品质生活点滴# #美食分享平台#
摘要民以食为天是我国传统文化中的一句古语,人们对食物的重视非比寻常,越来越多爱好厨艺的人选择通过美食菜谱分享平台学习厨艺和菜谱知识。但是我国现有的美食菜谱分享平台普遍存在着很多的纰漏,例如内容质量不稳定、缺乏权威性、评论质量参差不齐、缺少数据统计与可视化功能。本次研发美食菜谱分享平台的目标就是为了解决上述问题,利用Java搭配SpringBoot框架技术构建一个高效稳定的集可视化、菜谱分享审批和评论管理于一体的信息化平台。在功能方面,为美食菜谱分享平台的会员开发会员登录功能、会员注册功能、个人信息管理功能、个人菜谱管理功能、个人收藏管理功能、个人关注管理功能、退出系统功能、系统首页预览功能、美食菜谱专栏功能、美食笔记推荐功能、关注美食作者功能、收藏美食菜谱功能、评论美食菜谱功能。为平台的运营人员开发美食评论管理功能、平台会员管理功能、管理员信息管理功能、美食笔记管理功能、美食类别管理功能等。在技术方面整体采用Java作为底层实现语言,利用Bootstrap和Jquery实现对传统Html页面的提升,增加交互性和响应能力;利用SSM框架和Springboot的集成完成项目服务器端程序和功能的实现。关键词:美食菜谱;可视化;Java;
ABSTRACTFoodisanoldsayinginthetraditionalcultureofourcountry.Peopleattachgreatimportancetofood.Moreandmorepeoplewholovecookingchoosetolearncookingskillsandrecipeknowledgethroughthefoodrecipesharingplatform.However,therearemanyflawsintheexistingfoodrecipesharingplatformsinChina,suchasunstablecontentquality,lackofauthority,unevenqualityofcomments,lackofdatastatisticsandvisualizationfunctions.Thegoalofthisresearchanddevelopmentoffoodrecipesharingplatformistosolvetheaboveproblems,usingJavawithSpringBootframeworktechnologytobuildanefficientandstablesetofvisualization,recipesharingapprovalandcommentmanagementandoneoftheinformationplatform.Intermsoffunctionality,Developmemberloginfunction,memberregistrationfunction,personalinformationmanagementfunction,personalmenumanagementfunction,personalcollectionmanagementfunction,personalattentionmanagementfunction,exitsystemfunction,systemhomepreviewfunction,foodmenucolumnfunction,foodnoterecommendationfunction,focusonfoodauthorfunction,collectionoffoodmenufunction,commentfoodRecipefunction.Developfoodcommentmanagementfunction,platformmembermanagementfunction,administratorinformationmanagementfunction,foodnotemanagementfunction,foodcategorymanagementfunctionandsoonfortheplatform'soperators.Intermsoftechnology,Javaisusedastheunderlyingimplementationlanguage,andBootstrapandJqueryareusedtoimprovethetraditionalHtmlpagetoincreaseinteractivityandresponsiveness.TheintegrationofSSMframeworkandSpringbootisusedtocompletetheimplementationoftheprojectserver-sideprogramsandfunctions.Keywords:Cookbook;Visualization;Java;
目录14901摘要页第一章绪论美食菜谱分享平台的绪论部分解绍研发背景以及美食菜谱分享平台在国内和国外不同国家的目前现状以及优势与劣势,从而确定美食菜谱分享平台的研发意义。最后,介绍美食菜谱分享平台的核心技术。1.1研究背景美食文化是一种广视野、深层次、多角度、高品位的悠久区域文化,是人民在长久的生产和生活实践中,在食源开发、食具研制、食品调理、营养保健和饮食审美等方面创造、积累并影响周边国家和世界的物质财富及精神财富。中国饮食文化源远流长,普遍承认的有八大菜系鲁菜、川菜、粤菜和苏菜,闽菜、浙菜、湘菜、徽菜。我国的菜系,是指在一定区域内,由于气候、地理、历史、物产及饮食风俗的不同,经过漫长历史演变而形成的一整套自成体系的烹饪技艺和风味,并被全国各地所承认的地方菜肴。菜肴在烹饪中有许多流派。清代的时候,中国饮食分为京式、苏式和广式。民国开始,中国各地的文化有了相当大的发展,民国时分为华北、江浙、华南和西南四种流派。后来华北流派分出鲁菜,成为八大菜系之首,江浙菜系分为苏菜、浙菜和徽菜,华南流派分为粤菜、闽菜,西南流派分为川菜和湘菜。后来形成最有影响和代表性的也为社会所公认的有:鲁、川、苏、粤、闽、浙、湘、徽等菜系,即被人们常说的中国“八大菜系”。中国美食文化在世界享有盛誉,随着历史的进步和社会文明的发展,中国的“吃”已经超越了它的字面意义,逐渐成长为人类历史和文明中的一颗璀璨明珠,并有其独特的地位[1]。而美食又是人们每日生活的重要组成部分,随着计算机技术的融入,各类型的美食分享平台跃入大众的视野,在提供分享美食菜谱、检索美食菜谱和学习美食菜谱知识等便民功能的同时,也因为质量与可靠性等问题给人们带来了一些不便。1.1.1国内研究现状近年计算机技术在中国的发展飞快,这也促使原本需要厨师之间手口相传的厨艺被搬到了美食菜谱平台这一更广阔的舞台上[2]。我国的美食菜谱分享平台从性质上可以分成大众类美食菜谱平台、生鲜类美食菜谱平台、社交类美食菜谱平台和专业类美食菜谱平台四种。大众类美食菜谱平台比较著名的包括下厨房、美食天下等,是专于美食菜谱分享的平台。而生鲜类美食菜谱平台更多的属性集中在电商方面,每一道美食菜谱实际上都是为了推销平台的商品。社交类美食菜谱平台的侧重点是用户之间的交互性,目的是通过社交提升用户对美食菜谱平台的黏性。从八大菜系到地方特色、从方便速食到健康餐饮、从经典美味到潮流尝鲜,承载着中国人丰富情感的美食已不再只是满足口腹之欲,更多是慰藉心灵之用。无论是吃播、教学、故事,还是创意料理类的美食短视频,都能让受众在短时间内最直观地感受美食的魅力[3]。与本次开发从本质上同类型的是大众类美食菜谱平台,这些平台存在着许多问题,是本次研究的解决目标。在不限制分享餐饮美食平台发展的情况下,通过鼓励、支持、管理和监督分享餐饮美食平台,为分享餐饮美食平台提供更公平、规范、制度化的发展环境[4],随着以用户为中心的web2.0的发展,特别是大众点评、美团网等美食点评网站的飞速发展,为人们打造了一个良好的发表自己的观点和想法的环境,由此产生了大量的用户对于某一对象的评论[5]。若不解决的话则会为美食菜谱分享平台的用户带来了使用时的不便,容易被内容误导产生食品安全等相关问题,无法管控的评论区也会出现敏感话题等违反社会良俗的问题。缺少数据统计与可视化让美食菜谱分享平台的运营者无法准确掌握用户动态和平台的内容效果,因此急需一款能够解决上述问题的美食菜谱分享平台来实现服务优化[6]。1.1.2国外研究现状在英国、日本和美国等发达国家中,美食菜谱分享平台同样得到了广泛的接受和大力的追捧。Allrecipes、FoodNetwork、Epicurious是美国最著名的美食菜谱分享平台,拥有大量的用户群体和海量的菜谱资源,这些平台除了提供基础的菜谱分享和检索服务外,还提供美食博客、美食食品等方式吸引厨艺达人入驻,值得本次设计所借鉴[7]。CookingLight、SeriousEats、BonAppetit等平台是美国的专业美食菜谱分享平台,为专业厨师提供了社区空间[8]。英国的BBCGoodFood、JamieOliver也同样聚集了大量的美食爱好者,并且衍生出了针对私人定制的美食菜谱定制平台,诸如Veganuary、Gluten-FreeHeaven等[9]。将目光放在同为亚洲国家的日本,Cookpad是最为著名的日本民众美食菜谱分享平台。这个平台还额外拓展了一些关于美食历史和美食文化的模块[10]。纵使各个国家的国情不同,但这些美食菜谱分享平台也存在与我国相似的问题,例如菜谱中的制作方法不够详细,甚至存在错误,为初学者带来不正确的引导;用户交互体验不够良好,界面不够美观等[11]。1.2研究目的和意义开发美食菜谱分享平台的目的和意义在于为用户提供更完美的体验,由于用户拍摄的食材图片场景是复杂多样的,厨房背景、光照条件不同或者是手机滤镜等多个因素的影响,可能会导致食材的颜色等特征与真实存在明显差距[12]。于是特地增加了菜谱的多样性和质量把控,促进美食文化相互之间的交流和学习,营造一个供人们分享美食和菜谱的平台,大家可以在这个网站上看到来自世界各地的特色美食,还能在网站上分享各式各样的美食菜谱以及精美的美食图片[13]。利用严苛的审核机制将存在问题的美食菜谱剔除,保证平台质量。研发评论管控功能,维护美食菜谱分享平台良好的社区氛围,对美食菜谱分享平台中设计敏感话题的评论加以控制[14]。利用可视化与数据统计功能,帮助美食菜谱分享平台的运营者更好地了解用户动向以及美食菜谱的接受程度,方便平台运营者实现对平台决策的制定[15]。1.3相关技术介绍1.3.1核心语言JavaJava是目前使用最为广泛的编程语言之一,其无关性成为了最亮眼的优点。操作系统的变化对于其他编程语言是一道难关,而且极有可能导致程序出错或者无法运行,但是对于Java来说做到了一次写成,处处运行。Java适用于开发大型的、高并发的Web系统,而美食菜谱分享平台的目标群体是五湖四海热爱美食的群众用户,随时可能发生并发的问题,所以利用Java的高并发处理机制能够轻易应对并解决问题。同时由Java所开发出的高性能框架十分丰富,选择Java开发美食菜谱分享平台能够更轻松地接入这些高性能框架,为功能扩展和系统稳定保驾护航[16]。1.3.2核心框架SpringBoot美食菜谱分享平台的开发周期有限,因此需要一款能够提供快速开发的同时还能保证系统性能的高效框架,SpringBoot是不二的选择。因为SpringBoot是一个依靠大量注解实现自动化配置的全新框架。在搭建Spring项目时,我们只需要在其中添加相应的场景依赖,而且不需要额外手动添加配置,这样一来减少了开发人员的工作量,并且顺便提高了工作效率。另外SpringBoot框架内部已经实现了与常用三方库的整合,所以基本上不需要额外生成配置代码和XML配置文件。如果需要自定义配置的话,则可选用Javaconfig替换传统的配置文件,极大提高了管理和查看的方便性。况且SpringBoot本身就是使用Java语言研发的,所以可以和核心开发语言默契协作,并且因为开箱即用的设定,能够快速构建美食菜谱分享平台的Web模块、缓存模块和数据持久层模块。而其自身自动带有Tomcat服务器,为美食菜谱分享平台的环境搭建节省了时间和精力成本[17]。1.3.3SSM框架因为使用了SpringBoot框架,所以在Web模块、缓存模块和数据持久层模块上的选择SSM框架是最为适合的。选择Spring的目的是注重其内存和缓存空间的管控能力,为运营人员和美食爱好者提供充足的数据运营空间;选择SpringMVC是注重其轻量级的框架结构和高效率的用户请求应答能力,能够在短时间为用户请求实现响应,提升用户对美食菜谱分享平台的体验感;选择Mybatis是注重其在数据管控方面的安全可靠性,同时Mybatis也是高效的,能够做到对数据的检索和存储十分迅速,同样能降低服务器响应用户请求的应答时间,带来体验感的提升[18]。1.3.4响应式框架BootstrapBootstrap库里自带许多现成的代码片段,利用Bootstrap的开发者将不必再花大量时间和精力来编码,只需要找到合适正确的代码,插入到适当位置即可。此外Bootstrap提供了很多实用性的JQuery插件,使得开发者能够更方便地实现各种常规特效。目前响应式的页面效果是各类大型网站都在推崇的UI模式,美食菜谱分享平台作为一款需要与时俱进的产品,自然也要实现响应式UI的开发。在众多响应式界面开发框架中Bootstrap以其独到的栅格系统是最为热门的选择,利用栅格系统可以帮助美食菜谱分享平台能够做到自动适应移动端和PC端,这也为使用美食菜谱分享平台的用户提供了良好的体验感[19]。1.4系统解决的主要问题及论文结构1.4.1系统解决的主要问题美食菜谱分享平台主要有两个角色,分别是用户和管理员。解决的主要问题在于实现用户和管理员的功能:用户主要有个人信息管理功能、个人菜谱管理功能、个人美食作者关注功能、美食菜谱预览功能、美食菜谱评论功能。管理员主要有美食评论管理功能、平台会员管理功能、管理员信息管理功能、美食笔记管理功能、美食类别管理功能、统计分析功能[20]。1.4.2论文结构美食菜谱分享平台的论文结构如下:绪论:介绍平台的背景、现状和开发意义;需求分析:介绍可行性与用例分析;系统设计:介绍美食菜谱分享平台的功能和数据库;系统实现:介绍美食菜谱分享平台最为关键的功能如何实现;系统测试:选取具有代表性的功能模块介绍测试用例的编写情况和编写结果。
第二章需求分析本章利用多角度多维度的方式分析美食菜谱分享平台的研发可行性,在确定可以研发后分析参与者角色,并针对不同参与者的需求进行初步设计,绘制用例图和添加用例描述。2.1可行性分析2.1.1美食菜谱分享平台技术可行性美食菜谱分享平台选择了目前开发领域中最成熟最流行的多款技术,集视图层、数据层和控制层最优秀的多款框架于一体,能够保证技术在符合当前时代潮流要求的同时还具备一定的领先性,并且能够随时集成新的框架技术提升美食菜谱分享平台的功能,所以技术可行。2.1.2美食菜谱分享平台操作可行性美食菜谱分享平台在操作角度利用按钮、超链接等方式触发服务,使用者不必掌握过于专业的操作技术,不用为使用系统付出额外的学习成本,并且平台使用流程简洁易上手,所以操作可行。2.1.3美食菜谱分享平台经济可行性美食菜谱分享平台的开发技术和开发软件大部分都是免费的,因此开发成本低;而使用者在使用美食菜谱分享平台的过程中也不需要额外的购买特殊设备,自己拥有的手机、平板或者个人电脑都可以作为使用设备,节省了在设备采购方面的支出,因此经济可行。2.2需求分析2.2.1美食菜谱分享平台参与者需求模型美食菜谱分享平台的参与者包括美食爱好者和平台运营人员两种,美食爱好者负责在平台分享菜谱,收藏菜谱以及关注菜谱制作人,而平台运营者负责管理整个平台的数据,调整菜谱制作人的登录权限等等。针对美食菜谱分享平台参与者的具体说明如表2-1所示。表2-1美食菜谱分享平台参与者说明表序号词汇同义词描述1美食爱好者会员、用户美食爱好者可以利用美食菜谱分享平台分享自己的菜谱、收藏他人菜谱或直接收藏美食作者,并且可以针对菜谱发表自己的评论等2平台运营人员管理员、管理人员平台运营人员可以利用美食菜谱分享平台管理Banner轮播图数据、美食菜谱数据、美食爱好者数据、评论数据等,调整菜谱制作人的的登录权限等,维护美食菜谱分享平台的氛围2.2.2美食菜谱分享平台用例图作为美食菜谱平台的运营人员可以使用美食评论管理功能、平台会员管理功能、管理员信息管理功能、美食笔记管理功能、美食类别管理功能等。美食菜谱分享平台的运营人员用例图如图2-1所示。图2-1美食菜谱分享平台运营人员用例图作为用户可以使用的功能包括美食爱好者登录功能、美食爱好者注册功能、个人信息管理功能、个人菜谱管理功能、个人收藏管理功能、个人关注管理功能、退出系统功能、美食菜谱预览功能、关注美食作者功能、收藏美食菜谱功能、评论美食菜谱功能美食菜谱分享平台的用户用例图如图2-2所示。图2-2美食菜谱分享平台用例图2.2.3美食菜谱分享平台用例描述美食菜谱分享平台登录模块用例描述如表2-2所示。表2-2美食菜谱分享平台登录模块描述表用例条目描述用例名称登录模块主要参与者平台运营人员/美食爱好者其他参与者此模块未注册的游客需要先注册成为美食爱好者才能使用描述美食菜谱分享平台为美食爱好者和平台运营人员提供了不同的登录页面便于进入各自的操作管理中心,页面不同但是登录模块的处理修成是相同的前置条件平台运营人员/美食爱好者拥有美食菜谱分享平台的账号和密码后置条件平台运营人员/美食爱好者输入了正确的账号和密码基本流程1.平台运营人员/美食爱好者跳转到美食菜谱分享平台提供的登录页面2.平台运营人员/美食爱好者录入独属于自己的账号和密码3.平台运营人员/美食爱好者提交对于登录的客户端请求4.美食菜谱分享平台根据平台运营人员/美食爱好者输入的账号和密码给出登录结果结束平台运营人员/美食爱好者登录成功或者登录失败或者放弃登录表2-2(续)用例条目描述实现约束和说明1.平台运营人员/美食爱好者必须完整输入自己的账号密码,其中任何一个缺失都无法进入美食菜谱分享平台2.只有当平台运营人员/美食爱好者的账号和密码全部正确时才能登录成功,任何一个错误都将无法登录到美食菜谱分享平台其他事件流平台运营人员登录成功后跳转到管理中心,美食爱好者登录成功后跳转到个人中心美食菜谱分享平台注册模块用例描述如表2-3所示。表2-3美食菜谱分享平台注册模块描述表用例条目描述用例名称注册模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了注册页面便于获取分享美食菜谱的权限,美食爱好者需要严格按照页面提示输入个人信息前置条件美食爱好者未曾注册过美食菜谱分享平台后置条件美食爱好者输入了符合美食菜谱分享平台注册要求的个人信息基本流程1.美食爱好者跳转到美食菜谱分享平台提供的注册页面2.美食爱好者按照美食菜谱分享平台的数据规范要求录入独属于自己的个人信息3.美食爱好者提交对于注册功能的客户端请求4.美食菜谱分享平台根据美食爱好者输入的信息给出注册结果结束美食爱好者注册成功或者注册失败或者放弃注册实现约束和说明1.美食爱好者必须完整输入自己的完整的个人注册信息,其中任何一个信息缺失都会导致无法注册成功且不能获取美食菜谱分享平台的使用权限2.只有当美食爱好者的个人信息全部符合美食菜谱分享平台的要求时才能注册成功,任何一个错误都将无法注册美食菜谱分享平台其他事件流美食爱好者注册成功后跳转到登录页面美食菜谱分享平台发布美食菜谱模块用例描述如表2-4所示。表2-4美食菜谱分享平台发布美食菜谱模块描述表用例条目描述用例名称发布美食菜谱模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了发布美食菜谱页面便于美食爱好者分享个人的美食菜谱,美食爱好者需要严格按照页面提示输入美食菜谱信息前置条件美食爱好者已经获取美食菜谱分享平台的使用权限表2-4(续)用例条目描述后置条件美食爱好者输入了个人正确的账号密码登录进入了美食菜谱分享平台基本流程1.美食爱好者跳转到美食菜谱分享平台提供的美食菜谱发布页面2.美食爱好者按照美食菜谱分享平台的数据规范要求录入自己的个人的美食菜谱信息,并上传图片、视频和电子资料3.美食爱好者提交对于发布美食菜谱的客户端请求4.美食菜谱分享平台根据美食爱好者输入的美食菜谱信息给出发布结果并跳转到个人美食菜谱管理界面结束美食爱好者发布成功或者发布失败或者放弃发布实现约束和说明1.美食爱好者必须完整输入自己的菜谱信息,其中任何一个缺失都无法注册成功发布美食菜谱信息,包括视频、图片和电子资料2.只有当美食爱好者的菜谱信息全部符合美食菜谱分享平台的要求时才能发布成功,任何一个错误都将无法发布美食菜谱信息其他事件流美食爱好者成功发布菜谱后跳转到个人菜谱管理页面美食菜谱分享平台编辑美食菜谱模块用例描述如表2-5所示。表2-5美食菜谱分享平台编辑美食菜谱模块描述表用例条目描述用例名称编辑美食菜谱模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了编辑美食菜谱页面便于美食爱好者改动个人的美食菜谱,美食爱好者需要严格按照页面提示输入美食菜谱信息前置条件美食爱好者已经获取美食菜谱分享平台的使用权限后置条件美食爱好者输入了个人正确的账号密码登录进入了美食菜谱分享平台基本流程1.美食爱好者跳转到美食菜谱分享平台提供的美食菜谱编辑页面2.美食爱好者按照美食菜谱分享平台的数据规范要求录入自己的个人的美食菜谱信息,并上传图片、视频和电子资料3.美食爱好者提交对于编辑美食菜谱的客户端请求4.美食菜谱分享平台根据美食爱好者输入的美食菜谱信息给出编辑结果并跳转到个人美食菜谱管理界面结束美食爱好者编辑成功或者编辑失败或者放弃编辑实现约束和说明1.美食爱好者必须完整输入自己的菜谱信息,其中任何一个缺失都无法注册成功编辑美食菜谱信息,包括视频、图片和电子资料2.只有当美食爱好者的菜谱信息全部符合美食菜谱分享平台的要求时才能编辑成功,任何一个错误都将无法编辑美食菜谱信息其他事件流美食爱好者成功编辑菜谱后跳转到个人菜谱管理页面美食菜谱分享平台收藏美食菜谱模块用例描述如表2-6所示。表2-6美食菜谱分享平台收藏美食菜谱模块描述表用例条目描述用例名称收藏美食菜谱模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了收藏美食菜谱功能便于美食爱好者快速找到自己感兴趣的美食菜谱,美食爱好者需要确保自己是已登录的状态才能收藏美食菜谱前置条件美食爱好者已经获取美食菜谱分享平台的使用权限后置条件美食爱好者输入了个人正确的账号密码登录进入了美食菜谱分享平台基本流程1.美食爱好者跳转到美食菜谱分享平台提供的美食菜谱详情页面2.美食爱好者点击菜谱上方的收藏美食菜谱按钮发起对美食菜谱的收藏请求3.美食菜谱分享平台检索美食爱好者的收藏记录4.美食菜谱分享平台根据美食爱好者的收藏情况给出收藏结果结束美食爱好者接收到平台给出的收藏结果或者放弃收藏实现约束和说明1.美食爱好者针对同一菜谱只会生成一条收藏数据2.美食爱好者可以删除个人的美食菜谱收藏数据其他事件流美食爱好者点击收藏按钮后会发送Ajax异步收藏请求美食菜谱分享平台收藏美食菜谱作者模块用例描述如表2-7所示。表2-7美食菜谱分享平台收藏美食菜谱作者模块描述表用例条目描述用例名称收藏美食菜谱作者模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了收藏美食菜谱作者功能便于美食爱好者快速找到自己感兴趣的美食菜谱,美食爱好者需要确保自己是已登录的状态才能收藏美食菜谱作者前置条件美食爱好者已经获取美食菜谱分享平台的使用权限后置条件美食爱好者输入了个人正确的账号密码登录进入了美食菜谱分享平台基本流程1.美食爱好者跳转到美食菜谱分享平台提供的美食菜谱详情页面2.美食爱好者点击菜谱上方的收藏美食菜谱作者按钮发起对美食菜谱作者的收藏请求3.美食菜谱分享平台检索美食爱好者的作者收藏记录4.美食菜谱分享平台根据美食爱好者的作者收藏情况给出收藏结果结束美食爱好者接收到平台给出的作者收藏结果或者放弃收藏作者实现约束和说明1.美食爱好者针对同一作者只会生成一条收藏数据2.美食爱好者可以删除个人的美食菜谱作者收藏数据其他事件流美食爱好者点击作者收藏按钮后会发送Ajax异步收藏请求美食菜谱分享平台美食评论模块用例描述如表2-8所示。表2-8美食菜谱分享平台美食评论模块描述表用例条目描述用例名称美食评论模块主要参与者美食爱好者其他参与者此模块平台运营人员无法使用描述美食菜谱分享平台为美食爱好者提供了评论美食菜谱的功能便于美食爱好者分享自己对于菜谱的简介,美食爱好者需要确保自己是已登录的状态才能发表针对菜谱的评论前置条件美食爱好者已经获取美食菜谱分享平台的使用权限后置条件美食爱好者输入了个人正确的账号密码登录进入了美食菜谱分享平台基本流程1.美食爱好者跳转到美食菜谱分享平台提供的美食菜谱详情页面2.美食爱好者点击详情页面下方的评论输入框输入自己的评论内容并针对美食菜谱打分3.美食菜谱分享平台接收美食爱好者的评论数据并存储4.美食菜谱分享平台给出美食爱好者评论结果结束美食爱好者接收到平台给出的美食评论结果或者放弃对菜谱发布个人的评论信息实现约束和说明1.美食爱好者针对同一菜谱可以发表多次评论并打分,每次打分都将影响美食菜谱的平均得分2.美食爱好者无法删除个人针对美食菜谱发表过的评论数据其他事件流美食爱好者发表评论成功后,该评论会立即显示在美食菜谱之中2.3本章小结本章从三个角度对该系统的可行性进行了详细的描述和分析,分别是技术角度、操作角度和经济角度。并且通过引用图和表格的方式对系统的功能需求进行解释说明。
第三章系统设计本章节负责将美食菜谱分享平台关于功能和数据库两个方面的设计加以说明,在功能介绍上包括功能总体说明、功能详细说明和功能模块图。在数据库介绍上包括表结构、实体对应情况、实体属性和ER图。3.1功能设计3.1.1美食菜谱分享平台总体功能设计基于SpringBoot的美食菜谱分享平台所包含的主要功能由会员登录功能、会员注册功能、个人信息管理功能、个人菜谱管理功能、个人收藏管理功能、个人关注管理功能、退出系统功能、系统首页预览功能、美食菜谱专栏功能、美食笔记推荐功能、关注美食作者功能、收藏美食菜谱功能、评论美食菜谱功能、美食评论管理功能、平台会员管理功能、管理员信息管理功能、美食笔记管理功能、美食类别管理功能等,将美食菜谱分享平台的功能整理汇总画出美食菜谱分享平台的功能模块图,如图3-1所示。图3-1美食菜谱分享平台功能模块图3.1.2美食菜谱分享平台各功能模块设计美食菜谱分享平台的前端模块设计如下:(1)个人信息管理模块:此模块包括两个子功能,分别是基本信息管理功能和密码修改功能。用户可以通过基本信息管理功能对自己的个人信息进行查看并编辑。用户可以通过密码修改功能完成对个人密码的修改,修改后立即生效。(2)个人菜谱管理模块:用户可以通过个人菜谱管理模块发布个人菜谱数据,发布菜谱时可以选择上传图片以提供更好的用户体验。同时用户还可以对个人菜谱数据进行维护。(3)美食作者关注模块:此模块包含关注美食作者和个人关注管理两个子功能。用户可以通过关注美食作者功能将美食作者信息添加至自己的关注列表,并可以通过关注的作者直接查看其发布的每一篇美食菜谱信息。用户可以通过个人关注管理功能移除对于美食作者的关注,关注被移除后,会影响美食菜谱作者的粉丝数量。(4)美食菜谱预览模块:对于美食菜谱信息,系统首先呈现美食菜谱的热度、菜谱配图、作者、标题和发布时间作为简要信息展示给用户。如果用户对菜谱感兴趣,可以通过点击标题的方式查看美食菜谱的详情信息,此处会显示美食菜谱的详细制作过程。(5)美食菜谱评论模块:用户可以通过美食菜谱评论模块对美食菜谱发表自己的评价,与其他用户产生交互。对于美食菜谱的评价数据独立存储在美食菜谱评价表中,以美食菜谱的id作为关联,同时美食菜谱的评论数据会影响美食菜谱的热度。(6)收藏美食菜谱模块:此模块包含收藏美食功能和个人收藏管理两个子功能。用户可以通过收藏美食菜谱功能将菜谱信息添加至自己的收藏列表。此操作用户不会成为美食作者的粉丝,但可以通过收藏列表直接访问该篇美食菜谱的详情信息。用户可以通过个人收藏管理功能移除对于美食菜谱的收藏,收藏被移除后,会更改美食菜谱的收藏数量,从而影响美食菜谱的热度。美食菜谱分享平台的后端模块设计如下:(1)美食评论管理模块:管理人员可以通过美食评论管理模块查看用户发布的关于美食的评论信息,此模块设置全部评论查看和根据美食菜谱ID查看两种查看方式。若管理人员选择根据美食菜谱ID查看,则只会显示单一菜谱的评论信息。管理人员可以对内容不妥的评论进行移除操作,从而维护评论区的良好风气。(2)平台会员管理模块:管理人员可以通过平台会员管理功能对已注册系统的会员信息进行维护,包括查看会员信息,编辑会员信息,和删除会员信息。同时管理人员也具备录入会员的权限,但此权限仅在会员不方便进行注册时由管理人员代为录入。(3)管理员信息管理模块:管理员可以为系统录入新的管理员信息,从而扩大管理队伍,为新管理员提供账号。新管理员账号在录入系统后即时生效,可以通过账号密码登入系统展开管理工作。同时管理员可以通过此功能维护个人信息,从而实现对于个人那信息查看与调整。(4)美食笔记管理模块:管理人员可以通过此功能查看用户发布的美食笔记信息。对于存在问题或质量较差的美食菜谱,管理人员可以通过调整权限的方式禁止此篇美食笔记显示在用户视野中,待发布者调整完笔记内容后可以对其重新上架,另外也可以将美食菜谱直接移出系统。(5)美食类别管理模块:管理员可以通过此模块新增美食类别信息,方便美食作者能够有更多的菜谱分类可选,以增加系统美食菜谱分类的多样化。同时还可以对已有的美食分类数据进行维护。(6)统计分析模块:此模块包含美食类别热度分析和最受欢迎的美食菜谱分析两个子功能。系统会对各类别的美食菜谱数据进行统计,通过计算美食菜谱的评论量和收藏量计算每篇美食菜谱的热度情况,结合同类型美食菜谱的数量统计每类别美食菜谱的热度数据,并将统计结果通过饼图和柱状图报表的可视化方式呈现给管理员用户以方便其及时掌握用户对美食的偏好,通过可视化效报表的方式能够使得数据更加直观。3.2数据库设计美食菜谱分享平台的数据库包含了多张数据库表,分别是tb_banners轮播图表、tb_categorys美食分类表、tb_admins平台运营人员表、tb_knowledges美食菜谱表、tb_likes美食作者收藏表、tb_marks美食菜谱收藏表、tb_replys美食评论表、tb_scores美食打分表、tb_users美食爱好者表。这九张表对应的九个实体类如下:Banner轮播图类、Category美食分类、Admin平台运营人员类、Knowledge美食菜谱类、Like美食作者收藏类、Mark美食菜谱收藏类、Reply美食评论类、Score美食大分类和User美食爱好者类。根据美食菜谱分享平台的实体关系选择其中存在关联部分实体绘制美食菜谱分享平台ER图如数据库概念设计所示。3.2.1美食菜谱分享平台数据库概念设计美食菜谱分享平台ER图具体如3-2所示。图3-2美食菜谱分享平台ER图(1)运营人员实体属性如图3-3所示。图3-3运营人员实体属性图(2)美食类别实体属性如图3-4所示。图3-4美食类别实体属性图(3)美食菜谱实体属性如图3-5所示。图3-5美食菜谱实体属性图(4)美食作者收藏实体属性图如图3-6所示。图3-6美食作者收藏实体属性图(5)美食爱好者实体属性图如图3-7所示。图3-7美食爱好者实体属性图(6)美食菜谱收藏实体属性如图3-8所示。图3-8美食菜谱收藏实体属性图(7)美食菜谱评论属性图如图3-9所示。图3-9美食菜谱评论实体属性图(8)分数实体属性如图3-10所示。图3-10分数实体属性图3.2.2美食菜谱分享平台数据库详细设计(1)tb_knowledges表结构如表3-1所示。表3-1tb_knowledges美食菜谱表列名数据类型长度是否主键说明idint11是主键titleint11否美食菜谱标题keywordsint11否美食菜谱关键字contentvarchar255否美食菜谱内容imagevarchar255否美食菜谱图片videovarchar255否美食菜谱视频filevarchar255否美食菜谱电子资料uidint11否美食菜谱作者主键unamevarchar255否美食菜谱作者名称createtimevarchar255否美食菜谱发布时间statusvarchar255否美食菜谱状态sidint11否美食类别主键markcountvarchar255否美食菜谱收藏数量replycountvarchar255否美食菜谱回复数量usubjectvarchar255否美食菜谱分类aisubjectvarchar255否系统推荐分类scoreint11否美食菜谱得分(2)tb_users表结构如表3-2所示。表3-2tb_users美食爱好者表列名数据类型长度是否主键说明idint11是主键nicknamevarchar255否美食爱好者姓名telvarchar255否美食爱好者账号passwordvarchar255否美食爱好者密码ageint11否美食爱好者年龄gendervarchar255否美食爱好者性别powervarchar255否美食爱好者权限statusvarchar255否美食爱好者状态departmentvarchar255否美食爱好者来源(3)tb_replys表结构如表3-3所示。表3-3tb_replys美食菜谱评论表列名数据类型长度是否主键说明idint11是主键kidint11否美食菜谱主键ktitlevarchar1000否美食菜谱标题
表3-3(续)列名数据类型长度是否主键说明uidint11否美食菜谱作者主键unamevarchar255否美食菜谱作者姓名rtimevarchar255否美食菜谱评论时间contentvarchar255否美食菜谱评论内容scoreint11否美食菜谱评论分数(4)tb_categorys表结构如表3-4所示。表3-4tb_categorys美食类型表列名数据类型长度是否主键说明idint11是主键namevarchar255否美食类别名称imagevarchar255否美食类别图示(5)tb_marks表结构如表3-5所示。表3-5tb_marks美食菜谱收藏表列名数据类型长度是否主键说明idint11是主键uidint11否美食爱好者主键kidint11否美食菜谱主键ktitlevarchar255否美食菜谱标题(6)tb_likes表结构如表3-6所示。表3-6tb_likes美食作者收藏表列名数据类型长度是否主键说明idint11是主键uidint11否美食爱好者主键kidint11否美食作者主键ktitlevarchar255否美食作者名称(7)tb_admins表结构如表3-7所示。表3-7tb_admins运营人员表列名数据类型长度是否主键说明idint11是主键nicknamevarchar255否运营人员姓名telvarchar255否运营人员账号passwordvarchar255否运营人员密码ageint11否运营人员年龄gendervarchar255否运营人员性别powervarchar255否运营人员权限statusvarchar255否运营人员状态表3-7(续)列名数据类型长度是否主键说明departmentvarchar255否运营人员部门(8)tb_scores表结构如表3-8所示。表3-8tb_scores美食菜谱得分表列名数据类型长度是否主键说明idint11是主键uidint11否美食爱好者主键kidint11否美食菜谱主键socreint11否美食菜谱得分3.3本章小结本章通过系统的总体结构、系统的功能模块设计和系统的数据库设计来反映了美食菜谱分享平台的功能需求。前端使用了Bootstrap实现了响应式的UI界面开发,后端使用了SpringBoot框架来搭建,数据库使用了MySQL来存储其中的数据。
第四章系统实现美食菜谱分享平台的系统实现部分主要围绕着重点功能展开,包括美食菜谱发布模块、系统信息管理模块、美食爱好者管理模块、美食类目管理模块和美食菜谱收藏模块。4.1美食菜谱发布模块美食菜谱发布模块是独属于美食爱好者的功能模块,当美食爱好者登录系统后可以利用导航栏提供的发布菜谱按钮进入到菜谱发布页面,此页面要求美食爱好者选择美食分类、上传美食制作视频、美食图片和美食菜谱的电子说明资料,通过详细的教程帮助其他人来完成美食的制作。当美食爱好者点击发布按钮后,会自动校验数据的完整性,当数据完整时可以提交发布请求,初始状态默认为通过状态,美食爱好者可以对美食菜谱执行编辑和删除操作,而运营人员可以对美食菜谱执行下架和上架操作,以美食菜谱的质量作为衡量标准。美食菜谱发布模块实现效果如图4-1所示。图4-1美食菜谱发布模块效果图美食菜谱发布模块流程图如4-2所示。图4-2美食菜谱发布模块流程图美食菜谱发布模块时序图如图4-3所示。图4-3美食菜谱发布模块时序图4.2美食菜谱收藏模块美食菜谱数据的收藏功能属于美食爱好者,针对同一美食菜谱的数据,同一时间只能收藏一次。美食爱好者可以进入美食菜谱的详细信息,通过点击上方的收藏按钮发起对于美食菜谱数据的收藏请求,服务器端会进行对于收藏请求的验证,判断没事爱后者是否曾经收藏过该数据,如果收藏过则不会重复收藏,如果未收藏过该数据则生成一条收藏数据,此后美食爱好者访问该美食菜谱详情页时,显示的按钮不再是收藏按钮,而是取消收藏按钮。美食菜谱收藏模块效果如图4-4所示。图4-4美食菜谱收藏模块效果图美食菜谱收藏模块流程如图4-5所示。图4-5美食菜谱收藏模块流程图美食菜谱收藏模块时序图如图4-6所示.图4-6美食菜谱收藏模块时序图4.3美食爱好者管理模块美食菜谱分享平台的运营人员可以借助平台提供的管理中心调整数据库中的美食爱好者数据,包括对新增美食爱好者、编辑美食爱好者、删除美食爱好者和检索全部美食爱好者。管理美食爱好者数据流程如图4-7所示。图4-7美食爱好者管理模块流程图当运营人员进入管理中心后可以通过左侧的导航访问全部的美食爱好者数据,点击新增美食爱好者按钮会进入到美食爱好者新增页面,需要录入详细的美食爱好者数据,并点击提交按钮。此时美食菜谱分享平台会利用页面校验美食爱好者数据的完整程度,如果存在漏填的属性则给出提示,不存在则提交到Controller完成对美食爱好者数据的Insert操作。针对美食爱好者的编辑操作和新增操作逻辑相同,仅在最后执行数据库语句时执行update操作。而删除美食爱好者数据需要利用ID美食爱好者的ID主键,直接执行delete操作。美食爱好者管理模块效果如图4-8所示。图4-8美食爱好者管理模块效果图美食爱好者管理模块时序图如图4-9所示。图4-9美食爱好者管理模块效果图4.4美食类别管理模块美食菜谱分享平台的运营人员可以借助平台提供的管理中心调整数据库中的美食类别数据,包括对新增美食类别、编辑美食类别、删除美食类别和检索全部美食类别。美食菜谱分享平台会利用页面校验美食类别数据的完整程度,如果存在漏填的属性则给出提示,不存在则提交到Controller完成对美食类别数据的Insert操作。针对美食类别的编辑操作和新增操作逻辑相同,仅在最后执行数据库语句时执行update操作。而删除美食类别数据需要利用ID美食类别的ID主键,直接执行delete操作。管理美食类别数据流程如图4-10所示。图4-10美食类别管理模块流程美食类别管理模块效果如图4-11所示.图4-11美食类别管理模块效果图美食类别管理模块时序图如图4-12所示。图4-12美食类别管理模块时序图4.5系统信息管理模块美食菜谱分享平台的运营人员可以借助平台提供的管理中心调整数据库中的Banner图数据,包括对新增Banner图、编辑Banner图、删除Banner图和检索全部Banner图。管理Banner图数据流程如图4-13所示。图4-13Banner图管理模块流程图Banner图管理模块效果如图4-14所示。图4-14Banner图管理模块效果图Banner图管理模块时序图如图4-15所示。图4-15Banner图管理模块时序图4.6本章小结本章的主要内容是对美食菜谱分享平台的核心功能进行了阐述。功能模块效果图展示了美食菜谱分享平台的正常运行的界面,流程图和时序图实现了对系统的信息的操作。
第五章系统测试5.1系统测试的方法系统测试是对整个系统的测试,是将硬件、软件和操作人员看成一个整体,检验其中是否存在不符合系统说明规范的部分。这种测试可以发现系统分析和设计中的错误。常见的系统测试方法有黑盒测试和白盒测试等等,可以根据具体的系统来选择与之对应的系统测试方法。5.2系统功能的测试5.2.1美食菜谱发布模块测试用例美食菜谱发布模块设计的数据较多,包括基本属性以及文件类型的美食图片、美食菜谱视频和美食菜谱电子资料,这些数据都是美食菜谱的核心组成,必须保证录入时数据的完整性,设计的美食菜谱发布功能的用例如表5-1所示。目的:检查菜谱是否能成功发布。前提:美食爱好者已完成登录。表5-1美食菜谱发布模块测试用例表序号用例描述测试步骤输入数据预期结果实际结果测试结果1发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入菜谱发布全部需要的内容发布成功发布成功测试无误2发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入:空,酸甜可口,具体内容,美食图片,美食菜谱视频教程,美食菜谱电子资料美食菜谱数据录入失败,页面提示必须输入标题发布失败测试无误3发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入:一品红烧肉,空,具体内容,美食图片,美食菜谱视频教程,美食菜谱电子资料美食菜谱数据录入失败,页面提示必须输入关键词发布失败测试无误
表5-1(续)序号用例描述测试步骤输入数据预期结果实际结果测试结果4发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入:一品红烧肉,酸甜可口,空,美食图片,美食菜谱视频教程,美食菜谱电子资料美食菜谱数据录入失败,页面提示必须输入具体内容发布失败测试无误5发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入:一品红烧肉,酸甜可口,具体内容,空,美食菜谱视频教程,美食菜谱电子资料美食菜谱数据录入失败,页面提示必须上传图片发布失败测试无误6发布菜谱测试美食爱好者进入美食菜谱发布页面,输入菜谱发布所需要的内容并点击发布输入:一品红烧肉,酸甜可口,具体内容,美食图片,美食菜谱视频教程,空美食菜谱数据录入失败,页面提示必须上传电子资料发布失败测试无误5.2.2美食爱好者管理模块测试用例美食爱好者的数据由运营人员管理,在调整时需要确保数据的完整性和正确性,对不完整的美食爱好者的信息理应能给出错误提示。美食爱好者管理功能的测试用例如表5-2所示。目的:检查管理员是否能管理美食爱好者的数据,对不完整的美食爱好者的信息能否给出错误提示。前提:管理员已登录,进入到美食爱好者管理界面。表5-2美食爱好者管理测试用例表序号用例描述测试步骤输入数据预期结果实际结果测试结果1调整数据测试管理员进入调整美食爱好者数据页面输入美食爱好者数据:徐涤宇111111,21,男调整成功调整成功测试无误2调整数据测试管理员进入调整美食爱好者数据页面输入美食爱好者数据:空111111,21,男提示必须输入姓名调整失败测试无误表5-2(续)序号用例描述测试步骤输入数据预期结果实际结果测试结果3调整数据测试管理员进入调整美食爱好者数据页面输入美食爱好者数据:徐涤宇,空,111111,21,男提示必须输入账号调整失败测试无误4调整数据测试管理员进入调整美食爱好者数据页面输入美食爱好者数据:徐涤宇空,21,男提示必须输入密码调整失败测试无误5.2.3美食类别管理模块测试用例美食类别数据由运营人员管理,在调整时需要确保数据的完整性和正确性,对不完整的美食类别信息理应能给出错误提示,测试用例如表5-3所示。目的:检查管理员是否能调整美食类别的数据,对不完整的美食类别的信息能否给出错误提示。前提:管理员已登录,进入到美食类别管理页面。表5-3美食类别管理测试用例表号用例描述测试步骤输入数据预期结果实际结果测试结果1调整美食类别测试管理员进入调整美食类别数据页面输入美食类别数据:鲁菜,上传图片调整成功调整成功测试无误2调整美食类别测试管理员进入调整美食类别数据页面输入美食类别数据:空,上传图片提示必须输入美食类别名称调整失败测试无误3调整美食类别测试管理员进入调整美食类别数据页面输入美食类别数据:鲁菜,空提示必须上传美食图片调整失败测试无误5.3本章小结本章对美食菜谱分享平台的核心功能进行了测试,通过使用大量数据和黑盒白盒测试方法确保系统不仅可以正常运行,同时又能满足用户的各
网址:基于SpringBoot美食菜谱分享平台的设计与实现.doc https://klqsh.com/news/view/113715
相关内容
一个基于SpringBoot和AngularJS的家庭理财系统设计与实现【美食】美食大全,美食菜谱,美食分享
38道家常美食食谱分享:从水煮肉片到健康蒸菜
中华小当家菜谱大全,从经典到创新的美食创作
九年级美术上册 设计与生活 第5课《插花艺术》教案2 赣美版.doc
九年级美术上册设计与生活第5课《插花艺术》教案2赣美版.doc
一起分享美味吧!从美食共享谈家庭与友谊的温暖
毕业设计(论文)
一人食的简单快捷指南|超实用菜谱
基于心流理论的骨折复健类APP交互设计分析