基于 Spring Boot + Vue 的儿童益智玩具早教方案匹配平台设计与实现

项目类型:Java Web / Spring Boot / Vue / MySQL / 推荐算法 / 毕业设计
核心功能:儿童档案管理、玩具智能匹配、早教方案浏览、购物车订单、评价反馈、后台审核、玩具分类管理
推荐算法:TF-IDF 内容推荐 + User-Based 协同过滤 + 混合加权推荐 + 冷启动处理

一、项目简介

本文介绍一个基于 Spring Boot 和 Vue.js 开发的儿童益智玩具早教方案匹配平台。系统面向家长用户、机构用户和管理员三类角色,围绕儿童档案管理、玩具智能匹配、早教方案浏览、购物车订单、评价反馈、机构方案发布、后台审核与数据管理等业务进行设计与实现。

该系统不只是一个普通的后台管理平台,而是围绕“儿童画像 - 玩具分类 - 教育属性 - 用户评价”建立了一套推荐匹配链路。系统通过 TF-IDF 内容推荐算法、User-Based 协同过滤算法和混合加权推荐策略,根据儿童年龄、兴趣偏好、能力特征、玩具分类、教育属性以及家长历史评价数据,计算玩具与儿童早教需求之间的匹配程度。

系统登录页面如下:

在这里插入图片描述

二、开发背景

随着家庭教育和儿童早期教育受到越来越多家长的重视,益智玩具已经成为儿童认知启蒙、动手能力训练、逻辑思维培养和语言发展的重要辅助工具。

但在实际使用中,家长通常会遇到以下问题:

  1. 不清楚不同年龄段儿童适合什么类型的益智玩具。
  2. 难以判断玩具是否符合孩子的兴趣和能力发展特点。
  3. 早教方案、玩具资源、机构服务之间缺少统一管理。
  4. 普通平台大多只做商品展示,缺少个性化推荐逻辑。

因此,本系统通过儿童档案、玩具分类、玩具教育属性和评价反馈数据,完成玩具与儿童早教需求之间的智能匹配,帮助家长更高效地选择适合孩子的益智玩具和早教方案。

三、技术栈

1. 后端技术

  • Spring Boot:作为后端主框架,负责接口开发、业务处理和服务整合。
  • MyBatis-Plus:用于简化数据库增删改查和分页查询。
  • MySQL:存储用户、儿童档案、玩具、分类、方案、订单和评价等业务数据。
  • RESTful API:前后端通过统一接口进行数据交互。
  • Lombok:简化实体类代码。

2. 前端技术

  • Vue.js:构建前端单页面应用。
  • Element Plus:实现表格、表单、弹窗、菜单等后台管理常用组件。
  • Axios:进行前后端接口请求。
  • Vite:作为前端开发和构建工具。

3. 架构模式

系统采用 B/S 架构和前后端分离模式。前端负责页面展示和用户交互,后端负责业务逻辑、权限控制、数据处理和推荐算法计算,MySQL 负责持久化存储。

四、系统角色设计

系统主要包括三类用户:家长用户、机构用户和管理员。

1. 家长用户

家长用户是平台的核心使用对象,主要负责维护儿童档案、查看推荐结果、浏览早教方案、下单购买玩具并提交评价反馈。

家长端首页如下:

在这里插入图片描述

家长用户主要功能包括:

  • 儿童档案管理
  • 玩具智能匹配
  • 玩具浏览与查询
  • 早教方案浏览
  • 方案收藏
  • 购物车管理
  • 订单管理
  • 评价反馈
  • 查看课程资源

2. 机构用户

机构用户是平台内容和服务的提供方,主要负责发布早教方案、维护机构信息、回复家长咨询、上线玩具和维护课程资源。

机构用户主要功能包括:

  • 早教方案发布
  • 方案审核状态查看
  • 咨询互动回复
  • 机构个人中心
  • 玩具上线管理
  • 课程资源维护

3. 管理员

管理员负责系统后台治理和平台数据维护。

管理员主要功能包括:

  • 用户管理
  • 机构资质审核
  • 玩具信息审核
  • 玩具分类管理
  • 早教方案审核
  • 课程审核
  • 订单管理
  • 操作日志管理
  • 数据概览统计

五、核心功能模块

1. 儿童档案管理

儿童档案是系统推荐算法的基础数据。家长可以维护儿童姓名、年龄、能力特征、兴趣偏好等信息。

系统在进行玩具匹配时,会读取儿童档案中的年龄、兴趣偏好和能力特征,并将这些数据转换为推荐算法可计算的特征。

儿童档案管理页面如下:

在这里插入图片描述

2. 玩具智能匹配

玩具智能匹配是系统的核心功能。家长选择儿童档案后,系统会读取该儿童的年龄、兴趣偏好和能力特征,同时读取已审核上架的候选玩具数据,经过推荐算法计算后输出匹配结果。

系统会返回三类推荐结果:

  1. TF-IDF 内容推荐结果
  2. 协同过滤推荐结果
  3. 混合推荐结果

玩具智能匹配页面如下:

在这里插入图片描述

3. 早教方案浏览

早教方案浏览模块用于展示机构发布并通过审核的早教方案。家长可以查看方案内容、教学目标、适用对象等信息,也可以对感兴趣的方案进行收藏。

早教方案浏览页面如下:

在这里插入图片描述

4. 购物车与订单管理

家长可以将推荐或浏览到的玩具加入购物车,并提交订单。订单模块用于记录购买信息、订单金额、订单状态和物流状态。

购物车页面如下:
在这里插入图片描述

订单管理页面如下:

在这里插入图片描述

5. 评价反馈

评价反馈模块用于记录家长对玩具或早教方案的使用体验和评分。该数据不仅用于页面展示,也会作为协同过滤算法的输入数据,帮助后续推荐结果更加贴近用户偏好。

评价反馈页面如下:

在这里插入图片描述

6. 管理员后台

管理员后台用于管理平台用户、审核机构和方案、维护订单和课程,并通过数据概览查看平台运行情况。

管理员数据概览页面如下:

在这里插入图片描述

用户管理页面如下:

在这里插入图片描述

方案审核页面如下:

在这里插入图片描述

六、玩具分类设计

预答辩中容易被问到的一个问题是:系统是否体现了玩具分类?

本系统中,玩具分类不是简单的页面展示字段,而是贯穿了数据表设计、后台管理、玩具信息维护和推荐算法计算。

系统支持的玩具分类包括:

  • 积木拼搭类
  • 拼图益智类
  • 音乐启蒙类
  • STEM 科学类
  • 语言认知类
  • 运动感统类
  • 创意美术类
  • 数学启蒙类

在数据库中,玩具表 toy 通过 category_id 关联玩具分类表 toy_category。推荐算法在进行内容匹配时,会读取玩具分类名称,并计算儿童兴趣偏好与玩具分类之间的匹配度。

也就是说,玩具分类不仅用于管理端维护,还参与了最终推荐得分计算。

七、数据库设计

系统主要数据表包括:

  • sys_user:用户表
  • child_profile:儿童档案表
  • toy:玩具信息表
  • toy_category:玩具分类表
  • early_plan:早教方案表
  • evaluation:评价反馈表
  • cart:购物车表
  • orders:订单表
  • course:课程表
  • institution:机构表
  • operation_log:操作日志表

推荐算法重点使用以下几类数据:

数据表 作用
child_profile 存储儿童年龄、能力特征、兴趣偏好,是推荐算法的儿童画像来源
toy 存储玩具名称、分类、适配年龄、教育属性、价格和库存,是候选资源池
toy_category 存储玩具分类信息,支撑后台分类管理和推荐算法中的分类加权
evaluation 存储家长评分和反馈,是协同过滤评分矩阵的数据来源

八、推荐算法设计

本系统的推荐算法由三部分组成:

  1. TF-IDF 内容推荐算法
  2. User-Based 协同过滤算法
  3. 混合加权推荐算法

整体流程可以理解为:

儿童档案 + 玩具属性 + 玩具分类 + 用户评价
                ↓
        TF-IDF 内容推荐得分
                ↓
        协同过滤预测得分
                ↓
        混合加权融合排序
                ↓
        输出玩具推荐结果

1. TF-IDF 内容推荐算法

TF-IDF 内容推荐主要解决“儿童特征与玩具属性是否匹配”的问题。

系统会将儿童档案和玩具属性都转换为文本特征。

儿童画像包括:

  • 年龄
  • 兴趣偏好
  • 能力特征

玩具特征包括:

  • 玩具名称
  • 教育属性
  • 玩具分类
  • 适配年龄

然后系统通过 TF-IDF 向量化和余弦相似度计算儿童画像与玩具特征之间的匹配程度。

TF-IDF 的基本计算思想如下:

TF = 某词在文档中出现次数 / 文档总词数
IDF = log((文档总数 + 1) / (包含该词的文档数 + 1)) + 1
TF-IDF = TF × IDF

余弦相似度计算公式如下:

similarity = (A · B) / (|A| × |B|)

为了避免只因为关键词相似而推荐不适龄玩具,系统还加入了年龄适配得分和分类兴趣得分。

最终内容推荐得分为:

内容得分 = 文本相似度 × 0.60 + 年龄适配得分 × 0.25 + 分类兴趣得分 × 0.15

TF-IDF 内容推荐特征矩阵如下:

在这里插入图片描述

2. User-Based 协同过滤算法

协同过滤算法主要解决“相似家长更喜欢哪些玩具”的问题。它不是只看玩具本身的属性,而是引入用户评价行为。

系统根据评价表构建用户-玩具评分矩阵:

R[user][toy] = score

然后使用皮尔逊相关系数计算当前家长与其他家长之间的相似度,选择 Top-K 相似用户,并根据相似用户对候选玩具的评分预测当前家长可能给出的评分。

协同过滤评分矩阵如下:

在这里插入图片描述

协同过滤的推荐步骤如下:

  1. 构建用户-玩具评分矩阵。
  2. 计算当前家长与其他家长的相似度。
  3. 选取 Top-K 相似家长。
  4. 根据相似家长评分预测当前用户对候选玩具的评分。
  5. 如果用户评价数据不足,则使用人气推荐作为降级策略。

3. 混合加权推荐算法

单独使用 TF-IDF 内容推荐,会更依赖儿童档案和玩具属性;单独使用协同过滤,则依赖历史评价数据。如果新用户没有评价记录,协同过滤的预测效果会不稳定。

因此,系统采用混合推荐策略,将两种算法的结果进行加权融合。

正常模式下:

最终得分 = TF-IDF内容得分 × 0.60 + 协同过滤得分 × 0.40

冷启动模式下,如果当前家长评价数据少于 3 条,则提高内容推荐权重:

冷启动最终得分 = TF-IDF内容得分 × 0.85 + 协同过滤得分 × 0.15

这样设计的原因是:新用户评价数据较少时,协同过滤预测不够稳定,此时更应该依赖儿童档案和玩具属性完成基础匹配。当用户评价数据逐渐积累后,再提高协同过滤的影响,使推荐结果更贴近真实偏好。

混合推荐最终得分矩阵如下:

在这里插入图片描述

九、后端接口与实现逻辑

玩具匹配接口位于 ToyController 中:

@GetMapping("/match")
public Result<Map<String, Object>> matchByChild(@RequestParam Long childId) {
    return Result.ok(toyService.matchByChild(childId));
}

核心业务逻辑位于 ToyService.matchByChild

HybridRecommendEngine.RecommendResult result = hybridRecommendEngine.recommend(
        child, child.getParentId(), allToys, allEvaluations, 50);

接口返回的数据包括:

  • hybridToys:混合推荐排序结果
  • tfidfToys:TF-IDF 内容推荐排序结果
  • cfToys:协同过滤排序结果
  • algorithmInfo:算法权重、冷启动模式、用户评价数量等说明信息
  • totalCandidates:候选玩具数量
  • matchedCount:匹配结果数量

十、项目特点总结

本系统具有以下特点:

  1. 采用 Spring Boot + Vue 前后端分离架构,结构清晰。
  2. 支持家长、机构、管理员三类角色,权限边界明确。
  3. 实现儿童档案、玩具、早教方案、购物车、订单、评价等完整业务流程。
  4. 增加玩具分类管理,分类数据进入数据库设计和推荐算法。
  5. 引入 TF-IDF 内容推荐算法,解决儿童画像与玩具属性匹配问题。
  6. 引入 User-Based 协同过滤算法,利用家长历史评价数据优化推荐。
  7. 采用混合加权推荐策略,兼顾内容匹配和用户行为反馈。
  8. 支持冷启动处理,避免新用户评价数据不足导致推荐结果不可用。
  9. 推荐结果包含匹配分数,具备一定可解释性。

十一、总结

本文介绍的儿童益智玩具早教方案匹配平台,围绕儿童早教场景,完成了从儿童档案维护、玩具资源管理、智能推荐、购物下单到评价反馈的完整业务闭环。

系统不仅实现了基础平台功能,还重点加入了 TF-IDF 内容推荐、协同过滤和混合加权推荐算法,使平台具备个性化推荐能力和可解释性。

后续可以继续扩展移动端或小程序端,并结合更多用户行为数据、课程学习记录和儿童成长测评数据进一步优化推荐效果。

标签建议

Spring Boot
Vue
MySQL
毕业设计
推荐算法
TF-IDF
协同过滤
前后端分离
儿童早教
管理系统

联系我们定制开发

在这里插入图片描述

更多推荐