贡献指南
感谢您考虑为蝉印诊所管家做出贡献!本指南将帮助您了解如何参与项目开发。
🎯 贡献方式
我们欢迎以下形式的贡献:
- 🐛 报告Bug
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 修复Bug
- ✨ 开发新功能
- 🎨 优化UI/UX
- ⚡ 性能优化
- ✅ 添加测试
📋 开始之前
行为准则
请阅读并遵守我们的行为准则。我们致力于营造一个友好、包容的社区环境。
技术要求
确保您的开发环境满足以下要求:
- PHP: 8.4+
- Composer: 2.x
- Node.js: 18.x LTS 或 20.x LTS
- npm: 9.x+
- MySQL: 8.0+
- Redis: 7.0+
- Git: 2.30+
🚀 快速开始
1. Fork 仓库
点击页面右上角的 "Fork" 按钮,将仓库fork到您的账号下。
2. 克隆仓库
bash
# 克隆您fork的仓库
git clone https://github.com/YOUR_USERNAME/yiliaocrm-api.git
# 或使用Gitee
git clone https://gitee.com/YOUR_USERNAME/yiliaocrm-api.git
# 进入项目目录
cd yiliaocrm-api3. 添加上游仓库
bash
# 添加原始仓库为上游
git remote add upstream https://github.com/yiliaocrm/api.git
# 验证远程仓库
git remote -v4. 安装依赖
bash
# 安装PHP依赖
composer install
# 安装前端依赖
npm install
# 复制环境配置
cp .env.example .env
# 生成应用密钥
php artisan key:generate
# 运行数据库迁移
php artisan migrate
# 启动开发服务器
php artisan serve🔀 工作流程
1. 创建分支
bash
# 更新主分支
git checkout main
git pull upstream main
# 创建功能分支
git checkout -b feature/your-feature-name
# 或修复bug分支
git checkout -b fix/bug-description2. 开发代码
- 遵循项目代码风格
- 编写清晰的注释
- 添加必要的测试
- 确保所有测试通过
3. 提交代码
bash
# 添加修改的文件
git add .
# 提交代码(使用规范的提交信息)
git commit -m "feat: 添加客户标签功能"
# 推送到您的fork仓库
git push origin feature/your-feature-name4. 创建 Pull Request
- 访问您的fork仓库页面
- 点击 "New Pull Request" 按钮
- 选择您的分支
- 填写PR标题和描述
- 提交PR
📝 提交信息规范
我们使用 Conventional Commits 规范:
<type>(<scope>): <subject>
<body>
<footer>Type 类型
- feat: 新功能
- fix: Bug修复
- docs: 文档更新
- style: 代码格式(不影响功能)
- refactor: 重构
- perf: 性能优化
- test: 测试相关
- chore: 构建/工具相关
示例
bash
# 新功能
git commit -m "feat(customer): 添加客户标签批量管理功能"
# Bug修复
git commit -m "fix(appointment): 修复预约时间冲突检测bug"
# 文档
git commit -m "docs(api): 更新客户管理API文档"
# 性能优化
git commit -m "perf(query): 优化客户列表查询性能"🧪 测试要求
运行测试
bash
# 运行所有测试
php artisan test
# 运行特定测试
php artisan test --filter CustomerTest
# 生成代码覆盖率报告
php artisan test --coverage测试要求
- 新功能必须包含单元测试
- 测试覆盖率不低于80%
- 所有测试必须通过
- 关键功能需要集成测试
🎨 代码风格
PHP 代码风格
我们使用 PSR-12 编码规范:
bash
# 检查代码风格
composer run lint
# 自动修复代码风格
composer run lint:fixJavaScript 代码风格
使用 ESLint 和 Prettier:
bash
# 检查代码风格
npm run lint
# 自动修复
npm run lint:fix📦 Pull Request 检查清单
提交PR前,请确保:
- [ ] 代码遵循项目规范
- [ ] 添加了必要的测试
- [ ] 所有测试通过
- [ ] 更新了相关文档
- [ ] 提交信息符合规范
- [ ] 没有合并冲突
- [ ] CI/CD检查通过
🔍 代码审查流程
- 提交PR: 您提交Pull Request
- 自动检查: CI/CD运行测试和代码检查
- 人工审查: 维护者审查您的代码
- 反馈改进: 根据反馈进行修改
- 批准合并: 审查通过后合并到主分支
审查时间
- 一般PR: 1-3个工作日
- 重要PR: 3-7个工作日
- 紧急修复: 24小时内
🐛 报告Bug
在提交Bug前
- 搜索现有Issues,确认是否已有人报告
- 确认问题可以复现
- 收集必要的信息
Bug报告模板
markdown
## Bug描述
简洁清晰地描述bug。
## 复现步骤
1. 进入 '...'
2. 点击 '....'
3. 滚动到 '....'
4. 看到错误
## 预期行为
描述您期望发生什么。
## 实际行为
描述实际发生了什么。
## 环境信息
- 操作系统: [e.g. Ubuntu 22.04]
- PHP版本: [e.g. 8.4.1]
- Laravel版本: [e.g. 12.0]
- 浏览器: [e.g. Chrome 120]
## 截图
如果适用,添加截图帮助解释问题。
## 附加信息
添加其他相关信息。💡 功能建议
建议模板
markdown
## 功能描述
清晰简洁地描述您希望的功能。
## 使用场景
描述这个功能的使用场景。
## 解决的问题
这个功能解决了什么问题?
## 替代方案
您是否考虑过其他替代方案?
## 附加信息
添加其他相关信息或设计草图。📚 文档贡献
文档同样重要!您可以:
- 修正拼写/语法错误
- 改进措辞和表达
- 添加示例代码
- 翻译文档
- 添加教程
文档仓库: yiliaocrm/docs
🏆 贡献者权益
认可
- 在贡献者列表中展示
- 获得社区徽章
- 优先体验新功能
成长
- 参与项目决策
- 提升技术能力
- 建立个人品牌
晋升路径
- 贡献者 (Contributor): 提交过PR
- 活跃贡献者 (Active Contributor): 持续贡献3个月+
- 协作者 (Collaborator): 获得写权限
- 维护者 (Maintainer): 核心团队成员
💬 获取帮助
如果您有任何问题:
- 💬 加入微信群
- 📧 发送邮件至 dev@yiliaocrm.com
- 💡 GitHub Discussions
- 🐛 提交Issue
📜 开源协议
本项目基于 MIT License 开源。
贡献代码即表示您同意将您的贡献按照MIT协议授权。
再次感谢您的贡献!让我们一起打造更好的医疗CRM系统! 🎉