news 2026/9/3 2:28:27

Beta阶段冲刺博客4

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Beta阶段冲刺博客4

Beta阶段冲刺博客4

团队名称U-Linker
课程EE308FZ - 软件工程
要求Teamwork—beta Spring
目标记录β冲刺第7-8天的进展

目录

  • Beta阶段冲刺博客4
    • Part 1: SCRUM部分
      • 1.1 成员工作进展
      • 1.2 代码签入记录
        • 功能模块:个性化推荐算法
          • 核心推荐因子
          • 算法流程
        • 功能模块:推荐 API 接口
      • 1.3 测试工作成果
      • 1.4 SCRUM会议照片
    • Part 2: PM报告
      • 2.1 项目整体进度
      • 2.2 燃起图
      • 2.3 任务总量变化记录
      • 2.4 项目最新运行截图
        • 功能演示 :个性化推荐列表

Part 1: SCRUM部分

1.1 成员工作进展

成员角色过去两天完成的任务遇到的困难接下来的计划
颜一顺后端1. 配置生产环境服务器
2. 搭建推荐算法运行环境
服务器内存配置优化协助测试组进行线上环境压力测试
曾渝后端1. 设计基于用户行为的简易推荐算法
2. 实现协同过滤模块
协同过滤计算效率优化优化推荐算法性能,增加缓存机制
程一鸣后端1. 开发获取推荐帖子列表的 API 接口
2. 实现浏览记录接口
完善推荐 API 的分页和过滤功能
陶炯后端1. 编写 Docker Compose 编排脚本
2. 实现一键部署功能
容器间网络通信配置编写部署文档,准备生产环境上线
陈舒薇前端1. 设计个性化推荐模块的前端 UI 组件
2. 完成推荐卡片样式
推荐理由标签布局优化推荐页面交互体验
杨璐前端1. 配合后端进行线上环境的冒烟测试
2. 修复测试发现的 Bug
协助完成最终验收测试
薛易明前端1. 在首页接入个性化推荐列表展示
2. 实现推荐分数可视化展示
推荐列表与普通列表切换逻辑完善推荐页面的加载动画和空状态
高子言前端1. 编写前端 Dockerfile
2. 配置 Nginx 反向代理
SSL 证书配置优化前端构建流程,减小打包体积
林语婧PM1. 制定推荐策略规则
2. 统筹上线部署流程
组织最终演示彩排,准备答辩材料
黄祉睿测试1. 测试推荐算法的准确性
2. 验证部署后的稳定性
编写测试报告,总结 Bug 修复情况
陈乐晗数据1. 整理用户兴趣标签数据
2. 解决推荐冷启动问题
新用户数据不足分析推荐效果,提出优化建议
张健涛数据1. 模拟不同用户行为
2. 生成测试推荐算法所需的数据
准备演示用的测试账号和数据

1.2 代码签入记录

GitHub链接

功能模块:个性化推荐算法
  • 提交说明:实现混合推荐算法,结合内容推荐、协同过滤、时间衰减和社交关系等多因子计算推荐分数。
核心推荐因子

1. 类型匹配(30分)

原理:分析用户历史申请的帖子类型,找出最偏好的类型。

实现逻辑

  • 统计用户所有申请记录中帖子类型的出现次数
  • 选择出现次数最多的类型作为偏好类型
  • 如果推荐帖子类型与偏好类型匹配,加30分

代码位置

# routes/recommendation.py:25-27ifuser_preferences.get('preferred_type')==post.post_type:score+=30reasons.append("符合您偏好的帖子类型")

2. 学院匹配(20分)

原理:同学院用户发布的帖子更容易引起用户兴趣。

实现逻辑

  • 获取当前用户的学院信息
  • 如果推荐帖子的作者与用户同学院,加20分

代码位置

# routes/recommendation.py:29-34user=db.session.get(User,user_id)ifuseranduser.collegeandpost.author.college:ifuser.college==post.author.college:score+=20reasons.append("同学院用户发布")

3. 价格匹配(15分)

原理:根据用户历史交易价格,计算用户偏好的价格区间。

实现逻辑

  • 收集用户所有申请和完成的订单中的价格
  • 计算平均价格:avg_price = sum(prices) / len(prices)
  • 价格区间:[avg_price * 0.5, avg_price * 1.5](平均值 ± 50%)
  • 如果推荐帖子价格在区间内,加15分

代码位置

# routes/recommendation.py:36-40preferred_price_range=user_preferences.get('preferred_price_range',[0,100])ifpreferred_price_range[0]<=post.price<=preferred_price_range[1]:score+=15reasons.append("符合您的价格偏好")

4. 时间衰减(10分)

原理:新发布的帖子更容易引起用户关注。

实现逻辑

  • 计算帖子发布天数:days_old = (now - post.created_at).days
  • 3天内:加10分
  • 3-7天:加5分
  • 7天以上:不加分

代码位置

# routes/recommendation.py:42-49days_old=(datetime.now()-post.created_at).daysifdays_old<=3:score+=10reasons.append("最新发布")elifdays_old<=7:score+=5

5. 协同过滤(25分)

原理:找到与用户相似的其他用户,推荐他们也感兴趣的帖子。

实现逻辑

  • 相似用户定义:同学院 + 有申请行为
  • 统计相似用户申请的帖子ID及次数
  • 每个相似用户行为加5分,最高25分

代码位置

# routes/recommendation.py:50-62collab_data=user_preferences.get('collaborative_score',{})ifisinstance(collab_data,dict):collaborative_score=collab_data.get(post.id,0)else:collaborative_score=collab_dataifisinstance(collab_data,int)else0ifcollaborative_score>0:score+=min(collaborative_score*5,25)# 每个相似用户行为加5分,最高25分reasons.append("相似用户也在关注")

算法流程

整体流程图

用户请求推荐 ↓ 1. 分析用户偏好 ├─ 分析申请记录 → 偏好类型 ├─ 分析订单记录 → 价格区间 └─ 找到相似用户 → 协同过滤分数 ↓ 2. 获取候选帖子 ├─ 排除已申请的帖子 ├─ 排除已完成的订单 └─ 排除自己发布的帖子 ↓ 3. 计算推荐分数 ├─ 类型匹配(30分) ├─ 学院匹配(20分) ├─ 价格匹配(15分) ├─ 时间衰减(10分) └─ 协同过滤(25分) ↓ 4. 排序和筛选 ├─ 按分数降序排序 ├─ 只返回分数 > 0 的帖子 └─ 取前 N 个(默认10个,最多50个) ↓ 5. 补充热门帖子(如果推荐不足) └─ 按最近7天申请数排序 ↓ 返回推荐列表
功能模块:推荐 API 接口
  • 提交说明:提供获取推荐帖子列表和记录浏览历史的 API 接口。
# routes/recommendation.py@recommendation_bp.route('/posts',methods=['GET'])defget_recommendations():"""获取个性化推荐帖子列表"""current_user_id=session.get('user_id')ifnotcurrent_user_id:returnerror(message="请先登录")limit=min(request.args.get('limit',10,type=int),50)# 分析用户偏好user_preferences=analyze_user_preferences(current_user_id)# 获取候选帖子(排除已申请/已完成/自己发布的)excluded_post_ids=get_excluded_post_ids(current_user_id)all_posts=Post.query.filter(Post.status=='active',~Post.id.in_(excluded_post_ids)ifexcluded_post_idselseTrue).all()# 计算推荐分数并排序scored_posts=[]forpostinall_posts:score,reasons=calculate_recommendation_score(current_user_id,post,user_preferences)ifscore>0:scored_posts.append({'post':post,'score':score,'reasons':reasons})scored_posts.sort(key=lambdax:x['score'],reverse=True)# 如果推荐不足,补充热门帖子recommendations=format_recommendations(scored_posts[:limit])iflen(recommendations)<limit:recommendations.extend(get_hot_posts(limit-len(recommendations),excluded_post_ids))returnsuccess(data={'recommendations':recommendations,'user_preferences':user_preferences})

1.3 测试工作成果

  • 测试内容:个性化推荐算法功能验证
  • 测试状态:全部通过
  • 测试报告

本次测试针对系统的"个性化推荐功能"进行了深度验证,确保推荐算法能够准确分析用户偏好并提供有价值的推荐结果。

  1. 推荐分数计算准确性
    测试场景:验证推荐分数的各因子权重是否正确计算。
    测试过程:
  • 类型匹配测试:创建一个偏好"求助"类型的测试用户,验证"求助"类帖子获得 30 分加成。
  • 学院匹配测试:同学院用户发布的帖子正确获得 20 分加成。
  • 价格匹配测试:历史平均交易价格 100 元的用户,50-150 元区间内的帖子获得 15 分加成。
  • 时间衰减测试:3 天内发布的帖子获得 10 分,3-7 天获得 5 分。
    测试结果:所有推荐因子计算准确,推荐分数符合预期公式。
  1. 协同过滤效果验证
    测试场景:验证相似用户行为对推荐结果的影响。
    测试过程:
  • 创建 5 个同学院测试用户,让其中 3 个用户申请同一个帖子。
  • 验证该帖子在第 4 个用户的推荐列表中获得协同过滤加分(15 分)。
  • 确认推荐理由正确显示"相似用户也在关注"。
    测试结果:协同过滤算法有效识别相似用户行为,推荐结果符合预期。
  1. 冷启动处理
    测试场景:验证新用户(无历史行为)的推荐体验。
    测试过程:
  • 创建全新测试账号,无任何申请或订单记录。
  • 请求推荐列表,验证系统返回热门帖子作为补充。
  • 确认热门帖子按最近 7 天申请数排序。
    测试结果:冷启动处理机制正常工作,新用户也能获得有价值的推荐。

总结:个性化推荐算法功能完备。混合推荐策略有效结合了内容推荐、协同过滤、时间衰减等多个维度,为用户提供了精准的个性化推荐体验。

1.4 SCRUM会议照片

  • 会议时间:2025年1月2日
  • 会议地点:晋江楼二楼

Part 2: PM报告

2.1 项目整体进度

指标数值
预期总任务数47
已完成任务数41
剩余任务数6
完成百分比87%

2.2 燃起图

说明:截止 Day 8,项目进度已接近尾声(87%)。这两天我们完成了核心的个性化推荐算法开发,包括混合推荐策略、协同过滤模块和前端展示组件。从燃起图可以看出,Day 7-8 的任务完成速度较快,剩余 6 个任务主要集中在最终部署、性能优化和演示准备上,预计能够按时完成冲刺目标。

天数剩余任务数完成任务数
Day 1470
Day 2443
Day 3407
Day 43611
Day 53017
Day 62225
Day 71433
Day 8641

2.3 任务总量变化记录

日期原计划任务数新增任务数新增原因
01.02470无新增任务

反思:推荐算法的开发过程中,协同过滤的计算效率是一个挑战。在大量用户数据的情况下,实时计算相似用户行为会带来性能压力。我们计划在后续版本中引入 Redis 缓存用户偏好数据,以提升响应速度。

2.4 项目最新运行截图

功能演示 :个性化推荐列表

首页展示基于用户行为分析的个性化推荐帖子,每个帖子显示推荐分数和推荐理由。

个性化

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:27:50

ESP32-CAM图像传输实战:基于WiFi的实时视频流完整指南

ESP32-CAM图像传输实战&#xff1a;从零搭建实时视频流系统你有没有想过&#xff0c;用一块不到30元的开发板&#xff0c;就能做出一个能连Wi-Fi、拍视频、远程查看的摄像头&#xff1f;这不是科幻&#xff0c;这就是ESP32-CAM的真实能力。在智能家居监控、农业环境观测、机器人…

作者头像 李华
网站建设 2026/9/2 23:59:08

技术博客引流策略:撰写HeyGem实战文章吸引潜在客户

技术博客引流策略&#xff1a;撰写HeyGem实战文章吸引潜在客户 在AI内容生产工具爆发的今天&#xff0c;一个现实问题摆在许多企业面前&#xff1a;如何以低成本、高效率的方式批量生成数字人视频&#xff1f;传统拍摄方式耗时费力&#xff0c;而市面上的SaaS平台又存在数据外泄…

作者头像 李华
网站建设 2026/8/28 9:15:05

AI云计算平台推荐:部署HeyGem最合适的几家服务商

AI云计算平台推荐&#xff1a;部署HeyGem最合适的几家服务商 在企业数字化转型加速的今天&#xff0c;内容生产效率正面临前所未有的挑战。一场产品发布会需要制作十几种语言版本的宣传视频&#xff1f;一家教育机构要为同一课程配置多位“数字讲师”&#xff1f;传统拍摄流程…

作者头像 李华
网站建设 2026/9/2 21:27:50

树莓派5安装ROS2首步操作全面讲解

树莓派5安装ROS2&#xff1f;从零开始的完整实战指南 你是不是也曾在深夜对着终端发愁&#xff1a;明明照着教程一步步来&#xff0c;为什么就是装不上ROS2&#xff1f; “ E: Unable to locate package ros-humble-* ”——这行红色错误信息&#xff0c;几乎成了每个在树莓…

作者头像 李华
网站建设 2026/9/2 12:41:21

小红书种草文案:女生也能学会的AI视频制作神器

小红书种草文案&#xff1a;女生也能学会的AI视频制作神器 你有没有过这样的经历&#xff1f; 想在小红书发一条口播视频分享护肤心得&#xff0c;结果拍了十几遍都不满意——表情僵、语速快、背景杂音多。剪辑两小时&#xff0c;发布三分钟&#xff0c;点赞还没评论多……最后…

作者头像 李华
网站建设 2026/9/2 21:40:54

TikTok病毒式传播:挑战赛形式激发UGC内容创作

TikTok病毒式传播&#xff1a;挑战赛形式激发UGC内容创作 在短视频平台竞争白热化的今天&#xff0c;TikTok的崛起早已不只是“流行”的代名词&#xff0c;而是一场内容生产逻辑的彻底重构。它的推荐机制不依赖粉丝基数&#xff0c;而是基于内容本身的吸引力——这意味着哪怕是…

作者头像 李华