[开源] 前后端全部开源的在线互动教室

2021-04-29 17:21:57 +08:00
 BlackHole1

我们是声网旗下的白板团队,几年来一直致力于为在线教育公司提供稳定且优质的白板服务,包括灵活可定制化的 API 、基于信令的白板云录制与回放、自研动态 PPT 以及简单易用的白板综合体验。

我们从 2020 年 8 月开始去做这个项目,集成了我们自己的 agora 音视频 sdk在线白板 sdk 。目前我们起名为: Flat

我们基于 MIT 协议,前后端代码完全开源,无任何限制。

目前的功能包括但不限于:

  1. 微信登陆
  2. 预订房间、预约周期性房间
  3. 在线云盘
  4. 小班课、大班课、一对一
  5. 视频、语音、聊天、在线白板(支持 pptx 、doc 、pdf 等静态资源渲染,包括 pptx 动画)
  6. 回放

目前仅支持: Windows / macOSAndroid / iOS 正在开发中(预计 6 月底就会上线), Pad 也会在考虑之中

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

我们的技术选型:

前端

  1. TypeScript
  2. React
  3. Mobx
  4. Storybook
  5. Electron
  6. yarn workspace

后端

  1. TypeScript
  2. Fastify
  3. TypeORM
  4. MySQL
  5. Redis

Flat 作为我们团队在开源领域第一次正式尝试,我们有十分严格的 code review ,我们做出了以下的努力:

  1. 每个 PR,必须由其他人进行仔细的 code review
  2. 为了保证代码风格,我们编写了相关的 eslint-plugin 进行约束
  3. 使用 husky / commitlint代码commit message 做校验

在开发过程中,我们也借鉴学习了很多开源社区的技术,并且我们给 helm-kubectlaxioselectron-devtools-installerzh.mobx.js.orgKubernetes Lens 等第三方库都贡献过代码。

我们在开发过程中也遇到了很多难点并最终攻克,包括 electron 多窗口 / electron preload 加载 / 打包签名 / 公证 / 课程录制 /回放 / 麦克风 /摄像头授权 / webpack 优化 / Kubernetes 部署 等。

如果大家在开发其他应用时,遇到了相关的问题,那么 Flat 将会是一个很好的借鉴。

效果图:

gif 可移步查看: https://i.imgur.com/fScd7eF.gif


6078 次点击
所在节点    分享创造
42 条回复
tomyail
2021-04-29 18:02:10 +08:00
大佬威武,特意登个账号给你点赞
simple233
2021-04-29 18:04:32 +08:00
大佬强啊!
lzuntalented
2021-04-29 18:05:35 +08:00
强,手动点赞
Leooe1
2021-04-29 18:07:25 +08:00
大佬牛皮呀,可以拿来给妹妹在线辅导用~
Ruohua3kou
2021-04-29 21:51:09 +08:00
支持一波,学习下代码~
superliwei
2021-04-29 23:14:50 +08:00
声网的服务非常适合我的应用,可惜对于刚创业的我来说太贵
你们做得挺好的,加油!
labulaka521
2021-04-30 00:28:34 +08:00
牛逼
pC0oc4EbCSsJUy4W
2021-04-30 00:51:21 +08:00
看着不错啊
SauerkrautFish
2021-04-30 01:30:14 +08:00
黑洞师傅带带我
phithon
2021-04-30 01:39:59 +08:00
看起来不错。我去官网注册了个账号,结果新手指引都没过去,enableVideo()那一步浏览器弹不出视频和麦克风权限的框,不知为何……最新 chrome
BlackHole1
2021-04-30 07:48:06 +08:00
@phithon 是不是 chrome flags 里 disable 了摄像头和麦克风的权限,或者可以看下 mac 设置里是不是没有给 chrome 权限。你也可以用 火狐尝试下。一般来说 agora 官网注册后的新手指引用的是 agora-web-sdk 。有兴趣的话可以看下其他的端的 sdk
dwzfuck
2021-04-30 09:39:05 +08:00
要是后端改用 go 写的是不是部署更爽了~
BlackHole1
2021-04-30 09:50:48 +08:00
@dwzfuck 刚开始的时候也是上 golang 的,但是目前 golang 社区没有一个能够稳定的 socket.io 实现,所以当时又迁移到 nodejs 了。不过最近我们已经移除了 Websocket 的代码,所以后续我们是有计划上 golang 的
Jinxxxx
2021-04-30 09:58:07 +08:00
厉害了
SenLief
2021-04-30 10:19:35 +08:00
厉害厉害,不过大批量用估计也是小型培训机构,带宽服务器太贵了,自建还不如直接用服务了。
BlackHole1
2021-04-30 10:23:28 +08:00
@SenLief 是的,如果要自建,可以使用 agora 、白板的免费额度(各 10000 分 /月),再配合阿里云的动态扩容等,小型的机构其实每个月开销会非常低
HFX3389
2021-04-30 10:24:17 +08:00
纯开源吗?不做多一些功能的商业版吗?
这样运营一个大型开源项目压力不会很大吗....
keepcleargas
2021-04-30 10:32:00 +08:00
有用 但贵
BlackHole1
2021-04-30 10:33:05 +08:00
@HFX3389 纯开源,商业版的话,目前我们的想法暂时是私有部署等。至于盈利压力的话,其实还好(可以说压根没有),我们目前并没有任何关于盈利的指标,所有的指标就是完善这个开源项目。其他的都是次要的。

当然我们组正在招人,如果有朋友想来尝试一下的话,也十分欢迎。其他组或者地区也可以~

JD: https://app.mokahr.com/recommendation-apply/agora/4790?containerType=workwechat&goto=recommendations#/job/9e1f7eac-339e-47e6-8b1a-c62e0d409797

我的邮箱: 158blackhole#gmail.com
BlackHole1
2021-04-30 10:35:33 +08:00
@keepcleargas 目前 flat 可以无限制的免费使用,可能就是要自建的时候,可能会有一些开销,而且这样的开销这对于公司层面应该还好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774158

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX