贡献指南
感谢您考虑为蝉印诊所管家做出贡献!本指南将帮助您了解如何参与项目开发。
🎯 贡献方式
我们欢迎以下形式的贡献:
- 🐛 报告 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 系统! 🎉