你说的都队——CodeArts团队实战总结

你说的都队 2025-11-12 23:42:50
项目内容
这个作业属于哪个课程202501 福大-软件工程实践-w 班
这个作业要求在哪里CodeArts 团队实战总结
这个作业的目标完成一个基于大语言模型的购车意向咨询软件

目录

  • 1.项目地址(仓库地址、访问地址等相关地址)
  • 1.1 华为云仓库地址:
  • 1.2 前端代码仓库:
  • 1.3 后端代码仓库:
  • 2.commit记录展示
  • 2.1 前端代码commit记录(共22次)
  • 2.2 后端代码commit记录(共44次)
  • 3.程序运行环境
  • 3.1 项目简介
  • 3.2 技术栈
  • 3.3 环境要求
  • 3.4 快速启动
  • 3.4.1 本地部署
  • 3.5 配置文件说明
  • 3.5.1 配置项说明
  • 3.6 README文件
  • 3.6.1 后端README
  • 3.6.2 前端README
  • 4.功能实现思路描述
  • 4.1​ 数据访问层(DAL) - 数据持久化核心 ​
  • 4.2​ 业务服务层(Service) - 业务逻辑中枢 ​
  • 4.3​ 控制层(Handler) - 请求响应协调器 ​
  • 4.4​ 模型层(Model) - 数据结构标准化 ​
  • 4.5​ 接口定义层(IDL) - 跨语言契约 ​
  • 4.6 总结:
  • 5.程序截图说明
  • 6.成员分工和贡献比例
  • 7.合作中遇到的困难及解决方法
  • 8.PSP表格

1.项目地址(仓库地址、访问地址等相关地址)

1.1 华为云仓库地址:

https://devcloud.cn-north-4.huaweicloud.com/codehub/project/6ce5be36caa249b18b64ba3cb30ad2b9/codehub/3023991/home?ref=main
https://devcloud.cn-north-4.huaweicloud.com/codehub/project/6ce5be36caa249b18b64ba3cb30ad2b9/codehub/3023984/home?ref=main

1.2 前端代码仓库:

https://github.com/Atteris-aterues/AIBuyCar2

1.3 后端代码仓库:

https://github.com/2451965602/BuyCar

2.commit记录展示

2.1 前端代码commit记录(共22次)

img


img

2.2 后端代码commit记录(共44次)

img


img


img

3.程序运行环境

3.1 项目简介

本项目采用 CloudWeGo 生态的 Hertz 框架开发,提供高性能的 HTTP 服务。项目集成了 MySQL、JWT 认证、AI 咨询等功能模块,为用户提供汽车购买咨询、评分、用户管理等一站式服务。

3.2 技术栈

  • CloudWeGo Hertz - 高性能 HTTP 框架,用于构建 API 服务
  • MySQL - 关系型数据库,用于存储结构化数据
  • GORM - ORM 框架,用于简化数据库操作
  • JWT - JSON Web Token,用于用户认证和授权
  • Viper - 配置管理工具,用于读取和管理应用配置
  • OpenAI API - AI 智能咨询服务

3.3 环境要求

  • Go 1.25.4+
  • MySQL 5.7+
  • Docker & Docker Compose (可选)

3.4 快速启动

3.4.1 本地部署

1.克隆项目

git clone https://github.com/2451965602/BuyCar.git
cd BuyCar

2.安装依赖

go mod tidy

3.配置数据库

(1)创建配置文件:

cp config/config.example.yaml config/config.yaml

(2)修改 config/config.yaml 中的数据库连接信息:

mysql:
  addr: "localhost:3306"
  database: "buycar"
  username: "root"
  password: "your_password"
  charset: "utf8mb4"

4.初始化数据库

(1)创建数据库:

CREATE DATABASE buycar CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

5.启动服务

go run main.go

服务将在配置的地址和端口上启动(默认配置请查看 config/config.yaml)。

3.5 配置文件说明

项目配置文件使用 YAML 格式,位于 config/config.yaml

3.5.1 配置项说明

# 数据库配置
mysql:
  addr: "localhost:3306"        # MySQL 服务器地址
  database: "buycar"             # 数据库名称
  username: "root"               # 数据库用户名
  password: "password"           # 数据库密码
  charset: "utf8mb4"             # 字符集

# 服务器配置
server:
  addr: "0.0.0.0"                # 监听地址
  port: 8080                     # 监听端口

# AI 服务配置
aiEndpoint:
  url: "https://api.openai.com"  # AI API 地址
  apiKey: "your-api-key"         # API 密钥
  model: "gpt-3.5-turbo"         # 使用的模型

3.6 README文件

3.6.1 后端README

README.md 5.89K

3.6.2 前端README

README.md 267B

4.功能实现思路描述

4.1​ 数据访问层(DAL) - 数据持久化核心 ​

​db/admin.go​ - 管理员专属数据操作
ListAllConsults(): 全量咨询记录检索(支持分页)
AdminCreateUser(): 安全用户创建(密码自动哈希加密)
DeleteUserByUserID(): 级联删除用户及相关数据
ListAllFeedbacks(): 反馈信息聚合查询
​db/model.go​ - 数据模型管理层
定义六大核心实体:用户、咨询、反馈、积分流水、礼品、兑换记录
提供标准化模型转换:ToModuleStruct()实现 DB 模型 → 业务模型映射

4.2​ 业务服务层(Service) - 业务逻辑中枢 ​

​service/admin.go​ - 管理员业务流程封装
QueryAllConsults(): 咨询数据格式化+业务规则校验
AdminAddUser(): 完整用户创建流水线(验证 → 加密 → 持久化)
AdminDeleteUser(): 安全删除机制(事务性数据清理)
QueryFeedbackAnalysis(): 反馈数据智能分析聚合
​service/service.go​ - 通用服务工具库
上下文管理:GetUidFormContext()统一用户身份提取
数据类型安全转换:convertToInt64()防御性编程支持

4.3​ 控制层(Handler) - 请求响应协调器 ​

​handler/admin/admin_service.go​ - API 端点管理
四维管理接口:咨询查询、用户管理、数据删除、反馈分析
统一异常处理:参数验证 → 业务执行 → 响应封装全链路管理

4.4​ 模型层(Model) - 数据结构标准化 ​

​model/admin/​​ - 管理员专属 DTO
请求/响应模型严格分层:Req/Resp 对象独立定义
类型安全:Thrift 协议级接口约束
​model/module/​​ - 核心业务实体
基础响应模型:BaseResp 统一响应格式
业务对象模型:用户、咨询等核心数据结构定义

4.5​ 接口定义层(IDL) - 跨语言契约 ​

​idl/admin.thrift​ - 服务接口规范
RESTful 路由映射:HTTP 路径与方法绑定
严格类型约束:参数列表、返回值类型协议级定义

4.6 总结:

这次完成的功能如下

4.6.1用户管理:
用户注册与登录
JWT 认证与授权
用户信息管理
用户反馈功能

4.6.2 购买咨询:
AI 智能购车咨询
咨询记录管理
个性化推荐

4.6.3 评分系统:
用户评分功能
评分统计与分析

4.6.4 管理员功能:
后台管理
数据审核
权限管理

5.程序截图说明

5.1 主界面

img

5.2 登录界面

img

5.3 注册界面

img

6.成员分工和贡献比例

学号工作内容贡献度
102300219 林腾岳用户登录模块17%
102300409 严晨峰管理员相关模块和 thrift13%
052301346 郑积超购车咨询模块13%
102300325 陶斯予博客以及 PPT 制作2%
102300233 朱奕韬界面设计,ui14%
102300226 徐江山界面设计,ui14%
102300218 林柏林界面设计,ui14%
102300033 林嘉乐管理员相关模块和博客13%

7.合作中遇到的困难及解决方法

7.1 严晨峰
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| Thrift接口定义与Go代码生成不匹配|在定义admin.thrift文件时,接口参数类型与Go结构体字段类型不一致,导致代码生成失败 |统一IDL与Go的数据类型映射规范,使用明确的类型标注,重新生成代码前进行语法验证 |

7.2 林腾岳
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 代码质量规范执行困难|​多人协作时代码风格不统一,质量检查流程缺失 |集成相关代码检查工具,代码审查强制质量要求 |

7.3 林嘉乐
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 用户权限验证中间件开发|需要区分管理员与普通用户接口访问权限,防止越权操作 |设计JWT token验证中间件,在路由层进行权限拦截,通过token解析获取用户角色信息 |

7.4 郑积超
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 错误处理机制统一|各层错误信息格式不统一,前端难以进行标准化错误处理 |建立全局错误码体系,定义统一的错误响应结构,通过中间件捕获和转换异常 |

7.5 朱奕韬
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 用户体验一致性保障|​不同浏览器和设备兼容性问题影响用户体验 |建立跨浏览器测试流程,采用响应式设计原则,实现前端组件标准化开发|

7.6 徐江山
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 前后端API参数传递方式不一致|前端使用JSON Body传参,后端期望Query参数,导致参数解析失败|统一采用JSON Body传参规范,在Hertz框架中使用相应方法进行参数绑定 |

7.7 林柏林
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| Hertz框架路由配置冲突|多个管理员接口路径相似,导致路由匹配错误,如/api/admin/user和/api/admin/user/delete冲突 |采用明确的RESTful路径设计,使用不同的HTTP方法区分操作,增加路由优先级配置 |

7.8 陶斯予
| 困难 | 具体描述 | 解决方法 |
| :--------------- | :---------------------- | :----- |
| 错误处理机制统一|各层错误信息格式不统一,前端难以进行标准化错误处理|建立全局错误码体系,定义统一的错误响应结构,通过中间件捕获和转换异常|

8.PSP表格

8.1 林腾岳(用户登录模块)

PSP阶段预估(h)实际(h)说明
Planning21.5登录流程设计+安全方案
Estimate10.8开发时间评估
Development1012登录接口+密码加密
Testing34登录测试+安全验证
Documentation11.2接口文档编写
总结改进11加密算法优化
合计1820.5

8.2 严晨峰(管理员模块和Thrift)

PSP阶段预估(h)实际(h)说明
Planning2.53Thrift接口设计+模块划分
Estimate11.2开发周期预估
Development1416Thrift代码生成+管理员功能
Testing45接口联调测试
Documentation22.5IDL文档+API说明
总结改进1.52协议优化
合计2529.7

8.3 郑积超(购车咨询模块)

PSP阶段预估(h)实际(h)说明
Planning1.51咨询流程设计
Estimate0.50.5时间预估
Development67咨询记录CRUD
Testing22.5功能测试
Documentation11模块文档
总结改进0.50.5查询优化
合计1112.5

8.4 陶斯予(博客及PPT制作)

PSP阶段预估(h)实际(h)说明
Planning21.5内容结构规划
Estimate0.50.5时间安排
Development810博客撰写+PPT设计
Testing23内容审核修改
Documentation34最终文档整理
总结改进11.5展示优化
合计16.521

8.5 朱奕韬(界面设计/UI)

PSP阶段预估(h)实际(h)说明
Planning32.5UI风格定位+组件库设计
Estimate11设计周期预估
Development1214界面原型+交互设计
Testing34用户体验测试
Documentation22设计规范文档
总结改进11.5视觉优化
合计2225

8.6 徐江山(界面设计/UI)

PSP阶段预估(h)实际(h)说明
Planning22页面布局规划
Estimate0.50.8时间评估
Development1012页面实现+响应式
Testing33.5兼容性测试
Documentation11.2UI文档
总结改进11布局优化
合计17.520.5

8.7 林柏林(界面设计/UI)

PSP阶段预估(h)实际(h)说明
Planning21.8交互流程设计
Estimate0.50.7开发预估
Development1113前端组件开发
Testing33.2功能测试
Documentation11.5组件文档
总结改进11.3交互优化
合计18.521.5

8.8 林嘉乐(管理员模块和博客)

PSP阶段预估(h)实际(h)说明
Planning1.51功能模块划分
Estimate0.50.5时间规划
Development78管理员功能辅助开发
Testing22.5模块测试
Documentation22.5博客内容补充
总结改进0.50.5代码优化
合计1314
...全文
40 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

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

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