团队初始工作成果:
- UI设计:登录页低保真原型 + 设计规范 - 架构:技术方案文档 - 前端:初始化项目结构和依赖 - 后端:初始化项目结构和API设计 - 测试:测试计划和用例
This commit is contained in:
parent
6a8913f9bc
commit
3474a7b67e
52
architecture/technical.md
Normal file
52
architecture/technical.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# 技术方案
|
||||||
|
|
||||||
|
## 技术选型
|
||||||
|
|
||||||
|
### 前端
|
||||||
|
- Electron 28+
|
||||||
|
- React 18
|
||||||
|
- TypeScript 5
|
||||||
|
- Zustand (状态管理)
|
||||||
|
- Ant Design 5
|
||||||
|
- electron-builder (打包)
|
||||||
|
|
||||||
|
### 后端
|
||||||
|
- Node.js 20+
|
||||||
|
- Express 4
|
||||||
|
- SQLite3 (本地) / MySQL (云端)
|
||||||
|
- JWT (认证)
|
||||||
|
- Multer (文件上传)
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
clouddisk-project/
|
||||||
|
├── frontend/ # Electron 前端
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── main/ # 主进程
|
||||||
|
│ │ ├── renderer/ # 渲染进程
|
||||||
|
│ │ ├── components/
|
||||||
|
│ │ ├── pages/
|
||||||
|
│ │ └── stores/
|
||||||
|
│ └── package.json
|
||||||
|
│
|
||||||
|
├── backend/ # Node.js 后端
|
||||||
|
│ ├── src/
|
||||||
|
│ │ ├── controllers/
|
||||||
|
│ │ ├── models/
|
||||||
|
│ │ ├── routes/
|
||||||
|
│ │ ├── middleware/
|
||||||
|
│ │ └── utils/
|
||||||
|
│ └── package.json
|
||||||
|
│
|
||||||
|
└── tests/ # 测试代码
|
||||||
|
├── frontend/
|
||||||
|
├── backend/
|
||||||
|
└── e2e/
|
||||||
|
```
|
||||||
|
|
||||||
|
## 安全方案
|
||||||
|
1. HTTPS 传输加密
|
||||||
|
2. JWT Token 认证
|
||||||
|
3. 文件哈希校验
|
||||||
|
4. 分享链接过期机制
|
||||||
20
backend/README.md
Normal file
20
backend/README.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# CloudDisk Backend
|
||||||
|
|
||||||
|
## 开发指南
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动
|
||||||
|
```bash
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### API 端点
|
||||||
|
- POST /api/auth/login
|
||||||
|
- POST /api/auth/register
|
||||||
|
- GET /api/files
|
||||||
|
- POST /api/files/upload
|
||||||
|
- DELETE /api/files/:id
|
||||||
23
backend/package.json
Normal file
23
backend/package.json
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "clouddisk-backend",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "CloudDisk Node.js Backend",
|
||||||
|
"main": "src/index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "node src/index.js",
|
||||||
|
"dev": "nodemon src/index.js",
|
||||||
|
"test": "jest"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.18.0",
|
||||||
|
"sqlite3": "^5.1.0",
|
||||||
|
"jsonwebtoken": "^9.0.0",
|
||||||
|
"multer": "^1.4.5",
|
||||||
|
"bcrypt": "^5.1.0",
|
||||||
|
"cors": "^2.8.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"nodemon": "^3.0.0",
|
||||||
|
"jest": "^29.7.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
18
frontend/README.md
Normal file
18
frontend/README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# CloudDisk Frontend
|
||||||
|
|
||||||
|
## 开发指南
|
||||||
|
|
||||||
|
### 安装
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### 开发模式
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### 构建
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
22
frontend/package.json
Normal file
22
frontend/package.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "clouddisk-frontend",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "CloudDisk Electron Frontend",
|
||||||
|
"main": "dist/main/index.js",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "electron .",
|
||||||
|
"build": "electron-builder",
|
||||||
|
"test": "jest"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0",
|
||||||
|
"zustand": "^4.4.0",
|
||||||
|
"antd": "^5.12.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"electron": "^28.0.0",
|
||||||
|
"electron-builder": "^24.9.0",
|
||||||
|
"typescript": "^5.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
36
tests/README.md
Normal file
36
tests/README.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# CloudDisk 测试计划
|
||||||
|
|
||||||
|
## 测试策略
|
||||||
|
|
||||||
|
### 1. 单元测试
|
||||||
|
- 前端: Jest + React Testing Library
|
||||||
|
- 后端: Jest
|
||||||
|
|
||||||
|
### 2. 集成测试
|
||||||
|
- API 测试: Supertest
|
||||||
|
|
||||||
|
### 3. E2E 测试
|
||||||
|
- Playwright
|
||||||
|
|
||||||
|
## 测试用例
|
||||||
|
|
||||||
|
### 登录模块
|
||||||
|
- [ ] 正确账号密码登录成功
|
||||||
|
- [ ] 错误密码登录失败
|
||||||
|
- [ ] 空账号登录提示错误
|
||||||
|
|
||||||
|
### 文件管理
|
||||||
|
- [ ] 文件上传成功
|
||||||
|
- [ ] 文件下载成功
|
||||||
|
- [ ] 文件删除成功
|
||||||
|
- [ ] 文件夹创建成功
|
||||||
|
|
||||||
|
### 分享功能
|
||||||
|
- [ ] 生成分享链接
|
||||||
|
- [ ] 通过分享链接访问
|
||||||
|
- [ ] 密码保护分享
|
||||||
|
|
||||||
|
## 运行测试
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
19
ui-design/designs/colors.md
Normal file
19
ui-design/designs/colors.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# 设计规范 - 色彩系统
|
||||||
|
|
||||||
|
## 主色调
|
||||||
|
- 主色: #1890FF (蓝色)
|
||||||
|
- 主色悬停: #40A9FF
|
||||||
|
- 主色按下: #096DD9
|
||||||
|
|
||||||
|
## 中性色
|
||||||
|
- 背景色: #FFFFFF
|
||||||
|
- 背景色(深): #F5F5F5
|
||||||
|
- 边框色: #D9D9D9
|
||||||
|
- 文字主色: #262626
|
||||||
|
- 文字次色: #8C8C8C
|
||||||
|
|
||||||
|
## 功能色
|
||||||
|
- 成功: #52C41A
|
||||||
|
- 警告: #FAAD14
|
||||||
|
- 错误: #FF4D4F
|
||||||
|
- 信息: #1890FF
|
||||||
24
ui-design/mockups/login-page.md
Normal file
24
ui-design/mockups/login-page.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# 登录页 - 低保真原型
|
||||||
|
|
||||||
|
## 页面布局
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────┐
|
||||||
|
│ │
|
||||||
|
│ [Logo] CloudDisk │
|
||||||
|
│ │
|
||||||
|
│ 用户名: [____________] │
|
||||||
|
│ 密码: [____________] │
|
||||||
|
│ │
|
||||||
|
│ [ ] 记住密码 │
|
||||||
|
│ │
|
||||||
|
│ [ 登录 ] [ 注册 ] │
|
||||||
|
│ │
|
||||||
|
│ 登录即表示同意服务条款 │
|
||||||
|
└─────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## 交互说明
|
||||||
|
- 输入框获得焦点时,显示蓝色边框
|
||||||
|
- 登录按钮点击后,显示加载状态
|
||||||
|
- 错误信息显示在表单底部,红色文字
|
||||||
|
- 60秒无操作返回登录页
|
||||||
Loading…
Reference in New Issue
Block a user