feat: 第一次生成

This commit is contained in:
2025-05-04 20:37:40 +08:00
commit 5c01df4a93
42 changed files with 12705 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# Node
node_modules/
# TypeScript
*.tsbuildinfo
dist/
# Nuxt/前端
.nuxt/
output/
*.log
# VSCode/IDE
.vscode/
.idea/
.DS_Store
# Prisma
backend/prisma/dev.db
backend/prisma/dev.db-journal
# 其他
frontend/.output/
frontend/.vercel/
+78
View File
@@ -0,0 +1,78 @@
---
description: API接口相关规范
globs:
alwaysApply: false
---
# API接口规范
## 接口设计原则
1. 遵循 RESTful 设计规范
2. 使用 HTTPS 协议
3. 版本控制
4. 统一的响应格式
## 请求规范
### 请求方法
- GET: 获取资源
- POST: 创建资源
- PUT: 更新资源
- DELETE: 删除资源
### 请求头
```
Content-Type: application/json
Authorization: Bearer {token}
```
### 请求参数
1. GET 请求参数使用 query string
2. POST/PUT 请求参数使用 JSON 格式
3. 分页参数统一使用 page 和 pageSize
## 响应规范
### 响应格式
```json
{
"code": 0, // 状态码
"message": "success", // 状态信息
"data": { // 响应数据
// 具体数据
}
}
```
### 状态码
- 200: 成功
- 400: 请求参数错误
- 401: 未授权
- 403: 禁止访问
- 404: 资源不存在
- 500: 服务器错误
## 接口文档
1. 使用 OpenAPI (Swagger) 规范
2. 必须包含接口描述、参数说明、响应示例
3. 及时更新文档
## 错误处理
1. 统一的错误响应格式
2. 详细的错误信息
3. 错误码规范
## 安全规范
1. 所有接口必须进行身份验证
2. 敏感数据传输加密
3. 实现请求频率限制
4. 防止 SQL 注入和 XSS 攻击
## 缓存策略
1. 合理使用 HTTP 缓存头
2. 实现 ETag
3. 设置适当的缓存时间
## 性能优化
1. 接口响应时间控制
2. 数据压缩
3. 分页查询
4. 按需加载
+77
View File
@@ -0,0 +1,77 @@
---
description: 后端开发规范
globs:
alwaysApply: false
---
# 后端开发规范
## 技术栈
- Express.js (TypeScript模式)
- TypeScript
- Prisma (ORM)
- Redis
- MySQL 8.0
## 目录结构规范
```
backend/
├── src/
│ ├── controllers/ # 控制器
│ ├── services/ # 业务逻辑
│ ├── models/ # 数据模型
│ ├── middlewares/ # 中间件
│ ├── utils/ # 工具函数
│ ├── types/ # TypeScript类型定义
│ └── config/ # 配置文件
└── prisma/ # Prisma schema和迁移文件
```
## 代码规范
1. 使用 TypeScript 严格模式
2. 遵循 RESTful API 设计规范
3. 使用 async/await 处理异步操作
4. 统一的错误处理机制
## 数据库规范
1. 使用 Prisma 进行数据库操作
2. 所有数据库操作必须使用事务
3. 合理使用索引
4. 避免 N+1 查询问题
## 缓存策略
1. 使用 Redis 进行缓存
2. 缓存键命名规范:`{module}:{id}:{type}`
3. 设置合理的缓存过期时间
4. 实现缓存预热机制
## 错误处理
1. 统一的错误响应格式
2. 详细的错误日志记录
3. 区分业务错误和系统错误
4. 实现错误监控和告警
## 安全规范
1. 所有用户输入必须验证
2. 敏感数据加密存储
3. 实现请求频率限制
4. 使用 HTTPS
5. 实现 CORS 策略
## 日志规范
1. 使用 Winston 记录日志
2. 区分不同级别的日志
3. 记录关键操作日志
4. 实现日志轮转
## 测试规范
1. 单元测试覆盖率要求
2. 集成测试
3. API 测试
4. 性能测试
## 部署规范
1. 使用 Docker 容器化
2. 环境变量配置
3. 健康检查
4. 监控指标
+68
View File
@@ -0,0 +1,68 @@
---
description:
globs:
alwaysApply: false
---
# 数据库设计规范
## 数据库选型
- 主数据库:MySQL 8.0
- ORMPrisma
- 缓存:Redis
## 命名规范
1. 表名使用小写字母,下划线分隔
2. 字段名使用小写字母,下划线分隔
3. 主键统一命名为 id
4. 外键命名格式:{表名}_id
5. 索引命名格式:idx_{表名}_{字段名}
## 字段规范
1. 必须包含 id、created_at、updated_at 字段
2. 使用合适的数据类型
3. 字段必须添加注释
4. 设置合理的默认值
5. 使用 NOT NULL 约束
## 索引规范
1. 主键使用自增ID
2. 合理使用唯一索引
3. 避免过多索引
4. 考虑索引的选择性
## 表关系规范
1. 使用外键约束
2. 合理设计表关系
3. 避免过度规范化
4. 考虑查询性能
## 查询优化
1. 避免 SELECT *
2. 使用适当的索引
3. 避免大事务
4. 合理使用分页
## 数据安全
1. 敏感数据加密
2. 定期备份
3. 访问权限控制
4. 审计日志
## 性能优化
1. 表分区策略
2. 读写分离
3. 缓存策略
4. 定期维护
## 迁移规范
1. 使用 Prisma 迁移
2. 版本控制
3. 回滚机制
4. 测试验证
## 监控规范
1. 性能监控
2. 容量监控
3. 慢查询监控
4. 异常监控
+60
View File
@@ -0,0 +1,60 @@
---
description: 前端开发规范
globs:
alwaysApply: false
---
# 前端开发规范
## 技术栈
- Nuxt.js (TypeScript模式)
- Vue 3
- TypeScript
## 目录结构规范
```
frontend/
├── components/ # 可复用组件
├── pages/ # 页面组件
├── composables/ # 组合式函数
├── types/ # TypeScript类型定义
├── utils/ # 工具函数
└── assets/ # 静态资源
```
## 命名规范
1. 组件文件使用 PascalCase 命名
2. 工具函数和组合式函数使用 camelCase 命名
3. 类型定义使用 PascalCase 并以 Type 或 Interface 结尾
## 组件开发规范
1. 使用组合式API (Composition API)
2. 组件必须使用 TypeScript
3. Props 必须定义类型和默认值
4. 组件必须包含适当的注释说明
## 状态管理
1. 使用 Pinia 进行状态管理
2. 按功能模块划分 store
3. 避免在组件中直接修改 store 状态
## 样式规范
1. 使用 SCSS 预处理器
2. 遵循 BEM 命名规范
3. 优先使用 Tailwind CSS 工具类
## 性能优化
1. 组件按需加载
2. 合理使用缓存
3. 图片资源优化
4. 避免不必要的重渲染
## 错误处理
1. 统一的错误处理机制
2. 友好的错误提示
3. 网络请求错误处理
## 代码质量
1. 使用 ESLint 进行代码检查
2. 使用 Prettier 进行代码格式化
3. 提交前进行代码审查