{"id":18345857,"url":"https://github.com/hyperf/okr","last_synced_at":"2025-04-06T08:32:27.090Z","repository":{"id":53733580,"uuid":"346322718","full_name":"hyperf/okr","owner":"hyperf","description":"实战项目 - OKR系统","archived":false,"fork":false,"pushed_at":"2021-07-13T02:02:43.000Z","size":78,"stargazers_count":10,"open_issues_count":3,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2023-04-10T18:06:22.608Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-10T10:50:49.000Z","updated_at":"2022-08-17T10:10:10.000Z","dependencies_parsed_at":"2022-09-16T19:00:44.994Z","dependency_job_id":null,"html_url":"https://github.com/hyperf/okr","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperf%2Fokr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperf%2Fokr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperf%2Fokr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperf%2Fokr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperf","download_url":"https://codeload.github.com/hyperf/okr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223245061,"owners_count":17112572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T21:09:45.848Z","updated_at":"2024-11-05T21:09:46.446Z","avatar_url":"https://github.com/hyperf.png","language":"PHP","readme":"# OKR系统\n\n这是一个多人协作的实战项目，旨在邀请初学 `Hyperf` 的开发者进行开发，多人 `Review` 的项目。\n\n## 开发规则\n\n- 如何加入\n\n想要加入开发的同学，可以在 `Issue` 中沟通需求，由管理员指定开发者。\n开发时，必须拉一个特定分支进行开发（不能使用 main 分支），开发完毕后提交 PR 到主仓，由大家共同 review 后，管理员合并代码。\n\n- 数据库字段修改\n\n使用 Migration 进行数据库字段迁移，小版本修改直接修改当前文件，开发者直接 `fresh` 进行重置。大版本更替，则创建新的 Migration 文件，保证大版本数据库字段一致性。\n\n- 单元测试\n\n每一个功能的增加和修改，必须配备对应的单元测试。\n\n- 提交代码尽量配备博客\n\n每次合并代码后，尽量编写与其对应的文章，发表到 Discussion 模块中\n\n- 使用 RESTful API\n\n[RESTful API](http://www.ruanyifeng.com/blog/2014/05/restful_api.html)\n\n    - GET（SELECT）：从服务器取出资源（一项或多项）。\n    - POST（CREATE）：在服务器新建一个资源。\n    - PUT（UPDATE）：在服务器更新资源（客户端提供改变后的完整资源）。\n    - PATCH（UPDATE）：在服务器更新资源（客户端提供改变的属性）。\n    - DELETE（DELETE）：从服务器删除资源。\n\n示例\n\n    - GET /zoos：列出所有动物园\n    - POST /zoos：新建一个动物园\n    - GET /zoos/ID：获取某个指定动物园的信息\n    - PUT /zoos/ID：更新某个指定动物园的信息（提供该动物园的全部信息）\n    - PATCH /zoos/ID：更新某个指定动物园的信息（提供该动物园的部分信息）\n    - DELETE /zoos/ID：删除某个动物园\n    - GET /zoos/ID/animals：列出某个指定动物园的所有动物\n    - DELETE /zoos/ID/animals/ID：删除某个指定动物园的指定动物\n\n## 接口列表\n\n### 接口结构\n\n| 字段名  | 类型    | 默认值 | 备注     |\n| ------- | ------- | ------ | -------- |\n| code    | Integer | 0      | 0成功    |\n| data    | Mixed   | null   | 数据集合 |\n| message | String  | null   | 错误信息 |\n\n### 用户模块\n\n- 发送注册验证码\n\nPOST /user/send-code\n\n入参\n\n| 字段名 | 类型   | 默认值 | 备注 |\n| ------ | ------ | ------ | ---- |\n| name   | String | 无     | 邮箱 |\n\n- 用户注册\n\nPOST /user/register\n\n入参\n\n| 字段名   | 类型    | 默认值 | 备注                    |\n| -------- | ------- | ------ | ----------------------- |\n| name     | String  | 无     | 邮箱                    |\n| username | String  | 无     | 登录名，不填则默认邮箱  |\n| nickname | String  | 无     | 昵称                    |\n| password | String  | 无     | 密码，前端需要 MD5 处理 |\n| gender   | Integer | 无     | 性别 1男 2女            |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperf%2Fokr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperf%2Fokr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperf%2Fokr/lists"}