103
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2501_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | 软工实践——CodeArts团队实战总结 |
| 团队名称 | 小衣酱 |
| 这个作业的目标 | 结合之前的大模型评测作业,做出一个基于大语言模型的购车意向咨询软件 |
| 其他参考文献 | 无 |
管理端网址:http://121.43.25.109/ 账号:admin 密码:admin123
总计22次提交。
| 人员 | 次数 |
|---|---|
| 102300412 林晨宇 | 10 |
| 102300406 叶芷 | 3 |
| 102300415 张伟健 | 6 |
| 102300312 何鑫涛 | 3 |




总计28次提交。
| 人员 | 次数 |
|---|---|
| 102300404 胡跃 | 11 |
| 102300413 林俊辉 | 3 |
| 102300414 李庆聪 | 5 |
| 102300403 朱茜茜 | 9 |




云服务器操作系统:Alibaba Cloud Linux 3.2104 LTS 64位
容器化部署:Docker version 26.1.3
Dockerfile如下:
# 构建阶段
FROM node:16-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 生产阶段
FROM nginx:stable-alpine
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
运行脚本如下:
# 构建镜像
docker build -t car-consult-admin .
# 运行容器
docker run -d -p 8080:80 --name admin-app car-consult-admin
通过 Vue 3 + Element Plus 实现管理端的响应式设计,确保在PC、平板等不同尺寸设备上均有良好的视觉效果和操作体验。
el-row, el-col)进行页面布局在平台上实现积分获取与兑换机制,鼓励用户参与购车咨询。

通过科学的身份验证机制确保用户账号安全。


智能购车咨询功能的核心技术实现。




管理员模块的数据管理与统计分析功能。


本次压力测试旨在验证系统在高并发场景下的性能表现,包括响应时间、吞吐量、错误率等关键指标。测试采用JMeter对核心咨询接口进行压力测试,并使用Apifox对管理端全套接口进行自动化性能测试,确保系统稳定性和可靠性。
如下图所示,右击“测试计划”→“添加”→“线程(用户)”→“线程组”来创建测试线程组。

配置线程组以模拟并发用户:

右击“线程组”→“添加”→“配置元件”→“HTTP请求默认值”

设置基础请求参数:

右击“线程组”→“添加”→“取样器”→“HTTP请求”,配置具体接口:

{
"budgetMin": 200000,
"budgetMax": 300000,
"preferredType": "轿车",
"usageScenario": "城市通勤+周末自驾",
"fuelType": "纯电",
"brandPreference": "小鹏",
"otherRequirements": "希望支持智能驾驶和超充",
"aiModel": "zhipu"
}

右击“线程组”→“添加”→“配置元件”→“HTTP信息头管理器”,设置请求头:

右击“线程组”→“添加”→“监听器”→“聚合报告”和“查看结果树”,用于收集性能指标和调试失败请求。

submit_consultation_stress.jmx



JMeter聚合报告显示以下关键指标:
查询数据库咨询回复表,确认5000条咨询记录全部成功生成,数据字段与请求参数一致。

对其他接口压力测试
操作与上面一致,这里直接放过程与结果
结果:




过程:


在Apifox中导入管理端接口配置。

创建自动化测试场景“car”,设置性能测试参数:

点击“运行”按钮开始性能测试,测试完成后生成详细报告。

Apifox性能测试报告显示以下总体指标:


点击“运行”按钮开始性能测试,测试完成后生成详细报告。

Apifox性能测试报告显示以下总体指标:


尽管测试结果出色,针对生产环境部署,建议以下优化措施:
/api/admin/statistics)引入Redis缓存,减少数据库查询压力。本次压力测试证实系统在当前架构下性能卓越,完全满足上线要求,为后续生产环境部署提供了可靠的数据支撑
系统的主要参与者包括用户和管理员。以下是系统的详细用例分析:

系统核心类及其关系如下:

系统采用前后端分离的微服务架构,确保可扩展性和维护性:
架构图示意:

以下是一些核心接口的详细说明:
用户认证接口
POST /api/user/register:用户注册,请求参数包括username、password、phone等。POST /api/user/login:用户登录,返回JWT Token。购车咨询接口
POST /api/consultation/submit:提交咨询请求,请求体示例:{
"budgetMin": 200000,
"budgetMax": 300000,
"preferredType": "SUV",
"usageScenario": "家庭",
"fuelType": "混动",
"brandPreference": "自主品牌"
}
积分管理接口
GET /api/points/info:获取用户积分信息。POST /api/points/exchange:兑换礼品,请求参数包括giftId。管理员接口
POST /api/admin/login:管理员登录。GET /api/admin/users:获取用户列表,支持分页和搜索。设计模式:适配器模式,允许无缝切换不同LLM提供商。
核心接口:
public interface LLMService {
ConsultationResult submitConsultation(ConsultationRequest request);
String getModelName();
boolean isAvailable();
}
实现类:AliBailianService:集成阿里百炼API,处理请求和响应解析。ZhipuAIService:集成智普AI API,支持异步调用。
错误处理:重试机制、超时控制、降级方案。
简洁专业的登录表单,包含用户名和密码输入框,系统标题"购车咨询系统管理后台"清晰显示,登录按钮具有悬停效果。

数据可视化仪表板,采用卡片式布局,关键指标一目了然:总用户数、今日咨询量、活跃用户等,ECharts图表展示用户增长趋势。

表格化用户数据展示,支持分页浏览,搜索框支持按用户名、手机号快速筛选,操作列提供查看、编辑、删除等功能按钮。

咨询记录表格,支持多条件复合查询,筛选条件包括时间范围、用户ID、车型偏好等,每条记录可展开查看详细咨询内容。

礼品列表网格布局,图片文字结合,礼品状态管理(上架/下架),库存管理和积分定价设置。
积分管理

礼品兑换

移动端优化的登录注册表单,选项卡切换:登录/注册,手机号验证。


分步骤表单设计,降低用户填写压力,智能表单验证和实时提示,预算范围选择器,车型偏好单选标签。



咨询结果卡片式布局,信息层次清晰,车型推荐列表,支持对比功能,关键指标突出显示。

个人中心采用经典个人主页布局,积分信息醒目展示,功能入口网格排列,积分商城商品瀑布流展示。


时间线式历史记录展示,快速搜索和筛选功能,记录卡片包含关键信息摘要,批量管理和导出选项。

积分账户概览面板,积分流水明细表格,兑换记录和状态跟踪。




| 学号 | 工作内容 | 贡献度 |
|---|---|---|
| 102300403朱茜茜 | 客户端界面原型设计(ai生成的页面即可,无需交互等) | 12.3 |
| 102300404胡跃 | 管理端前端 | 12.9 |
| 102300312何鑫涛 | 博客撰写 | 11.3 |
| 102300406叶芷 | 后端(用户模块) | 12.9 |
| 102300412林晨宇 | 客户端前端 | 13.0 |
| 102300413林俊辉 | 后端(咨询模块) | 13.0 |
| 102300414李庆聪 | 熟练压力测试以及生成对应报告 | 12.6 |
| 102300415张伟健 | 后端(积分模块、管理员模块) | 12 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 55 |
| • Estimate | • 估计这个任务需要多少时间 | 60 | 55 |
| Development | 开发 | 420 | 380 |
| • Analysis | • 需求分析(包括学习新技术) | 90 | 80 |
| • Design Spec | • 生成设计文档 | 80 | 70 |
| • Design Review | • 设计复审 | 40 | 35 |
| • Design | • 具体设计 | 120 | 110 |
| • Prototype | • 原型制作 | 90 | 85 |
| Reporting | 报告 | 60 | 55 |
| • Test Report | • 测试报告 | 30 | 25 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 15 | 15 |
| 合计 | 540 | 490 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 70 | 65 |
| • Estimate | • 估计这个任务需要多少时间 | 70 | 65 |
| Development | 开发 | 680 | 620 |
| • Analysis | • 需求分析(包括学习新技术) | 120 | 110 |
| • Design Spec | • 生成设计文档 | 80 | 75 |
| • Design Review | • 设计复审 | 40 | 35 |
| • Coding Standard | • 代码规范制定 | 30 | 25 |
| • Design | • 具体设计 | 90 | 85 |
| • Coding | • 具体编码 | 240 | 220 |
| • Code Review | • 代码复审 | 40 | 35 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 140 | 135 |
| Reporting | 报告 | 50 | 45 |
| • Test Report | • 测试报告 | 25 | 20 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 10 | 10 |
| 合计 | 800 | 730 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 50 | 45 |
| • Estimate | • 估计这个任务需要多少时间 | 50 | 45 |
| Development | 开发 | 480 | 440 |
| • Analysis | • 需求分析(包括学习新技术) | 80 | 75 |
| • Design Spec | • 生成设计文档 | 70 | 65 |
| • Design Review | • 设计复审 | 30 | 25 |
| • Documentation | • 文档编写 | 200 | 185 |
| • Review | • 文档复审 | 100 | 90 |
| Reporting | 报告 | 70 | 65 |
| • Test Report | • 测试报告 | 40 | 35 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 15 | 15 |
| 合计 | 600 | 550 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 60 | 55 |
| • Estimate | • 估计这个任务需要多少时间 | 60 | 55 |
| Development | 开发 | 520 | 480 |
| • Analysis | • 需求分析(包括学习新技术) | 80 | 75 |
| • Design Spec | • 生成设计文档 | 60 | 55 |
| • Design Review | • 设计复审 | 40 | 35 |
| • Coding Standard | • 代码规范制定 | 30 | 25 |
| • Design | • 具体设计 | 70 | 65 |
| • Coding | • 具体编码 | 180 | 165 |
| • Code Review | • 代码复审 | 40 | 35 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 120 | 110 |
| Reporting | 报告 | 50 | 45 |
| • Test Report | • 测试报告 | 25 | 20 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 10 | 10 |
| 合计 | 630 | 580 |
工作内容概述:负责Android客户端的前端开发,实现用户界面与后端API的交互,包括咨询功能、历史记录查看等。
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 80 | 75 |
| • Estimate | • 估计这个任务需要多少时间 | 80 | 75 |
| Development | 开发 | 720 | 680 |
| • Analysis | • 需求分析(包括学习新技术) | 100 | 95 |
| • Design Spec | • 生成设计文档 | 80 | 75 |
| • Design Review | • 设计复审 | 40 | 35 |
| • Coding Standard | • 代码规范制定 | 40 | 35 |
| • Design | • 具体设计 | 90 | 85 |
| • Coding | • 具体编码 | 300 | 285 |
| • Code Review | • 代码复审 | 50 | 45 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 120 | 115 |
| Reporting | 报告 | 60 | 55 |
| • Test Report | • 测试报告 | 30 | 25 |
| • Size Measurement | • 计算工作量 | 15 | 15 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 15 | 15 |
| 合计 | 860 | 810 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 70 | 65 |
| • Estimate | • 估计这个任务需要多少时间 | 70 | 65 |
| Development | 开发 | 780 | 740 |
| • Analysis | • 需求分析(包括学习新技术) | 120 | 115 |
| • Design Spec | • 生成设计文档 | 90 | 85 |
| • Design Review | • 设计复审 | 50 | 45 |
| • Coding Standard | • 代码规范制定 | 40 | 35 |
| • Design | • 具体设计 | 100 | 95 |
| • Coding | • 具体编码 | 320 | 305 |
| • Code Review | • 代码复审 | 60 | 55 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 160 | 150 |
| Reporting | 报告 | 70 | 65 |
| • Test Report | • 测试报告 | 35 | 30 |
| • Size Measurement | • 计算工作量 | 20 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 15 | 15 |
| 合计 | 920 | 870 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 90 | 85 |
| • Estimate | • 估计这个任务需要多少时间 | 90 | 85 |
| Development | 开发 | 660 | 620 |
| • Analysis | • 需求分析(包括学习新技术) | 120 | 115 |
| • Design Spec | • 生成设计文档 | 80 | 75 |
| • Design Review | • 设计复审 | 40 | 35 |
| • Coding Standard | • 代码规范制定 | 30 | 25 |
| • Design | • 具体设计 | 100 | 95 |
| • Coding | • 具体编码 | 200 | 185 |
| • Code Review | • 代码复审 | 50 | 45 |
| • Test | • 测试(测试脚本执行,数据分析) | 200 | 185 |
| Reporting | 报告 | 150 | 140 |
| • Test Report | • 测试报告 | 100 | 95 |
| • Size Measurement | • 计算工作量 | 25 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 25 | 25 |
| 合计 | 900 | 845 |
| PSP阶段 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 80 | 75 |
| • Estimate | • 估计这个任务需要多少时间 | 80 | 75 |
| Development | 开发 | 800 | 760 |
| • Analysis | • 需求分析(包括学习新技术) | 120 | 115 |
| • Design Spec | • 生成设计文档 | 90 | 85 |
| • Design Review | • 设计复审 | 50 | 45 |
| • Coding Standard | • 代码规范制定 | 40 | 35 |
| • Design | • 具体设计 | 100 | 95 |
| • Coding | • 具体编码 | 350 | 330 |
| • Code Review | • 代码复审 | 50 | 45 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 200 | 190 |
| Reporting | 报告 | 70 | 65 |
| • Test Report | • 测试报告 | 35 | 30 |
| • Size Measurement | • 计算工作量 | 20 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结,并提出过程改进计划 | 15 | 15 |
| 合计 | 950 | 900 |
# 上传Spring Boot应用JAR包到阿里云ECS
scp target/car-consultation-backend.jar root@your-ecs-ip:/opt/
# 启动应用
java -jar car-consultation-backend.jar --spring.profiles.active=prod
# 构建Vue3管理端
npm run build
# 上传到阿里云ECS Nginx目录
scp -r dist/* root@your-ecs-ip:/usr/share/nginx/html/
# 重启Nginx
systemctl restart nginx
llm:
alibaba:
api-key: ${ALIBABA_API_KEY}
model: qwen-plus
zhipu:
api-key: ${ZHIPU_API_KEY}
model: chatglm_turbo