Project flat is the Web(under development), Windows and macOS client of Agora Flat open source classroom.
- 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.localandconfig/.env.production.local. - Add environment variables following the 
config/.envformat. 
- 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 clonethe forked repo to local. - At project root:
yarn run bootstrap
 
Run yarn start at project root.
- Run 
yarn shipat project root to package base on current system type. - Or run 
yarn ship:macoryarn ship:winat 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 storybookat 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 |