flat Documentation

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy flat on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name flat --restart always netless-io/flat:latest

File: README.md

Features

  • Real-time interaction
    • Multifunctional interactive whiteboard
    • Real-time video/audio chat (RTC)
    • Real-time messaging (RTM)
  • Login via
    • GitHub
    • WeChat
  • Classroom management
    • Join, create and schedule classrooms
    • Support periodic rooms
  • Classroom recording and replaying
    • Whiteboard replaying
    • Cloud recording for video and audio
    • Messaging replaying
  • Cloud Storage for multi-media courseware
  • Screen sharing

Quickstart

You can build and run the Flat client without a server. This repository includes the following projects:

Installation

If you don't have pnpm installed:

bash
npm i pnpm

Clone or fork this project, at project root run:

bash
pnpm i

Build and run Flat Electron client

Run the following commands at the root of the repository to build and run Flat Electron client.

shell
pnpm start

You can use one of the following methods to package your executable:

  • Run pnpm ship at project root to package based on current system.
  • Alternatively, run pnpm ship:mac or pnpm ship:win at project root to package for a specified system.

Build and run Flat Web client

Run the following command at the root of the repository to build and run Flat web client.

shell
pnpm start:web

Alternatively, run the following command:

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

UI and business logic are separated in Flat. You can view and develop Flat components UI via Storybook. You can either visit the (Online address) or run pnpm storybook at the root of the repository to run Storybook locally.

References

Contributing

Writing code is great, but there are many other ways to make meaningful contributions to the project:

For more info about how to contribute, see CONTRIBUTING.md

Code Contributors

Thank you to all the people who already contributed to Flat!

Disclaimer

You may use Flat for commercial purposes but please note that we do not accept customizational commercial requirements and deployment supports. Nor do we offer customer supports for commercial usage. Please head to Flexible Classroom for such requirements.

License

Copyright © Agora Corporation. All rights reserved.

Licensed under the MIT license.

When using the Flat or other GitHub logos, be sure to follow the GitHub logo guidelines.


File: docs/releases/v2.3.5/en.md

Features

  1. Added pop-up window for cross-zone entry
  2. Added popup prompt for authorization of audio and video data collection in China

Improved

  1. Modify the China domain name
  2. Upgrade rtm1 to rtm2

File: docs/releases/v2.3.5/zh.md

新增

  1. 新增跨区域进房间弹窗提示
  2. 新增中国区域音视频数据采集授权弹窗提示

优化

  1. 修改中国区域域名
  2. rtm1升级到rtm2

File: docs/releases/v2.3.4/en.md

Improved

  1. Upgrade to the new version of PPT Conversion
  2. Support viewing playback across regions (versions) via links
  3. Adjust the limitation of modifying periodic sub-rooms

File: docs/releases/v2.3.3/en.md

Features

  1. Periodic rooms support joining across regions
  2. Teachers and students can join the scheduled room 10 minutes in advance
  3. Rooms that are active for over 48 hours will automatically close
  4. Course playback supports fast-forward 15 seconds, rewind 15 seconds fast operation

Improved

  1. Account merging process
  2. Accelerated cross-regional whiteboard connections
  3. Lowered the sound effect volume for sending trophies
  4. Add tips related to room billing
  5. Adjust the position of the clear screen button to prevent accidental touching

Fixed

  1. The issue where PMI (Personal Meeting ID) option could not be selected under certain conditions
  2. Refresh does not affect recording status

File: docs/releases/v2.3.3/zh.md

新增

  1. 周期性房间支持跨区域加入
  2. 预定的房间师生提前 10 分钟可加入
  3. 房间超过 48 小时将会自动关闭
  4. 回放支持快进15秒、倒退15秒的快捷操作方式

优化

  1. 跨区域白板连接加速
  2. 账户合并流程
  3. 调低发送奖杯的音效
  4. 添加房间计费相关提示
  5. 调整清屏按钮位置防止误触

修复

  1. 特定情况下 PMI 选项无法勾选
  2. 刷新不影响录制状态

File: docs/releases/v2.3.2/en.md

Features

  1. Support to end the class quickly outside the room
  2. Support creating and scheduling personal rooms (PMI) with unchanged room numbers
  3. Support to join a room quickly by selecting the historical room number from the drop-down list on the join room page

Improved

  1. Support viewing all room history records
  2. Adjust the font size of text editor
  3. Adjust the order of PPT handwriting page cutting to make the page cutting more smooth

Fixed

  1. Avatars fail to load when the network is abnormal