TeamUp-CodeArts团队实战

TeamUp 2025-11-12 23:43:22
这个作业属于哪个课程202501福大-软件工程实践-W班
这个作业要求在哪里软工实践——CodeArts团队实战总结
这个作业的目标CodeArts极限开发
其他参考文献markdown教程-菜鸟教程

目录

  • 1. 仓库链接
  • 1.1 仓库
  • 1.2 公网地址
  • 2. CodeArt提交日志
  • 3. 功能实现思路描述
  • 3.1 基础功能设计和实现
  • 3.1.1 整体架构
  • 3.1.2 技术选型
  • 3.1.3 主要组件
  • 3.2 接口设计
  • 3.2.1 用户管理接口 (UserController)
  • 3.2.2 咨询管理接口 (ConsultationsController)
  • 3.2.3 AI咨询接口 (CarConsultationController)
  • 3.2.4 管理员接口 (AdminController)
  • 3.2.5 统一响应格式 (ResponseResult)
  • 3.3 关键模块设计
  • 3.3.1 用户认证与授权模块
  • 3.3.2 用户管理模块
  • 3.3.3 咨询管理模块
  • 3.3.4 AI咨询模块
  • 3.3.5 异常处理模块
  • 3.3.6 数据传输与映射模块
  • 3.2 类图
  • 3.3 用例图
  • 3.4 数据库设计
  • 3.4.1 数据库表结构文档
  • 3.4.2 表清单
  • 1. users - 用户表
  • 2. consultations - 咨询记录表
  • 3.4.3 表关系图
  • 4. 程序截图说明
  • 4.1 Spring Boot 后端应用程序​ 正在启动和运行的日志信息
  • 4.2 部分程序说明
  • 4.2.1 用户注册并发控制
  • 4.2.2 ai接口实现
  • 4.2.3 咨询部分接口实现
  • 4.2.4 对用户详细信息进行分页查询
  • 4.2.5 管理端接口
  • 4.3 界面展示
  • 4.3.1 用户端
  • 4.3.2 管理端
  • 5. 附加功能实现
  • 5.1 我们完成了咨询积分系统,用户完成咨询、提供反馈等行为获得积分的界面
  • 5.2 我们添加了管理员端
  • 5.2.1. 管理端接口
  • 5.2.2. 管理端界面展示
  • 5.3 我们实现了高并发接口测试
  • 5.3.1 测试基本概况
  • 5.3.2 接口性能表现
  • 5.3.3 系统稳定性与吞吐量
  • 6. 组员职责分工
  • 6.1 贡献度
  • 6.2 团队成员分工
  • 6.3 团队成员遇到的困难
  • 1. 102300326(部署+数据库)
  • 2. 102300318(后端)
  • 3.102300234(前端)
  • 4. 102300320(测试)
  • 5. 102300321(用户体验)
  • 6. 102300306(产品经理)
  • 7. 102300310(UI)
  • 8. 102300333(运维)
  • 7. PSP表格
  • 1. 102300306
  • 2. 102300234
  • 3. 102300326
  • 4. 102300310
  • 5. 102300320
  • 6. 102300321
  • 7. 102300333
  • 8. 102300318

接口文档.md 8.63K

consultations .sql 1.69K

简单类图、ER图、用况.zip 29.02K

user.sql 822B

1. 仓库链接

1.1 仓库

https://codehub.devcloud.ap-southeast-3.huaweicloud.com/f98f3050bdc546c186ab9229b8be1463/TeamPractice-group4-TeamUp.git

1.2 公网地址

120.26.178.146

2. CodeArt提交日志

由于我们的开发是在apifox上进行,后期统一提交到CodeArt,因此展示apifox的提交日志

img

img

3. 功能实现思路描述

3.1 基础功能设计和实现

3.1.1 整体架构

本系统采用经典的分层架构模式,主要包括以下几个层次:

  • 表现层(Controller): 负责处理HTTP请求和响应
  • 业务逻辑层(Service): 实现核心业务逻辑
  • 数据访问层(Mapper): 负责数据持久化操作
  • 实体层(PO/VO/DTO): 数据模型定义

3.1.2 技术选型

3.2 接口设计

3.2.1 用户管理接口 (UserController)

接口名称请求方式URL功能说明
用户注册POST/api/users/register用户注册
用户登录POST/api/users/login用户登录认证
获取用户详情GET/api/users/{id}根据ID获取用户详情

3.2.2 咨询管理接口 (ConsultationsController)

接口名称请求方式URL功能说明
根据用户ID获取咨询记录GET/api/consultations/getConsultationsByUserId/{userId}获取指定用户的咨询记录
添加咨询记录POST/api/consultations/addConsultations添加新的咨询记录

3.2.3 AI咨询接口 (CarConsultationController)

接口名称请求方式URL功能说明
获取购车咨询建议GET/api/ai/getConsultations调用AI获取购车建议

3.2.4 管理员接口 (AdminController)

接口名称请求方式URL功能说明
分页获取咨询记录GET/api/admins/consultations/page管理员分页查看咨询记录
分页获取用户列表GET/api/admins/users/page管理员分页查看用户列表

3.2.5 统一响应格式 (ResponseResult)

所有接口均采用统一的响应格式:

{
  "code": "200",
  "message": "操作成功",
  "data": {}
}

3.3 关键模块设计

3.3.1 用户认证与授权模块

  • JWT工具类: JwtTool负责token的生成和解析
  • 认证配置: SecurityConfig配置JWT密钥和安全策略
  • Token过滤器: TokenFilter拦截请求进行token验证
  • 用户上下文: UserContext通过ThreadLocal存储当前用户信息

3.3.2 用户管理模块

  • 核心服务: UserServiceImpl实现用户注册、登录、详情查询等功能
  • 防重复注册: 使用Redisson的布隆过滤器(RBloomFilter)防止缓存穿透
  • 并发控制: 使用Redisson分布式锁保证用户注册的原子性
  • 数据验证: 通过DTO进行参数校验和传输

3.3.3 咨询管理模块

3.3.4 AI咨询模块

  • 核心服务: CarConsultationServiceImpl集成阿里云千问大模型
  • API调用: CarConsultationUtils封装DashScope API调用逻辑
  • 异步处理: 使用CompletableFuture异步调用AI接口,提升响应速度
  • 专业提示词: 构建专业的购车咨询提示词模板,确保AI输出质量

3.3.5 异常处理模块

  • 全局异常处理器: GlobalExceptionHandler统一处理各种异常
  • 自定义异常: BaseException及其子类处理业务异常
  • 参数校验: 集成Jakarta Validation进行参数合法性校验

3.3.6 数据传输与映射模块

  • 对象转换: BeanUtilBeanUtils提供PO、VO、DTO之间的转换
  • 分页封装: PageVO统一封装分页查询结果
  • 集合工具: CollUtils提供常用的集合操作工具方法

3.2 类图

img

3.3 用例图

img

3.4 数据库设计

3.4.1 数据库表结构文档

3.4.2 表清单

1. users - 用户表

表说明:存储用户基本信息
** 表结构**

字段名数据类型长度是否为空主键默认值注释
user_idBIGINT UNSIGNED-NOT NULLAUTO_INCREMENT用户ID,主键
usernameVARCHAR50NOT NULL-用户名,唯一
emailVARCHAR100NULL-邮箱,唯一
phoneVARCHAR20NOT NULL-手机号,唯一
passwordVARCHAR255NOT NULL-加密后的密码
real_nameVARCHAR50NULL-真实姓名

索引信息
sql
PRIMARY KEY (user_id)
UNIQUE KEY username (username)
UNIQUE KEY email (email)
UNIQUE KEY phone (phone)
INDEX idx_phone (phone)
INDEX idx_email (email)
INDEX idx_username (username)
表配置

  • 存储引擎:InnoDB
  • 字符集:utf8mb4
  • 排序规则:utf8mb4_unicode_ci
  • 表注释:用户表

2. consultations - 咨询记录表

表说明:存储用户汽车咨询记录及AI分析结果

表结构

字段名数据类型长度是否为空主键默认值注释
idBIGINT-NOT NULLAUTO_INCREMENT咨询ID
user_idBIGINT-NOT NULL-用户ID
titleVARCHAR200NOT NULL-咨询标题
budgetVARCHAR50NOT NULL-购车预算:10万以下|10-20万|20-30万|30-50万|50万以上
car_typeVARCHAR50NOT NULL-偏好车型:SUV|轿车|MPV|跑车|越野车
use_caseJSON-NOT NULL-使用场景(数组):通勤|家庭|商务|越野|其他
fuel_typeVARCHAR50NOT NULL-燃料类型:燃油|电动|混动|不限
brandsJSON-NULL-品牌偏好(数组):大众|丰田|本田|比亚迪|特斯拉|宝马|奔驰|奥迪等
descriptionTEXT-NOT NULL-详细需求描述(至少10字符)
ai_modelENUM-NOT NULL-AI模型:qwen-通义千问, zhipu-智谱AI
resultJSON-NULL-AI咨询结果(JSON格式):{recommendation, analysis, budgetAdvice}
ratingTINYINT-NULL-用户评分:1-5星

索引信息
sql
PRIMARY KEY (id)
INDEX idx_user_id (user_id)
INDEX idx_ai_model (ai_model)
INDEX idx_car_type (car_type)
表配置

  • 存储引擎:InnoDB
  • 字符集:utf8mb4
  • 排序规则:utf8mb4_unicode_ci
  • 表注释:咨询记录表

3.4.3 表关系图

mermaid
erDiagram
users ||--o{ consultations : "一对多"
users {
bigint user_id PK
varchar username UK
varchar email UK
varchar phone UK
varchar password
varchar real_name
}
consultations {
bigint id PK
bigint user_id FK
varchar title
varchar budget
varchar car_type
json use_case
varchar fuel_type
json brands
text description
enum ai_model
json result
tinyint rating
}

4. 程序截图说明

4.1 Spring Boot 后端应用程序​ 正在启动和运行的日志信息

img

img

4.2 部分程序说明

img

img

4.2.1 用户注册并发控制

img

4.2.2 ai接口实现

img

4.2.3 咨询部分接口实现

img

4.2.4 对用户详细信息进行分页查询

img

4.2.5 管理端接口

img

4.3 界面展示

  1. 用户注册

    img

    4.3.1 用户端

  1. 用户登陆

    img

  2. 首页概况

    img

  3. 新建咨询

    img

  4. 咨询历史

    img

  5. 个人设置

    img


6. 积分商城

img

4.3.2 管理端

  1. 数据概览

    img

  2. 咨询记录

    img

  3. 用户管理

    img

  4. 数据统计

    img

5. 附加功能实现

5.1 我们完成了咨询积分系统,用户完成咨询、提供反馈等行为获得积分的界面

积分商城界面展示

5.2 我们添加了管理员端

5.2.1. 管理端接口

img

5.2.2. 管理端界面展示

管理端界面展示

5.3 我们实现了高并发接口测试

解释:由于百万级需要的电脑性能实在太高,故我们完成了万级别的💦

img

img


这三个参数分别是线程数,每秒访问次数,循环次数

5.3.1 测试基本概况

使用JMeter对Spring Boot应用程序中的一个简单HTTP接口(GET /test)进行的性能压力测试。测试总共发起了超过28.5万次请求

5.3.2 接口性能表现

平均响应时间为25毫秒,请求能够被快速处理。更为关键的是,中位数响应时间(50%百分位)仅为19毫秒,这表明超过一半的请求都在20毫秒内完成,接口响应非常迅捷。

5.3.3 系统稳定性与吞吐量

从稳定性来看,所有请求均成功返回。此外,90%的请求响应时间在43毫秒以内,95%的请求在61毫秒以内,进一步证明了接口在绝大多数情况下都能提供稳定、快速的响应。结合请求总数,可以推断出该接口具备很高的吞吐量,能够持续稳定地处理大量并发请求。

6. 组员职责分工

6.1 贡献度

昵称个人成果(70)工作态度(30)
任务完成度(35)成果质量(30)贡献独特性(5)参与度(15)协作性(10)实效性(5)
102300306352841285
102300234352841285
102300310352841285
102300318352741285
102300320352841385
10230032135241285
102300326352841385
102300333352641285

6.2 团队成员分工

学号工作内容贡献度
102300306分布任务、画用例图、类图、撰写博客14
102300234完成前端相关任务、辅助部署14
102300326完成部署、辅助测试等相关任务14
102300318完成整体后端开发14.5
102300320完成压力测试14
102300321辅助后端开发9.5
102300333辅助7
102300310完成压力测试整体构建13

6.3 团队成员遇到的困难

1. 102300326(部署+数据库)

困难类型具体描述解决方法成长收获
数据模型复杂购车咨询业务逻辑复杂,实体关系难以梳理1. 多次需求沟通;2. 原型验证;3. 分阶段设计提升复杂业务建模能力
性能优化挑战大量咨询数据查询性能瓶颈1. 索引优化;2. 分表策略;3. 缓存机制掌握高性能数据库设计
数据一致性用户咨询与AI结果的数据同步问题1. 事务管理;2. 数据校验;3. 回滚机制增强数据一致性意识

2. 102300318(后端)

困难类型具体描述解决方法成长收获
AI接口集成通义千问API调用不稳定,响应慢1. 重试机制;2. 熔断降级;3. 异步处理掌握第三方服务集成技巧
并发处理多用户同时咨询时的性能压力1. 线程池优化;2. 消息队列;3. 负载均衡提升高并发系统设计能力
数据安全用户隐私数据保护要求高1. 数据加密;2. 权限控制;3. 安全审计强化安全意识和技术

3.102300234(前端)

困难类型具体描述解决方法成长收获
交互复杂度购车咨询流程多步骤交互复杂1. 状态管理;2. 步骤拆分;3. 用户体验测试提升复杂交互设计能力
响应式适配多终端设备兼容性挑战1. 移动优先;2. 弹性布局;3. 多设备测试掌握响应式开发技能
性能优化页面加载速度慢,用户体验差1. 代码分割;2. 懒加载;3. 缓存策略优化前端性能的能力

4. 102300320(测试)

困难类型具体描述解决方法成长收获
测试覆盖度AI推荐结果难以全面测试1. 场景覆盖;2. 边界测试;3. 用户行为模拟提升测试用例设计能力
性能基准系统性能指标难以确定1. 压力测试;2. 竞品对比;3. 用户调研建立科学的性能评估体系
自动化测试界面变化导致自动化脚本失效1. 元素定位优化;2. 页面对象模式;3. 持续集成掌握自动化测试维护

5. 102300321(用户体验)

困难类型具体描述解决方法成长收获
需求表达实际需求难以准确传达给开发1. 场景描述;2. 痛点分析;3. 原型反馈提升需求表达能力
功能理解技术功能与用户体验存在差距1. 使用培训;2. 功能演示;3. 问题记录加深对产品理解深度
反馈有效性反馈意见难以量化评估1. 问题分级;2. 影响评估;3. 优先级排序提高问题分析能力

6. 102300306(产品经理)

困难类型具体描述解决方法成长收获
需求优先级多方需求冲突,优先级难确定1. 价值评估;2. 用户调研;3. 数据支撑提升需求管理能力
技术可行性产品创意与技术实现存在差距1. 技术预研;2. 原型验证;3. 迭代开发增强技术理解能力
进度管控多角色协作进度难以同步1. 敏捷管理;2. 定期同步;3. 风险预警掌握项目管理技能

7. 102300310(UI)

困难类型具体描述解决方法成长收获
设计一致性多页面风格统一性挑战1. 设计系统;2. 组件库;3. 设计评审建立系统化设计能力
技术实现设计效果与开发实现存在差距1. 技术沟通;2. 设计走查;3. 适配方案提升技术协作能力
用户体验界面美观与实用性的平衡1. 用户测试;2. A/B测试;3. 数据反馈深化用户体验理解

8. 102300333(运维)

困难类型具体描述解决方法成长收获
环境稳定性生产环境频繁出现异常1. 监控告警;2. 自动恢复;3. 容量规划提升系统稳定性保障
部署效率多版本部署流程复杂1. 自动化部署;2. 蓝绿发布;3. 回滚机制掌握高效部署策略
安全防护系统面临多种安全威胁1. 安全扫描;2. 漏洞修复;3. 应急响应增强安全运维能力

7. PSP表格

1. 102300306

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
需求分析23+1业务需求理解与数据建模
概念设计34+1E-R图设计与实体关系分析
逻辑设计45+1表结构设计与规范化
物理设计23+1索引优化与性能设计
评审修改21-1团队评审与方案调整
文档编写23+1数据库设计文档编写
合计1519+4-

2. 102300234

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
技术选型110Vue3+Element Plus选型
环境搭建220前端工程化配置
UI设计43-1界面布局与组件设计
页面开发1210-2咨询页面功能实现
交互逻辑68+2用户交互与数据绑定
兼容性测试34+1多浏览器兼容测试
性能优化220打包优化与缓存策略
合计30300-

3. 102300326

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
市场调研46+2竞品分析与市场需求
产品规划34+1产品路线图制定
需求文档68+2PRD文档编写
原型设计45+1产品原型设计
需求评审32-1需求评审会议
项目跟进45+1项目进度跟踪
合计2430+6-

4. 102300310

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
风格定位34+1设计风格确定
视觉设计810+2界面视觉设计
交互设计65-1交互动效设计
设计规范34+1设计系统建立
切图标注23+1开发资源输出
设计评审21-1设计稿评审
合计2427+3-

5. 102300320

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
测试计划23+1测试策略与计划制定
用例设计45+1功能测试用例编写
功能测试810+2系统功能全面测试
性能测试34+1压力测试与性能分析
安全测试23+1安全漏洞检测
缺陷管理32-1Bug跟踪与回归测试
测试报告23+1测试报告编写
合计2430+6-

6. 102300321

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
需求调研23+1用户需求收集与分析
原型评审34+1产品原型体验反馈
功能体验68+2系统功能体验测试
可用性测试45+1用户体验评估
问题反馈23+1问题记录与反馈
验收测试32-1最终验收确认
合计2025+5-

7. 102300333

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
环境规划23+1服务器环境规划
部署脚本45+1自动化部署脚本
监控配置34+1系统监控告警配置
安全配置32-1安全策略配置
备份策略23+1数据备份方案
性能调优45+1系统性能优化
合计1821+3-

8. 102300318

PSP阶段预估时间(h)实际时间(h)时间差(h)说明
技术选型12+1Spring Boot框架选型
环境搭建23+1开发环境配置
API设计34+1RESTful接口设计
业务逻辑810+2核心业务代码实现
AI集成46+2通义千问API集成
单元测试32-1服务层单元测试
性能优化23+1数据库连接池优化
合计2330+7-

img

...全文
52 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

112

社区成员

发帖
与我相关
我的任务
社区描述
202501福大-软件工程实践-W班
软件工程团队开发结对编程 高校 福建省·福州市
社区管理员
  • 202501福大-软件工程实践-W班
  • 离离原上羊羊吃大草
  • MiraiZz2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧