![](https://raw.githubusercontent.com/dxiaoqi/flat/main/./assets/flat-logo.png)
Project flat is the Web(under development), Windows and macOS client of Agora Flat open source classroom.
![](https://raw.githubusercontent.com/dxiaoqi/flat/main/./assets/flat-showcase-en.png)
- Optimized teaching experience
- Big class
- Small class
- One on one
- Real-time interaction
- Multifunctional interactive whiteboard
- Real-time video/audio chat(RTC)
- Real-time messaging(RTM)
- Participant hand raising
- Login via
- GitHub
- Classroom management
- Join, create and schedule classrooms
- Support periodic rooms
- View room history
- Classroom recording and replaying
- Whiteboard replaying
- Cloud recording for video and audio
- Messaging replaying
- Cloud Storage for multi-media courseware
- Device self-check
- Auto Updater
UI and business logic are separated in Flat. You can run flat with full build or quickly develop UI via Storybook.
Note that full-built Flat requires Agora Flat Server backend.
- Create two files
config/.env.development.local
andconfig/.env.production.local
. - Add environment variables following the
config/.env
format.
- See Environment Variables Reference bellow.
- See Files under version control for more about .env.* naming.
- Fork this repo so that Github Actions can work properly.
- Then
git clone
the forked repo to local. - At project root:
yarn install --frozen-lockfile
Run yarn start
at project root.
- Run
yarn ship
at project root to package base on current system type. - Or run
yarn ship:mac
oryarn ship:win
at project root to package for the specified system.
Many Flat components UI can be quickly viewed and developed via Storybook (Online address).
- Run
yarn --cwd packages/flat-components storybook
at project root to run Storybook locally.
Variable | Description | Note |
---|---|---|
NETLESS_APP_IDENTIFIER | Whiteboard Access Key | See Projects and permissions |
AGORA_APP_ID | Agora App ID | For RTC and RTM. See Use an App ID for authentication |
CLOUD_STORAGE_OSS_ALIBABA_ACCESS_KEY | Agora Cloud Recording OSS | For storing RTC Cloud Recording media files. See Cloud Recording |
CLOUD_STORAGE_OSS_ALIBABA_BUCKET | Agora Cloud Recording OSS | As above |
CLOUD_STORAGE_OSS_ALIBABA_REGION | Agora Cloud Recording OSS | As above |
CLOUD_RECORDING_DEFAULT_AVATAR | Agora Cloud Recording default user avatar URL | See: Set the background color or background image |
WECHAT_APP_ID | Wechat Open Platform App ID | |
FLAT_SERVER_DOMAIN | Flat Server deployed address | e.g. flat-api.whiteboard.agora.io |
UPDATE_DOMAIN | Flat upgrade OSS address for storing artifacts | e.g. https://flat-storage.oss-cn-hangzhou.aliyuncs.com/versions |
SKIP_MAC_NOTARIZE | Whether to skip the mac notarization step | value: yes or no |
APPLE_API_ISSUER | Apple notarizing issuer. Skip notarizing if not provided | See: electron-updater |
APPLE_API_KEY | Apple notarizing key. Skip notarizing if not provided | See: electron-updater |
WINDOWS_CODE_SIGNING_CA_PATH | Windows Code Signing CA file path. Skip if not provided | Relative to desktop/main-app |
WINDOWS_CODE_SIGNING_CA_PASSWORD | Windows Code Signing CA password. Skip if not provided |