Agora Flat 是我们团队最近做的一款在线互动教室,想分享给大家。
基于 MIT 协议,前后端代码完全开源,无任何限制,可以用来快速搭建简约美观的互动教室。
也可以免费、无限制的使用我们构建好的应用,在官网即可下载体验。
目前的功能包括但不限于:
- 微信登录、GitHub 登录
- 创建/加入房间、预定房间、预定周期性房间
- 在线云盘
- 小班课、大班课、一对一
- 视频、语音、聊天、在线白板(支持上传 ppt、doc、pdf,并且可保留 pptx 中的动画效果)
- 录制、回放
我们的技术选型:
前端:
- TypeScript
- React
- Mobx
- Storybook
- Electron
- yarn workspace
后端:
- TypeScript
- Fastify
- TypeORM
- MySQL
- Redis
Flat 作为我们团队在开源领域第一次尝试,我们有十分严格的 code review,我们做出了以下的努力:
- 每个 PR,必须由其他人进行仔细的 code review
- 为了保证代码风格,我们编写了相关的 eslint-plugin 进行约束
- 使用 husky、commitlint 对代码及 commit message 做校验
在开发过程中,我们也借鉴学习了很多开源社区的技术,并且我们给 helm-kubectl、axios、electron-devtools-installer、zh.mobx.js.org、Kubernetes Lens 等第三方库都贡献过代码。
我们在开发过程中也遇到了很多难点并最终攻克,包括 electron 多窗口、electron preload 加载、打包签名、公证、课程录制/回放、麦克风/摄像头授权、webpack 优化、 Kubernetes 部署等。
如果大家在开发其他应用时,遇到了相关的问题,那么 Flat 将会是一个很好的借鉴。
Flat 效果图:
说一下接下来的规划:
顺利的话 6 月底会推出全平台的 Flat,包括 Mac、Windows、Android、IOS、Web,Pad 也会在考虑之中。
除了全平台之外,一些功能也会在 Q2 一一实现:互动答题、全套快捷键、白板多窗口、支持常用插件(如 VS Code)、屏幕分享。
最后,大家可以前往 GitHub 查看前后端完整代码,欢迎大家 fork 和修改,实现出独特业务场景的产品。
如果大家有更好的想法和建议,可以添加我的微信:18860379049,我邀请你加入我们的开源交友群,大家的交流与想法最终都会转化成开源代码。
标签:#Agora Flat #在线课堂 #开源教室 #互动白板 #互动课堂 #实时互动 #在线教育