大家好,我是 Java陈序员

大学四年,疫情就占了三年!

以前小时候曾经梦想着不用去学校上课,在家就能上课,这不前几年疫情的时候就成为了现实!

随着互联网的兴起,各种线下的活动都可以搬到线上来执行,线上授课、线上会议等。

今天给大家介绍一个在线授课的开源项目,适用于老师授课或者视频会议

项目介绍

Flat 在线教室 —— 个人老师可直接使用的在线授课软件,开箱即用。

前后端完全开源,快速搭建简约美观的在线教室。

支持 Web 端、Windows 客户端与 macOS 客户端。

功能特性:

  • 实时交互:支持多功能互动白板、实时音视频(RTC)通讯、即时消息(RTM)聊天
  • 登录方式:支持微信、GitHub、手机号验证码登录
  • 房间管理:支持加入、创建、预定房间,支持周期性房间
  • 课堂录制回放:支持白板信令回放、音视频云录制回放、群聊信令回放
  • 多媒体课件云盘
  • 屏幕共享

技术栈:

  • Electron
  • React
  • Vite
  • Node.js

Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。

Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。

功能体验

登录页面,可以使用手机号验证码、微信、Github账号登录。

首页页面,展示房间列表和历史记录。可以加入一个创建好的房间,或者快速开始创建一个房间,也可以预定房间。

加入房间,需要输入房间号,可以设置是否开启麦克风和摄像头。

快速开始,创建一个房间,可以根据人数选择房间大小,有大班课(面向大量学生)、小班课(最多 16 位学生)、一对一。

房间页面,房间的左中侧是白板,可以用来当作是上课的黑板;右侧是用户列表信息。

白板工具,白板支持画笔、图形、橡皮擦、代码运行、几何代数、计时器、答题器、骰子、思维导图、富文本、板书、素材库等功能。

代码运行,支持多种编程语言的在线运行。

几何代数

计时器

聊天列表,右侧聊天列表可以统计在线人数,查看学生举手,支持在线聊天。

按钮功能,房间右上角的按钮支持共享屏幕、录制视频、查看云盘文件、邀请加入、查看用户列表、房间设置等。

共享屏幕,支持共享 Chrome 标签页、窗口、整个屏幕的共享。

查看云盘文件,支持查看文件、上传文件、新建文件夹。

邀请加入房间,支持生成链接和复制分享。

查看用户列表,支持全体下台、全员静音。

房间设置,支持多语言、主题设置、白板设置、摄像头设置、扬声器设置、麦克风设置等。

历史记录,记录已结束的课程,支持查看房间详情、查看回放、分享回放。

云盘管理

应用设置

安装使用

0、项目依赖:

  • Node.js
  • pnom

全局安装 pnpm:

npm i -g pnpm

1、克隆项目:

git clone https://github.com/netless-io/flat.git

2、安装依赖,在项目根目录下执行:

pnpm i

3、构建并运行 Web 客户端,在仓库根目录运行以下任意一个命令:

pnpm start:web
cd ./web/flat-web/ && pnpm start

4、构建并运行 Electron 客户端:

pnpm start

5、运行以下命令可以将项目打包成可执行文件:

项目根目录执行,将根据当前系统打包

pnpm ship

或者项目根目录执行,可针对指定的系统打包

pnpm ship:mac
pnpm ship:win

如果你因为网络问题导致无法下载 electron

  1. 可在项目目录新建: .npmrc 文件
  2. 写入 ELECTRON_MIRROR=”https://npmmirror.com/mirrors/electron/” 内容
  3. 重新执行 pnpm i 即可

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!