qiangdanxitong/DEVELOPMENT_GUIDE.md

419 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DesignHub 开发启动指南
## 📋 目录
- [环境准备](#环境准备)
- [项目初始化](#项目初始化)
- [数据库配置](#数据库配置)
- [后端启动](#后端启动)
- [前端启动](#前端启动)
- [开发规范](#开发规范)
- [常见问题](#常见问题)
## 🛠️ 环境准备
### 必备软件
确保您的开发环境已安装以下软件:
| 软件 | 版本要求 | 说明 |
|------|---------|------|
| Java | >= 17 | 后端运行环境 |
| Node.js | >= 18.0 | 前端运行环境 |
| MySQL | >= 8.0 | 数据库 |
| Redis | >= 7.0 | 缓存服务(可选,开发阶段可不启用) |
| Maven | >= 3.8 | Java构建工具 |
| Git | 最新版本 | 版本控制 |
### 推荐开发工具
- **后端开发**: IntelliJ IDEA / Eclipse
- **前端开发**: VS Code
- **数据库管理**: Navicat / DBeaver / MySQL Workbench
- **API测试**: Postman / Apifox
- **Redis管理**: RedisInsight / Another Redis Desktop Manager
## 🚀 项目初始化
### 1. 克隆项目(如果从远程仓库)
```bash
git clone <repository-url>
cd qiangdanxitong
```
### 2. 项目结构说明
```
qiangdanxitong/
├── frontend/ # 前端项目(Vue 3)
├── backend/ # 后端项目(Spring Boot)
├── database/ # 数据库脚本
├── docs/ # 文档
├── PROJECT_REQUIREMENTS.md # 需求文档
└── README.md # 项目说明
```
## 💾 数据库配置
### 1. 创建数据库
使用 MySQL 客户端或管理工具执行以下命令:
```bash
# 方式1:使用命令行
mysql -u root -p < database/schema.sql
mysql -u root -p < database/init-data.sql
# 方式2:使用 MySQL 客户端
mysql -u root -p
source /Users/lanmu/Desktop/qiangdanxitong/database/schema.sql;
source /Users/lanmu/Desktop/qiangdanxitong/database/init-data.sql;
```
### 2. 验证数据库
```sql
-- 登录MySQL
mysql -u root -p
-- 切换到designhub数据库
USE designhub;
-- 查看所有表
SHOW TABLES;
-- 查看部门数据
SELECT * FROM sys_dept;
-- 查看任务类型
SELECT * FROM task_type;
```
### 3. 配置数据库连接
编辑 `backend/src/main/resources/application-dev.yml`:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/designhub?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 你的MySQL密码
```
## 🔧 后端启动
### 方式1:使用IDE启动(推荐)
1. 用 IntelliJ IDEA 打开 `backend` 目录
2. 等待 Maven 自动下载依赖
3. 找到 `DesignHubApplication.java` 主类
4. 右键 -> Run 'DesignHubApplication'
### 方式2:使用命令行启动
```bash
cd backend
# 首次启动需要先编译
mvn clean install
# 启动应用
mvn spring-boot:run
# 或者直接运行jar包
java -jar target/designhub-backend-1.0.0.jar
```
### 验证后端启动
启动成功后,访问以下地址:
- **API文档**: http://localhost:8080/api/doc.html
- **健康检查**: http://localhost:8080/api/actuator/health(如果配置了actuator)
控制台应该输出:
```
╔═══════════════════════════════════════════════════════╗
║ ║
║ 🎨 DesignHub Backend Service Started 🎨 ║
║ ║
║ Port: 8080 ║
║ Swagger UI: http://localhost:8080/api/doc.html ║
║ Version: 1.0.0 ║
║ ║
╚═══════════════════════════════════════════════════════╝
```
## 🎨 前端启动
### 1. 安装依赖
```bash
cd frontend
# 使用npm
npm install
# 或使用pnpm(推荐,更快)
pnpm install
# 或使用yarn
yarn install
```
### 2. 启动开发服务器
```bash
# 使用npm
npm run dev
# 使用pnpm
pnpm dev
# 使用yarn
yarn dev
```
### 3. 访问前端
浏览器自动打开或手动访问:
- **开发地址**: http://localhost:3000
控制台应该输出:
```
VITE v5.0.0 ready in 500 ms
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
➜ press h + enter to show help
```
## 📝 开发规范
### Git提交规范
使用 Conventional Commits 规范:
```bash
# 功能开发
git commit -m "feat: 添加任务大厅页面"
# Bug修复
git commit -m "fix: 修复任务列表显示问题"
# 文档更新
git commit -m "docs: 更新README文档"
# 样式调整
git commit -m "style: 调整按钮样式"
# 代码重构
git commit -m "refactor: 重构任务服务层代码"
# 性能优化
git commit -m "perf: 优化数据库查询性能"
# 测试相关
git commit -m "test: 添加任务模块单元测试"
```
### 分支策略
```
main/master -> 生产环境分支
develop -> 开发分支
feature/* -> 功能分支
hotfix/* -> 紧急修复分支
release/* -> 发布分支
```
### 代码风格
#### 前端(TypeScript/Vue)
- 使用 ESLint + Prettier 格式化代码
- 组件命名使用 PascalCase
- 文件命名使用 kebab-case
- 使用 Composition API
```bash
# 格式化代码
npm run format
# 检查代码
npm run lint
```
#### 后端(Java/Spring Boot)
- 遵循 阿里巴巴 Java 开发手册
- 类名使用 PascalCase
- 方法名使用 camelCase
- 常量使用 UPPER_SNAKE_CASE
## 🔍 常见问题
### Q1: 后端启动失败,提示数据库连接错误
**A**: 检查以下几点:
1. MySQL 是否已启动
2. 数据库密码是否正确配置在 `application-dev.yml`
3. 数据库 `designhub` 是否已创建
4. 数据库端口是否为 3306
### Q2: 前端启动后页面空白
**A**:
1. 检查浏览器控制台是否有报错
2. 确认后端API是否正常运行(访问 http://localhost:8080/api/doc.html)
3. 检查前端代理配置(vite.config.ts)
### Q3: Maven 依赖下载缓慢
**A**: 配置国内Maven镜像(阿里云)
编辑 `~/.m2/settings.xml`:
```xml
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
```
### Q4: npm 安装依赖失败
**A**: 切换npm镜像源
```bash
# 临时使用淘宝镜像
npm install --registry=https://registry.npmmirror.com
# 永久设置
npm config set registry https://registry.npmmirror.com
# 使用 nrm 管理镜像源(推荐)
npm install -g nrm
nrm use taobao
```
### Q5: 钉钉登录如何配置
**A**:
1. 登录钉钉开放平台 https://open.dingtalk.com
2. 创建应用,获取 AppKey 和 AppSecret
3. 配置到 `application.yml` 的 `dingtalk` 部分
4. 配置回调地址和权限
```yaml
dingtalk:
app-key: your-app-key
app-secret: your-app-secret
agent-id: your-agent-id
corp-id: your-corp-id
```
### Q6: Redis 连接失败
**A**: 开发阶段可以暂时禁用 Redis
在 `application-dev.yml` 中注释掉 Redis 配置,或确保 Redis 已启动:
```bash
# 启动 Redis(Mac)
brew services start redis
# 启动 Redis(Linux)
redis-server
# 启动 Redis(Windows)
redis-server.exe
# 测试连接
redis-cli ping
# 应该返回 PONG
```
## 📚 下一步
### 开发优先级
1. ✅ **基础架构** - 已完成
- 项目结构
- 数据库设计
- 前后端框架搭建
2. 🔄 **核心功能开发** - 进行中
- [ ] 用户认证模块(Casdoor + 钉钉登录)
- [ ] 任务管理模块
- [ ] 积分管理模块
- [ ] 通知系统
3. ⏳ **进阶功能** - 待开发
- [ ] 激励系统
- [ ] 数据分析
- [ ] 管理后台
### 推荐开发顺序
```
1. 用户认证 → 2. 组织架构 → 3. 任务发起 → 4. 任务大厅 →
5. 我的任务 → 6. 设计师大厅 → 7. 积分系统 → 8. 数据分析 →
9. 激励系统 → 10. 系统配置 → 11. 通知系统
```
## 🤝 团队协作
### 每日开发流程
1. **早上**:拉取最新代码
```bash
git checkout develop
git pull origin develop
```
2. **开发**:创建功能分支
```bash
git checkout -b feature/task-hall
# 编码...
git add .
git commit -m "feat: 完成任务大厅页面"
```
3. **提交**:推送到远程并创建PR
```bash
git push origin feature/task-hall
# 在 GitLab/GitHub 创建 Merge Request / Pull Request
```
4. **审查**:代码审查通过后合并到 develop
### 代码审查清单
- [ ] 代码符合规范
- [ ] 没有明显的 bug
- [ ] 功能完整
- [ ] 已添加必要的注释
- [ ] 通过单元测试
- [ ] UI 符合 OpenAI 设计规范
## 📞 技术支持
如有问题,请联系:
- **技术负责人**: [姓名] - [邮箱]
- **项目文档**: PROJECT_REQUIREMENTS.md
- **API文档**: http://localhost:8080/api/doc.html
---
**祝开发愉快!** 🎉