Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.
![](https://raw.githubusercontent.com/RyanLewisHa/flat/main/./assets/flat-showcase-en.png)
- Open sourced front-end and back-end
- Flat Web
- Flat Desktop (Windows and macOS)
- Flat Android
- Flat Server
- 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 development mode or quickly develop UI via Storybook.
At project root:
yarn run bootstrap
At project root:
yarn run start
- 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 |