Agora Flat:开源、可定制的在线互动教室

1,422 阅读2分钟

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 效果图:

Flat.gif

首页

云盘

大班课

说一下接下来的规划:

顺利的话 6 月底会推出全平台的 Flat,包括 Mac、Windows、Android、IOS、Web,Pad 也会在考虑之中。

除了全平台之外,一些功能也会在 Q2 一一实现:互动答题、全套快捷键、白板多窗口、支持常用插件(如 VS Code)、屏幕分享

场景插件

最后,大家可以前往 GitHub 查看前后端完整代码,欢迎大家 fork 和修改,实现出独特业务场景的产品。

如果大家有更好的想法和建议,可以添加我的微信:18860379049,我邀请你加入我们的开源交友群,大家的交流与想法最终都会转化成开源代码。

标签:#Agora Flat #在线课堂 #开源教室 #互动白板 #互动课堂 #实时互动 #在线教育