# 贡献指南 感谢您对结伴客项目的关注!我们欢迎所有形式的贡献,包括但不限于代码、文档、测试、反馈和建议。 ## 🤝 如何贡献 ### 报告问题 如果您发现了bug或有功能建议,请: 1. 检查 [Issues](https://github.com/jiebanke/jiebanke/issues) 确认问题未被报告 2. 创建新的 Issue,详细描述问题或建议 3. 使用合适的标签标记 Issue ### 提交代码 我们使用 Git Flow 工作流程: 1. **Fork 项目** ```bash git clone https://github.com/your-username/jiebanke.git cd jiebanke ``` 2. **创建功能分支** ```bash git checkout -b feature/your-feature-name ``` 3. **开发和测试** - 遵循项目代码规范 - 编写必要的测试 - 确保所有测试通过 4. **提交代码** ```bash git add . git commit -m "feat: 添加新功能描述" git push origin feature/your-feature-name ``` 5. **创建 Pull Request** - 详细描述变更内容 - 关联相关的 Issue - 等待代码审查 ## 📝 开发规范 ### 代码风格 - **JavaScript/TypeScript**: 使用 ESLint + Prettier - **Vue**: 遵循 Vue 3 官方风格指南 - **CSS**: 使用 BEM 命名规范 - **文件命名**: 使用 kebab-case ### 提交消息规范 使用 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范: ``` <类型>[可选的作用域]: <描述> [可选的正文] [可选的脚注] ``` **类型说明:** - `feat`: 新功能 - `fix`: 修复bug - `docs`: 文档更新 - `style`: 代码格式调整 - `refactor`: 代码重构 - `test`: 测试相关 - `chore`: 构建过程或辅助工具的变动 **示例:** ``` feat(user): 添加用户头像上传功能 - 支持jpg、png格式 - 自动压缩和裁剪 - 添加上传进度显示 Closes #123 ``` ### 分支命名规范 - `feature/功能名称`: 新功能开发 - `bugfix/问题描述`: bug修复 - `hotfix/紧急修复`: 紧急修复 - `docs/文档更新`: 文档更新 ## 🧪 测试规范 ### 单元测试 - 使用 Jest 进行单元测试 - 测试覆盖率应达到 80% 以上 - 为核心业务逻辑编写测试 ### 集成测试 - 使用 Cypress 进行端到端测试 - 覆盖主要用户流程 - 确保跨浏览器兼容性 ### 测试命令 ```bash # 运行所有测试 npm test # 运行单元测试 npm run test:unit # 运行集成测试 npm run test:e2e # 生成测试覆盖率报告 npm run test:coverage ``` ## 🏗️ 项目结构 ### 后端 (backend/) ``` backend/ ├── src/ │ ├── controllers/ # 控制器 │ ├── models/ # 数据模型 │ ├── routes/ # 路由定义 │ ├── services/ # 业务逻辑 │ ├── middleware/ # 中间件 │ └── utils/ # 工具函数 ├── tests/ # 测试文件 └── docs/ # API文档 ``` ### 前端 (admin-system/) ``` admin-system/ ├── src/ │ ├── components/ # 公共组件 │ ├── pages/ # 页面组件 │ ├── stores/ # 状态管理 │ ├── api/ # API接口 │ ├── utils/ # 工具函数 │ └── styles/ # 样式文件 ├── tests/ # 测试文件 └── public/ # 静态资源 ``` ## 🔧 开发环境搭建 ### 环境要求 - Node.js 16.x+ - MySQL 8.0+ - Redis 6.x+ - Git 2.x+ ### 快速开始 1. **克隆项目** ```bash git clone https://github.com/jiebanke/jiebanke.git cd jiebanke ``` 2. **安装依赖** ```bash # 安装后端依赖 cd backend && npm install # 安装前端依赖 cd ../admin-system && npm install ``` 3. **配置环境变量** ```bash # 复制环境变量模板 cp backend/.env.example backend/.env cp admin-system/.env.example admin-system/.env ``` 4. **启动开发服务** ```bash # 启动后端服务 cd backend && npm run dev # 启动前端服务 (新终端) cd admin-system && npm run dev ``` ## 📋 代码审查清单 提交 Pull Request 前,请确认: ### 功能性 - [ ] 功能按预期工作 - [ ] 处理了边界情况 - [ ] 错误处理完善 - [ ] 性能表现良好 ### 代码质量 - [ ] 代码风格符合规范 - [ ] 变量和函数命名清晰 - [ ] 代码结构合理 - [ ] 避免重复代码 ### 测试 - [ ] 编写了必要的测试 - [ ] 所有测试通过 - [ ] 测试覆盖率达标 - [ ] 手动测试通过 ### 文档 - [ ] 更新了相关文档 - [ ] API文档保持同步 - [ ] 注释清晰准确 - [ ] README更新(如需要) ## 🎯 贡献领域 我们特别欢迎以下方面的贡献: ### 代码贡献 - 新功能开发 - Bug修复 - 性能优化 - 代码重构 ### 文档贡献 - API文档完善 - 使用指南编写 - 最佳实践分享 - 多语言翻译 ### 测试贡献 - 单元测试编写 - 集成测试完善 - 性能测试 - 安全测试 ### 设计贡献 - UI/UX设计优化 - 交互体验改进 - 视觉设计规范 - 无障碍访问支持 ## 🏆 贡献者认可 我们重视每一位贡献者的付出: - 贡献者将在项目README中被列出 - 重要贡献者将获得项目维护者权限 - 优秀贡献将在项目博客中专门介绍 - 定期举办贡献者聚会和技术分享 ## 📞 联系我们 如有任何问题,欢迎通过以下方式联系: - **GitHub Issues**: [项目Issues页面](https://github.com/jiebanke/jiebanke/issues) - **邮箱**: dev@jiebanke.com - **微信群**: 扫描README中的二维码加入 - **技术论坛**: [结伴客开发者社区](https://dev.jiebanke.com) ## 📜 行为准则 参与项目时,请遵守我们的[行为准则](CODE_OF_CONDUCT.md): - 尊重所有参与者 - 保持友好和专业 - 接受建设性批评 - 关注项目整体利益 - 遵守开源协议 --- 再次感谢您的贡献!让我们一起打造更好的结伴客项目! 🚀 *最后更新:2024年1月*