本次 assignment 是完成一个纯前端的 React + Typescript 版本 todo Web App
需求说明请查看 需求说明.md
- React + Typescript
- 组件内部状态管理使用 React Hooks (不要求像 Step8 的 assignment 一样使用 context)
特别提醒:
本次 assignment 无需录制编码过程视频,请在编码完成后录制 15 分钟以内的讲解视频
讲解视频可包括:
- 简要介绍 tasking 结果
- 介绍代码结构,实现思路
- 请在建议的完成时间内提交,提交时请确保录屏也已完成;
- 通过金数据表单提交 assignment,提交成功后会收到系统通知;
- 批改 assignment 会使用提交时间点所对应的版本,请务必在确认无误后再进行提交;
- 获取录屏的具体方式请写在 RECORDING.md 文件中,确保 buddy/coach 能够访问;
- 本次 assignment 录屏时长在 15 分钟以内;
- 因为录屏时间有限,无法体现编码过程,buddy 只能通过 commit 和代码来判断大家是否按照 TDD 实现需求,所以大家一定要做好小步提交
Buddy 会根据以下指导规则对大家本次的 assignment 进行评级。
- 无法满足 Level-1 的所有要求时,则为 Level-0。
- 在录屏的开始展示并简要介绍 tasking 结果
- 正确通过 npm 安装依赖,启动前端服务和 json-server
- 至少完成 list、add 功能
- 符合技术实现要求一节所列要求
- 小步提交
- 正确使用 React 状态管理,数据流,生命周期
- 完成所有要求的功能:list、add、update、delete
- 有组件测试,单元测试
- 明确的体现出了频繁的 “快速实现” 和 “重构” 两个阶段的交替过程
- 组件测试,JS单元测试覆盖 case 较全,且测试 case 得到有效验证
- 代码基本符合 Clean Code 要求
npm install
请执行如下代码运行网站并打开页面:
npm dev
之后在浏览器中访问:http://localhost:1234
npm run server
启动 json server 后可以,可以使用以下 API
- 获取 tasks 数据:
URL: 'http://localhost:8080/tasks'
Method: GET
Response status: 200
Response body 示例: [{id: 1, name: 'xx', completed: false}, {id: 2, name: 'xx', completed: false}]
- 创建 task:
URL: 'http://localhost:8080/tasks'
Method: POST
Request body 示例: {name: 'xx', completed: false}
Response status: 201
Response body 示例: {id: 1, name: 'xx', completed: false}
- 删除指定 id 的 task:
URL: 'http://localhost:8080/tasks/${id}'
Method: DELETE,
Response status: 204
Response body 示例: {}
- 修改指定 id 的 task:
URL: 'http://localhost:8080/tasks/${id}'
Method: PUT,
Request body 示例: {name: 'xx', completed: false}
Response status: 200
Response body 示例: {id: 1, name: 'xx', completed: false}
npm run lint
npm run format
cd docker && docker-compose up -d
cd server && ts-node-esm server.ts