摘 要
本文旨在探讨基于Spring Boot框架的菜谱个性化推荐系统的设计与实现。该系统利用先进的个性化推荐算法,结合用户的历史行为和偏好,为普通用户提供精准、个性化的菜谱推荐服务。同时,系统为管理员提供了全面、高效的后台管理功能,确保系统的稳定运行和数据的安全性。
对于普通用户而言,系统提供了注册、登录、浏览首页、查看美食资讯、分享和浏览菜谱、获取个性化食谱匹配等功能。用户可轻松浏览和发现适合自己的菜谱,与其他用户互动交流,并管理自己的账户和个人中心。
管理员方面,系统提供了全面的后台管理功能,包括用户管理、菜品分享审核、菜系分类维护、食材信息管理、菜谱信息编辑审核、食谱匹配规则设置、匹配信息监控分析、系统管理和资源管理等。管理员可通过直观的管理界面全面监控和调整系统,以满足不同用户的需求,确保系统的稳定运行和数据安全。
本文详细介绍了系统的架构设计、功能实现以及所采用的关键技术。通过采用Spring Boot框架,结合个性化推荐算法,系统实现了高效稳定的运行,为用户提供了便捷、个性化的菜谱推荐体验。同时,强大的后台管理功能也为管理员提供了高效的系统管理工具,进一步提升了系统的可用性和可维护性。这一系统的设计与实现对于推动菜谱推荐领域的智能化发展具有重要意义。
关键词:Spring Boot;菜谱个性化推荐系统;系统设计与实现
Abstract
This article aims to explore the design and implementation of a personalized recipe recommendation system based on the Spring Boot framework. This system utilizes advanced personalized recommendation algorithms, combined with the user's historical behavior and preferences, to provide accurate and personalized recipe recommendation services for ordinary users. At the same time, the system provides administrators with comprehensive and efficient backend management functions, ensuring the stable operation of the system and the security of data.
For ordinary users, the system provides functions such as registration, login, browsing the homepage, viewing food information, sharing and browsing recipes, and obtaining personalized recipe matching. Users can easily browse and discover recipes that suit them, interact and communicate with other users, and manage their own accounts and personal center.
In terms of administrators, the system provides comprehensive backend management functions, including user management, dish sharing and review, dish classification maintenance, ingredient information management, recipe information editing and review, recipe matching rule setting, matching information monitoring and analysis, system management and resource management, etc. Administrators can comprehensively monitor and adjust the system through an intuitive management interface to meet the needs of different users, ensuring the stable operation of the system and data security.
This article provides a detailed introduction to the system's architecture design, functional implementation, and key technologies adopted. By adopting the Spring Boot framework and combining personalized recommendation algorithms, the system has achieved efficient and stable operation, providing users with a convenient and personalized recipe recommendation experience. At the same time, the powerful backend management function also provides administrators with efficient system management tools, further improving the availability and maintainability of the system. The design and implementation of this system is of great significance for promoting the intelligent development of recipe recommendation.
Keywords: Spring Boot; Personalized recipe recommendation system; System Design and Implementation
目录
随着信息技术的迅速发展和人们生活水平的提高,传统的菜谱选择方式已难以满足人们对美食日益增长的需求。人们在选择菜谱时,往往需要考虑口味偏好、营养需求、食材限制等多种因素,而传统的菜谱推荐方式往往缺乏个性化和精准性,无法满足用户的个性化需求。因此,开发一款能够根据用户口味偏好、历史行为等因素进行个性化推荐的菜谱系统,具有重要的现实意义和应用价值。
基于Spring Boot的菜谱个性化推荐系统的设计与实现,正是为了解决这一问题而展开的研究。该系统利用Spring Boot框架的高效、稳定特性,结合先进的个性化推荐算法,旨在为用户提供精准、个性化的菜谱推荐服务。通过该系统,用户可以轻松浏览和发现符合自己口味的菜谱,提高烹饪效率和口感体验。同时,该系统还提供了丰富的用户交互功能和强大的后台管理功能,使得用户和管理员都能够获得更加便捷、高效的使用体验。
此外,该系统的研究还具有推动餐饮行业数字化转型的重要意义。通过将传统的菜谱推荐方式与现代信息技术相结合,该系统能够实现菜谱信息的数字化管理,提高餐饮行业的工作效率和服务质量。同时,该系统还能够推动餐饮行业的创新发展,为餐饮企业提供更加精准、个性化的市场营销策略,助力企业赢得更多的消费者和市场份额。
综上所述,基于Spring Boot的菜谱个性化推荐系统的设计与实现具有重要的研究背景和意义。该系统不仅能够满足用户对美食的个性化需求,提高烹饪效率和口感体验,还能够推动餐饮行业的数字化转型和创新发展,具有重要的现实意义和应用价值。
-
- 国内外研究现状
近年来,随着国内互联网技术的快速发展和人们对美食需求的日益增长,菜谱个性化推荐系统在国内得到了广泛的关注和研究。许多研究者和企业开始尝试利用先进的算法和技术,开发符合国内用户需求的菜谱推荐系统。
基于Spring Boot的菜谱个性化推荐系统在国内的研究中,主要关注如何利用用户的历史行为、口味偏好等信息,为用户提供更加精准、个性化的菜谱推荐。一些研究者采用了协同过滤、内容推荐等算法,结合用户的行为数据和菜谱属性,进行推荐。同时,随着机器学习和数据挖掘技术的发展,一些研究也开始尝试将这些技术应用于菜谱推荐系统中,以提高推荐的准确性和效率。
然而,国内的研究和应用还存在一些问题,如数据稀疏性、冷启动问题等。此外,如何结合国内用户的特殊需求和口味偏好,进行更加精准的推荐,也是当前研究的热点和难点。
国外研究现状:
在国外,菜谱个性化推荐系统的研究和应用也相对成熟。许多知名的餐饮企业和科技公司都在积极投入研发,推出了各具特色的菜谱推荐系统。
这些系统通常采用了先进的算法和技术,如深度学习、自然语言处理等,对用户的行为和口味进行深入分析和挖掘,为用户提供更加精准、个性化的推荐。同时,一些系统还结合了社交网络和用户评价等信息,为用户提供更加全面、可靠的推荐。
总的来说,国外在菜谱个性化推荐系统的研究和应用上,更加注重技术的创新和用户体验的优化。这为国内的研究者提供了宝贵的经验和借鉴。
综上所述,基于Spring Boot的菜谱个性化推荐系统的设计与实现,在国内外都具有一定的研究价值和应用前景。通过不断的技术创新和优化,相信未来该系统将为用户带来更加便捷、高效的菜谱推荐体验。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景和意义,系统开发的国内外研究现状和本文的组成结构。
第二章:开发工具及相关技术介绍。主要介绍系统开发所采用的工具和技术。
第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第七章:总结与展望。
MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配[3]。
MySQL作为一个受到广泛认可的开放式DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了众多AP中的首选。此外,MySQL还具有良好的跨平台性,让软件开发人员对其有着极高的评价。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款极其实用的数据库管理工具[4]。
MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。
MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。
MySQL具有多种功能[5],它能够支持多种平台的开发,并且支持多种编程语言[6],使得用户能够轻松访问和使用MySQL数据库。
Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸[7],但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。
Tomcat最初由戴维森公司开发,但随着时间的推移,它逐渐成长为一个开源的服务器。后来,它被sun公司转移到了Apache软件基金会。最近,tomcat服务器经过了大量的重新设计和改进,使它更加易于使用。Tomcat负载均衡算法是一种免费的开源软件,它能够有效地减少硬件投入,使得它在一般的小企业系统服务器上的应用更加灵活,并且能够满足当前和未来的扩展需求。此外,它还可以作为其他类似应用的参考[9],以提高效率[8]。
-
- Java语言
Java语言在计算机的程序应用过程当中,属于非常重要的一个应用软件,因为它的性能比较高,而且能够应用在多重领域当中,因此该程序在计算机的软件程序应用当中的范围相对来说是比较广泛的。而从专业的技术角度来说,Java程序的应用的实用性也是非常强的,这是因为它与传统的C语言或C++相比没有太大的基本结构的变化,也就是说它的语法结构是相对单一,而且具有稳定的特性,还有更重要的一点是Java程序语言的基本参考对象就是C语言,所以他的程序编写并不是很复杂,而且还能够起到优化工作效率提升系统设计本身的基础功能的作用,因此他也就受到了非常广泛的程序员们的青睐。在此次进行系统设计开发研究的过程当中,还发现Java程序语言之所以能够得到市场上更多用户的好评和青睐,其根本原因在于他能够具备各种语言的自身独特优点的展现,也就是说它的兼容性是常强的。因此,我们因此我们可以说在任何一个程序的开发过程当中,Java语言程序的应用是必不可少的,它他在程序员进行改动的时候,哪怕是一个程序字母的改动,都可以形成一种特定的程序,这是 Java程序,非常独特的另一个优点。不仅如此,Java源程序的可移植性也是非常大,而且它的安全系数很高,能够通过不同方式进行移植到其他程序当中,而且可以兼容不同程序的系统,在运行的过程当中,其安全系数也是非常强的,能够确保用户在使用网络的过程当中去确保网络的安全,而正是基于这样的可移植性,为程序员节约了很多的系统语言程序的开发设计的时间,这是非常难得的一种自有优势。
-
- springboot框架介绍
Spring框架是一个由Java公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseJavaBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。Spring框架拥有强大的IOC功能,可以轻松地实现Java对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将java对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。Java的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、Java等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括Java、iBATS/MyBATIs、Hibernate、Java)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能。
Vue.js是一种具有渐进式功能的用户界面框架,它以自底向上的方式实现了从基础到高级的增强。它的核心库专注于视图层,可以轻松地被学习,并且可以与其他库或现有项目实现无缝的集成。Vue可以为用户提供强大的功能,它可以支持使用单文件组件和库来开发复杂的单页应用程序,从而极大地提升了效率。
Vue.js 的第一个目标是利用最少的 API ,以最快的速度实现数据的绑定,第二个则是提供一种多种视图功能,以满足不同的需求。
Vue.js 并非完美的框架,而仅仅局限于视觉层。这意味着,它非常适合初学者,并且可以轻松地与各种软件、数据集以及库进行集成。另外,当Vue.js 结合各种软件、数据集以及数据集的支撑,可以实现更加复杂的系统功能。
开发任何一个系统,都要对其可行性进行分析,对其时间和资源上的限制进行考虑,这样可以减少系统开发的风险。同时,分析之后不仅能够合理的运用人力,还能在各方面资源的消耗上得到节省。下面就对技术、经济和社会三个方面来介绍。
Spring Boot框架作为目前流行的Java开发框架,具有快速构建、易于配置和高度可扩展的优点。其自动配置和插件化机制使得开发者能够更快速地构建出稳定、可靠的应用程序。此外,结合MySQL数据库进行信息管理,可以确保系统数据的安全性和持久性。
在推荐算法方面,现有技术如协同过滤方法可以为菜谱推荐提供强有力的支持。协同过滤算法可以根据用户的历史行为和偏好,为用户推荐符合其口味的菜谱。
Spring Boot和MySQL都是开源软件,可以免费使用,这大大降低了系统的开发成本。此外,由于系统的设计和实现相对简单,开发周期短,因此人力成本也相对较低。
对于企业和商家而言,该系统可以提高用户满意度和粘性,从而增加用户数量和消费额,实现经济效益的增长。因此,从经济角度来看,该系统的实现也是可行的。
随着人们对美食需求的不断增长,传统的菜谱推荐方式已难以满足用户的个性化需求。基于Spring Boot的菜谱个性化推荐系统的出现,可以为用户提供更加便捷、高效的菜谱推荐服务,提高用户的烹饪效率和口感体验。
此外,该系统还可以推动餐饮行业的数字化转型和创新发展,提高行业的工作效率和服务质量。因此,从社会角度来看,该系统的实现也是具有可行性的。
综上所述,基于Spring Boot的菜谱个性化推荐系统的设计与实现在技术、经济和社会方面都是可行的。该系统有望为用户提供更加精准、个性化的菜谱推荐服务,推动餐饮行业的数字化转型和创新发展。
-
- 功能需求分析
基于springboot的菜谱个性化推荐系统针对普通用户和管理员进行了详细的功能需求分析,以确保系统的实用性和易用性。以下是针对普通用户和管理员的具体功能需求:
1.普通用户功能需求:
登录注册:用户能够注册新账户并登录系统,确保个人信息和行为的追踪与记录。
首页:展示热门菜谱、推荐菜谱以及最新美食资讯,提供快速浏览和搜索功能。
美食资讯:用户可以查看和浏览系统发布的美食文章、烹饪技巧等资讯内容。
菜谱分享:用户可以上传自己的菜谱,分享烹饪心得和创意,与其他用户互动。
菜谱信息:详细展示每个菜谱的用料、制作步骤、热量营养等信息,便于用户参考制作。
食谱匹配:系统根据用户的口味偏好和历史行为,为用户推荐匹配的菜谱。
我的账户:用户可以管理自己的账户信息,包括个人信息、密码修改等。
个人中心:
个人首页:展示用户的个人信息、上传的菜谱、收藏等内容。
菜谱分享:管理自己分享的菜谱,包括编辑、删除等操作。
菜系分类:浏览和添加不同分类的菜系。
食材:查看和管理自己常用的食材列表。
匹配信息:查看系统为用户推荐的菜谱匹配结果。
收藏:管理自己的菜谱收藏列表,方便日后参考制作。
2.管理员功能需求:
后台首页:展示系统概览,包括用户统计、菜谱数量、活跃度等。
系统用户:管理用户账户,包括查看用户信息、禁用/启用账户、重置密码等。
菜品分享管理:审核用户上传的菜谱,确保内容质量和合规性。
菜系分类管理:维护菜谱的分类体系,包括添加、编辑、删除菜系分类。
食材管理:管理系统中使用的食材信息,确保数据的准确性和完整性。
菜谱信息管理:编辑、删除或标记菜谱信息,确保菜谱内容的准确性和时效性。
食谱匹配管理:设置和管理推荐算法的参数,优化匹配结果。
匹配信息管理:监控和分析系统为用户推荐的菜谱匹配信息,确保推荐质量。
轮播图管理:设置和更新首页的轮播图内容,展示重要信息或促销活动。
美食资讯:发布、编辑和删除美食资讯内容,保持信息的时效性和准确性。
分类列表:管理和维护菜谱分类列表,确保分类的清晰和易用性。
综上所述,基于Spring Boot的菜谱个性化推荐系统旨在满足普通用户和管理员的不同需求,提供全面的菜谱推荐和管理功能,提升用户体验和系统效率。
-
- 性能需求分析
评判一个系统好坏的一项重要指标就是性能,下面是对此系统的一些性能进行阐述。
1.系统的安全性和稳定性: 基于springboot的菜谱个性化推荐系统在管理权限上有着严格的控制,即想登录此平台进行操作,则必须要有操作权限,没有权限的用户是不可能登录平台查看任何的信息和数据,从而确保了系统的安全性。
2.数据的完整性和准确性:第一个是各项记录信息的完整性,信息记录的内容可以为空;第二个是各项信息数据之间相互联系的准确性;第三个是数据在不同记录信息的一致性
3.用户操作系统简单方便:在系统开发中按照“简单易用”的原则,能够使用户对系统的使用一目了然,既能保证用户使用,同时又能保证维护人员方便维护。
系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本基于springboot的菜谱个性化推荐系统的完整UML用例图如下所示。
普通用户用例图如下所示。
图3-1 普通用户用例图
管理员用例图如下所示。
图3-2 管理员用例图
本菜谱个性化推荐系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
图3-1 系统工作原理图
根据对系统的功能的分析,可以总结基于springboot的菜谱个性化推荐系统的具体功能模块包括下面的几个主要的功能模块:该系统主要从两大模块进行设计的,首先就是用户参与操作需要的模块,此外还需要有管理员用到的模块,两者之间不是互相独立的,他们之间有着密切的联系,同数据库表中的数据连接起来进行操作。每个模块访问相同的数据库,但访问的表不同。系统的各个功能模块是根据所收集的资料研究得到的。在以上分析功能的基础上,系统模块分为多个模块。普通用户含有的功能有登录注册、首页、美食资讯、菜谱分享、菜谱信息、食谱匹配、我的账户、个人中心(个人首页、菜谱分享、菜系分类、食材、匹配信息、收藏)等功能,管理员含有的功能有后台首页、系统用户、菜品分享管理、菜系分类管理、食材管理、菜谱信息管理、食谱匹配管理、匹配信息管理、系统管理(轮播图管理)、资源管理(美食资讯、分类列表)等功能。
系统的功能结构图如下图所示。
图3-2系统功能结构图
E-R图一般是由实体、实体的属性与联系三个要素组成的。在规划系统中所使用的数据库实体对象及实体E-R图,则需要通过对系统的需求分析、业务流程设计和系统功能结构来确定的。
总体ER图如下图所示。
图4-3总体ER图
将实体属性模型转换为关系数据库应该遵循以下几个原则:
1.一个实体转换后要对应一个关系。
2.所有的主键必须要定义为非空(not null)。
3.针对二元联系也应该按照一对多、弱对实、一对一和多对多等联系来定义外键。
得到数据库的关系后,设计如下表结构。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表classification_of_cuisine (菜系分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | classification_of_cuisine_id | int | 10 | 0 | N | Y | 菜系分类ID | |
2 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | ingredients_id | int | 10 | 0 | N | Y | 食材ID | |
2 | ingredients | varchar | 64 | 0 | Y | N | 食材 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | matching_information_id | int | 10 | 0 | N | Y | 匹配信息ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
5 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
6 | recommended_recipes | text | 65535 | 0 | Y | N | 推荐食谱 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recipe_information_id | int | 10 | 0 | N | Y | 菜谱信息ID | |
2 | recipe_name | varchar | 64 | 0 | Y | N | 菜谱名称 | |
3 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
4 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
5 | difficulty_level | varchar | 64 | 0 | Y | N | 难度级别 | |
6 | cooking_time | varchar | 64 | 0 | Y | N | 烹饪时间 | |
7 | ingredients | varchar | 64 | 0 | Y | N | 食材 | |
8 | step_video | varchar | 255 | 0 | Y | N | 步骤视频 | |
9 | cooking_techniques | text | 65535 | 0 | Y | N | 烹饪技巧 | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recipe_matching_id | int | 10 | 0 | N | Y | 食谱匹配ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
5 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
6 | eating_habits | varchar | 64 | 0 | Y | N | 饮食习惯 | |
7 | special_diet | varchar | 64 | 0 | Y | N | 特殊饮食 | |
8 | allergic_foods | varchar | 64 | 0 | Y | N | 过敏食物 | |
9 | ingredient_intake | text | 65535 | 0 | Y | N | 摄入成分 | |
10 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recipe_sharing_id | int | 10 | 0 | N | Y | 菜谱分享ID | |
2 | recipe_name | varchar | 64 | 0 | Y | N | 菜谱名称 | |
3 | cuisine_type | varchar | 64 | 0 | Y | N | 菜系类型 | |
4 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
5 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
6 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
7 | difficulty_level | varchar | 64 | 0 | Y | N | 难度级别 | |
8 | cooking_time | varchar | 64 | 0 | Y | N | 烹饪时间 | |
9 | ingredients | varchar | 64 | 0 | Y | N | 食材 | |
10 | kitchen_utensils | varchar | 64 | 0 | Y | N | 厨房用具 | |
11 | step_video | varchar | 255 | 0 | Y | N | 步骤视频 | |
12 | cooking_techniques | text | 65535 | 0 | Y | N | 烹饪技巧 | |
13 | step_description | longtext | 2147483647 | 0 | Y | N | 步骤描述 | |
14 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
15 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
16 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
为确保系统安全性,系统操作员只有在登录界面输入正确的用户名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的主界面。登录界面如下图所示。
图5-1登录界面
-
-
- 前台首页模块的实现
-
当进入基于springboot的菜谱个性化推荐系统的时候,首先映入眼帘的是系统的导航栏,其主界面展示如下图5-2所示。
图5-2前台首页界面
-
-
- 美食资讯模块的实现
-
当用户点击“美食资讯”后,可以查看和浏览系统发布的美食文章、烹饪技巧等资讯内容,可以在详情页面进行点赞、收藏、评论等。界面如下图5-3所示。
图5-3美食资讯详情界面
普通用户点击“菜谱分享”菜单,可以浏览其他用户分享的菜谱信息,支持关键词搜索和下拉搜索,也可以点击个人中心“菜品分享”按钮,上传自己的菜谱,分享烹饪心得和创意,与其他用户互动。界面如下图所示。
图5-4菜谱分享列表界面
图5-5菜谱分享发布界面
普通用户点击“菜谱信息”菜单,可以查看每个菜谱的食材、制作步骤、烹饪时间等信息,可以进行点赞、收藏、评论。界面如下图所示。
图5-6菜谱信息详情界面
普通用户点击“食谱匹配”按钮,可以提交自己的饮食习惯、过敏食物、摄入成分等信息,系统会自动匹配食谱,界面如下图所示。
图5-7食谱匹配界面
普通用户点击个人中心“匹配信息”菜单,可以查看系统为用户推荐的菜谱匹配结果。界面如下图所示。
图5-8匹配信息界面
普通用户点击个人中心“菜系分类”按钮,可以提交不同菜系的分类信息。界面如下图所示。
图5-9菜系分类界面
-
-
- 食材模块的实现
-
普通用户点击个人中心“食材”菜单,可以添加食材信息。界面如下图所示。
图5-10食材界面
系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。
用户管理界面如下图所示。
图5-11用户管理界面
-
-
- 菜谱分享管理模块的实现
-
管理员点击“菜谱分享管理”菜单,可以管理菜谱分享的详细信息,包括添加、编辑和删除菜谱分享。界面如下图所示。
图5-12菜谱分享管理界面
-
-
- 轮播图管理模块的实现
-
管理员点击“轮播图管理”这一菜单,可以对前台展示的轮播图进行设置,界面如下图所示。
图5-13轮播图管理界面
-
-
- 菜谱信息管理模块的实现
-
管理员点击“菜谱信息管理”这一菜单,可以发布、编辑和删除菜谱信息。如下图所示。
图5-14菜谱信息管理界面
-
-
- 资源管理模块的实现
-
管理员点击“资源管理”菜单,可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于美食资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,如下图所示。
图5-15资源管理界面
系统测试是用于检查软件的质量、性能、可靠性等是否符合用户需求。一套严谨的、规范的、完善的测试过程将大大提高软件的质量、可信度、可靠性,降低软件的出错率,降低用户风险系数。通过在计算机上对系统进行测试试验并从中发现此系统中存在的问题和错误然后加以修改,使之更加符合用户需求。
1.测试的目的是通过测试来发现程序在执行过程中的错误的过程。
2.好的测试方案是可以检验出还未被发现的错误的方案。
3.好的测试是发现了到目前为止还未被发现的错误的测试。
4.该系统能够完成系统用户管理、菜品分享管理、菜系分类管理、食材管理、菜谱信息管理、食谱匹配管理、匹配信息管理、系统管理(轮播图管理)、资源管理(美食资讯、分类列表)等功能,做到所开发的系统操作简单,尽量使系统操作不受用户对电脑知识水平的限制。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是菜谱分享管理功能的测试用例,检测了菜谱分享管理中对菜谱分享的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6-3 菜谱分享管理的测试用例
功能描述 | 用于菜谱分享管理 | |
测试目的 | 检测菜谱分享管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加菜谱分享,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加菜谱分享,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改菜谱分享,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改菜谱分享,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除菜谱分享,选择菜谱分享删除 | 提示删除成功 | 与预期结果一致 |
点击搜索菜谱分享,输入存在的菜谱名称 | 查找出菜谱分享 | 与预期结果一致 |
点击搜索菜谱分享,输入不存在的菜谱名称 | 不显示菜谱分享 | 与预期结果一致 |
经过对此系统的测试,得出该系统足以满足普通用户日常需求,在功能项目和操作等方面也能满足管理员对于普通用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。
在开发本基于springboot的菜谱个性化推荐系统之前,首先通过网上查询现有的菜谱个性化推荐系统功能、线下通过问卷调查的方式,了解普通用户对菜谱个性化推荐系统的具体需求,对系统的开发背景以及研究现状进行研究,设计了本基于springboot的菜谱个性化推荐系统具体实现的功能;确定好功能后,第二步就是开发工具的选择,在设计本基于springboot的菜谱个性化推荐系统的时候,采用了现下比较流程的Java语言、springboot框架,数据的存储方面采用的是开源的MYSQL。接下来就是对系统需求的分析,在文中主要通过对基于springboot的菜谱个性化推荐系统进行可行性、性能、功能、用例、业务流程五个方面进行分析,确定了本基于springboot的菜谱个性化推荐系统的具体功能,功能确定后就是对系统的设计以及数据库等方面,最终完成系统的开发,对系统进行测试总结。
在开发本基于springboot的菜谱个性化推荐系统的过程中我成长了很多,学习到了很多书本上没有的知识,目前系统虽然已经完成,但是还有许多地方需要改进,比如界面布局方面,代码的编写方面,都可以进一步完善,由于自己专业知识的浅薄,系统做的并不是十分完美,以后我会不断进行学习,对系统进行完善,希望有机会能够投入到学校的使用当中,给同学们提供便利。
参考文献
[1]Lan C ,Rui X ,Yifan J .Application of SVM model based on collaborative filtering hybrid algorithm in e-commerce recommendation[J].International Journal of Computers and Applications,2024,46(5):292-300.
[2]时光洋,于万钧,陈颖.基于标签挖掘的个性化推荐算法[J].计算机工程与设计,2024,45(03):932-939.DOI:10.16208/j.issn1000-7024.2024.03.040.
[3]蒋东珣.高校食堂菜谱推荐系统的数据建模优化设计研究[J].电脑知识与技术,2024,20(05):62-65.DOI:10.14004/j.cnki.ckt.2024.0267.
[4]周杨玥,李世锋,李林.基于Spark的智能菜品推荐系统设计与实现[J].软件工程,2024,27(02):69-73.DOI:10.19644/j.cnki.issn2096-1472.2024.002.014.
[5]胡学锋.基于过滤算法的网站针对性推荐模型[J].软件,2024,45(01):56-59.
[6]Yiying X ,Yi L ,Fen Z , et al.Optimization of intelligent recommendation of innovation and entrepreneurship projects based on collaborative filtering algorithm[J].Intelligent Decision Technologies,2023,17(4):1101-1113.
[7]S. A ,R. S V .An Improved Product Recommender System Using Collaborative Filtering and a Comparative Study of ML Algorithms[J].Cybernetics and Information Technologies,2023,23(4):51-62.
[8]凌婷.协同过滤推荐算法研究进展[J].信息记录材料,2023,24(11):16-18.DOI:10.16009/j.cnki.cn13-1295/tq.2023.11.069.
[9]郭晓宇.基于用户兴趣的个性化推荐算法研究[D].南京邮电大学,2023.DOI:10.27251/d.cnki.gnjdc.2023.000724.
[10]刘莉.基于情感分析的个性化推荐算法研究[J].现代计算机,2023,29(19):17-21.
[11]张盼盼,刘凯凯.基于协同过滤算法的图书推荐系统设计与实现[J].计算机时代,2023,(08):144-146.DOI:10.16644/j.cnki.cn33-1094/tp.2023.08.033.
[12]张勇豪,郑佳宜,刘莉.基于协同过滤算法的求职推荐系统设计与实现[J].现代计算机,2023,29(13):109-112.
[13]熊思旖,施银军,俞贵涛,等.智慧厨房健康膳食推荐系统[C]//中国家用电器协会.2023年中国家用电器技术大会论文集.健康智慧厨房浙江省工程研究中心;宁波方太厨具有限公司;,2023:8.DOI:10.26914/c.cnkihy.2023.075082.
[14]田猛,高淑贤,李祝君,等.一种便捷式的智能菜谱推荐系统的设计与实现[J].电脑知识与技术,2022,18(11):55-57.DOI:10.14004/j.cnki.ckt.2022.0691.
[15]徐志.基于网络爬虫的菜谱搜索和智能推荐方法研究[D].安徽建筑大学,2022.DOI:10.27784/d.cnki.gahjz.2022.000419.
[16]刘晓霞,公司食堂菜谱管理系统V1.0.湖北省,武汉东湖学院,2021-04-01.
[17]黄思杨.基于协同过滤推荐的安卓点餐系统的设计与实现[D].南昌大学,2020.DOI:10.27232/d.cnki.gnchu.2020.003538.
[18]黄达伟.基于大数据框架的餐饮推荐系统[D].华南理工大学,2020.DOI:10.27151/d.cnki.ghnlu.2020.005030.
[19]李晓东.基于用户评价的个性化饮食推荐方法研究[D].东北大学,2018.DOI:10.27007/d.cnki.gdbeu.2018.001692.
[20]汪丽娟,钱育蓉.基于Android的菜谱个性化推荐系统的设计与开发[J].电脑知识与技术,2017,13(20):81-82+100.DOI:10.14004/j.cnki.ckt.2019.2182.
致谢
在此论文完成之际,感谢我的指导老师。在指导老师的网页设计课上,当时我学到了很多东西,这对于我实习过程中也打了一定的基础,而且指导老师对于我的设计也提出许多建议,并予以悉心的指导,对于一些细小的问题都耐心的指导我去完善,授予我写论文的交流消息,时常的鼓励我,另外感谢教导我完善此项目的前端同学,对于这个项目,我是边学习边实现完成的,有许多东西开始并不是很明白,但前端开发的同学非常耐心的引导我去将这个项目完成,在系统的后端开发中,所用到的后台开发技术也时常会给我讲解,助于我更好的将论文完成,在此对帮助到我的同学和一直予以教导的指导老师致以衷心的感谢,祝事业有成。
标签:10,varchar,菜谱,系统,用户,08609,源码,毕业设计,255 From: https://blog.csdn.net/vx_Biye_Design/article/details/143284419免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~