262 lines
6.5 KiB
Markdown
262 lines
6.5 KiB
Markdown
# 硬件性能对比平台
|
||
|
||
一个专业的硬件性能数据对比平台,提供CPU、GPU等硬件的性能排名、详细参数对比和性能趋势分析。
|
||
|
||
## 项目概述
|
||
|
||
本平台旨在为用户提供全面、准确的硬件性能数据,帮助用户在选择硬件时做出明智决策。平台集成了多个权威数据源,提供实时更新的性能数据和排名信息。
|
||
|
||
### 主要功能
|
||
|
||
- 🏆 **硬件性能排名**:提供各类硬件的性能排名和评分
|
||
- 📊 **详细参数对比**:支持2-4个产品的详细参数对比
|
||
- 🔍 **智能搜索筛选**:按品牌、性能分数、发布年份等条件筛选
|
||
- 📈 **性能趋势分析**:展示硬件性能的历史变化趋势
|
||
- 📱 **响应式设计**:完美适配桌面端和移动端
|
||
- 🔒 **数据安全保障**:采用多种安全措施保护用户数据
|
||
|
||
## 技术架构
|
||
|
||
### 后端技术栈
|
||
|
||
- **.NET 9.0**:最新的.NET平台,提供高性能和丰富的功能
|
||
- **Entity Framework Core**:ORM框架,用于数据库操作
|
||
- **MySQL**:关系型数据库,存储产品数据和性能指标
|
||
- **Hangfire**:后台任务调度框架,用于定时数据采集
|
||
- **AutoMapper**:对象映射框架,简化DTO转换
|
||
- **Serilog**:结构化日志框架
|
||
- **FluentValidation**:输入验证框架
|
||
|
||
### 前端技术栈
|
||
|
||
- **Vue 3**:渐进式JavaScript框架
|
||
- **Vite**:现代化的前端构建工具
|
||
- **Vue Router**:Vue.js官方路由管理器
|
||
- **Pinia**:Vue状态管理库
|
||
- **Element Plus**:基于Vue 3的桌面端UI组件库
|
||
- **Vant**:移动端UI组件库
|
||
- **ECharts**:数据可视化图表库
|
||
- **Axios**:HTTP客户端,用于API请求
|
||
- **TailwindCSS**:实用优先的CSS框架
|
||
|
||
### 测试与质量保证
|
||
|
||
- **Vitest**:基于Vite的单元测试框架
|
||
- **Playwright**:端到端测试框架
|
||
- **ESLint**:代码质量检查工具
|
||
- **Prettier**:代码格式化工具
|
||
- **TypeScript**:JavaScript的超集,提供静态类型检查
|
||
- **Husky**:Git hooks管理工具
|
||
|
||
### 部署与运维
|
||
|
||
- **Docker**:容器化部署
|
||
- **GitHub Actions**:持续集成和持续部署
|
||
- **Nginx**:反向代理和静态文件服务
|
||
- **Redis**:缓存和会话存储
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
hardware-performance-platform/
|
||
├── backend/ # 后端项目
|
||
│ ├── src/
|
||
│ │ ├── API/ # API控制器
|
||
│ │ ├── Application/ # 应用服务层
|
||
│ │ ├── Core/ # 核心业务逻辑
|
||
│ │ └── Infrastructure/ # 基础设施层
|
||
│ ├── tests/ # 后端测试
|
||
│ └── ... # 其他后端文件
|
||
├── frontend/ # 前端项目
|
||
│ ├── src/
|
||
│ │ ├── components/ # Vue组件
|
||
│ │ ├── views/ # 页面视图
|
||
│ │ ├── stores/ # Pinia状态管理
|
||
│ │ ├── services/ # API服务
|
||
│ │ ├── utils/ # 工具函数
|
||
│ │ └── assets/ # 静态资源
|
||
│ ├── tests/ # 前端测试
|
||
│ ├── docs/ # 前端文档
|
||
│ └── ... # 其他前端文件
|
||
├── docs/ # 项目文档
|
||
├── docker-compose.yml # Docker编排文件
|
||
└── README.md # 项目说明文档
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- Node.js 18.x 或更高版本
|
||
- .NET 9.0 SDK
|
||
- MySQL 8.0 或更高版本
|
||
- Redis 6.0 或更高版本(可选,用于缓存)
|
||
- Docker 和 Docker Compose(推荐)
|
||
|
||
### 使用Docker Compose部署(推荐)
|
||
|
||
1. 克隆项目
|
||
```bash
|
||
git clone https://github.com/your-username/hardware-performance-platform.git
|
||
cd hardware-performance-platform
|
||
```
|
||
|
||
2. 启动所有服务
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
3. 访问应用
|
||
- 前端应用:http://localhost:3000
|
||
- 后端API:http://localhost:7001
|
||
- Hangfire Dashboard:http://localhost:7001/hangfire
|
||
|
||
### 本地开发环境设置
|
||
|
||
#### 后端设置
|
||
|
||
1. 进入后端目录
|
||
```bash
|
||
cd backend
|
||
```
|
||
|
||
2. 还原NuGet包
|
||
```bash
|
||
dotnet restore
|
||
```
|
||
|
||
3. 配置数据库连接
|
||
```bash
|
||
cp appsettings.json appsettings.Development.json
|
||
# 编辑appsettings.Development.json,配置数据库连接字符串
|
||
```
|
||
|
||
4. 运行数据库迁移
|
||
```bash
|
||
dotnet ef database update
|
||
```
|
||
|
||
5. 启动后端服务
|
||
```bash
|
||
dotnet run
|
||
```
|
||
|
||
#### 前端设置
|
||
|
||
1. 进入前端目录
|
||
```bash
|
||
cd frontend
|
||
```
|
||
|
||
2. 安装依赖
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
3. 配置环境变量
|
||
```bash
|
||
cp .env.example .env.local
|
||
# 编辑.env.local,配置API地址等环境变量
|
||
```
|
||
|
||
4. 启动前端服务
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
## 数据来源
|
||
|
||
平台从以下权威数据源采集硬件性能数据:
|
||
|
||
- **GeekBench**:CPU和GPU性能基准测试
|
||
- **3DMark**:图形性能测试
|
||
- **AnTuTu**:移动设备综合性能测试
|
||
- **GFXBench**:图形性能测试
|
||
|
||
数据采集任务每天自动运行,确保数据的时效性和准确性。
|
||
|
||
## API文档
|
||
|
||
后端API使用Swagger/OpenAPI生成文档,启动后端服务后可访问:
|
||
|
||
- Swagger UI:http://localhost:7001/swagger
|
||
- OpenAPI规范:http://localhost:7001/swagger/v1/swagger.json
|
||
|
||
## 测试
|
||
|
||
### 运行后端测试
|
||
|
||
```bash
|
||
cd backend
|
||
dotnet test
|
||
```
|
||
|
||
### 运行前端测试
|
||
|
||
```bash
|
||
cd frontend
|
||
|
||
# 运行所有测试
|
||
npm test
|
||
|
||
# 运行单元测试
|
||
npm run test:unit
|
||
|
||
# 运行E2E测试
|
||
npm run test:e2e
|
||
|
||
# 生成测试覆盖率报告
|
||
npm run test:unit:coverage
|
||
```
|
||
|
||
### 代码质量检查
|
||
|
||
```bash
|
||
cd frontend
|
||
|
||
# 运行ESLint检查
|
||
npm run lint
|
||
|
||
# 格式化代码
|
||
npm run format
|
||
|
||
# 生成代码质量报告
|
||
npm run quality-report
|
||
```
|
||
|
||
## 贡献指南
|
||
|
||
我们欢迎任何形式的贡献,包括但不限于:
|
||
|
||
- 🐛 报告Bug
|
||
- 💡 提出新功能建议
|
||
- 📝 改进文档
|
||
- 🔧 提交代码修复
|
||
|
||
请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详细的贡献流程。
|
||
|
||
## 许可证
|
||
|
||
本项目采用 [MIT 许可证](LICENSE)。
|
||
|
||
## 联系我们
|
||
|
||
- 项目主页:https://github.com/your-username/hardware-performance-platform
|
||
- 问题反馈:https://github.com/your-username/hardware-performance-platform/issues
|
||
- 邮箱:contact@hardware-performance.com
|
||
|
||
## 致谢
|
||
|
||
感谢以下开源项目和数据提供商:
|
||
|
||
- [Vue.js](https://vuejs.org/)
|
||
- [.NET](https://dotnet.microsoft.com/)
|
||
- [Element Plus](https://element-plus.org/)
|
||
- [ECharts](https://echarts.apache.org/)
|
||
- [GeekBench](https://www.geekbench.com/)
|
||
- [3DMark](https://www.3dmark.com/)
|
||
- [AnTuTu](https://www.antutu.com/)
|
||
|
||
---
|
||
|
||
⭐ 如果这个项目对你有帮助,请给我们一个星标! |