Agora Flat Open Source Classroom Client Build With React
Agora Flat
Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.
Features
- Open sourced front-end and back-end
- [x] Flat Web
- [x] Flat Desktop (Windows and macOS)
- [x] Flat Android
- [x] Flat Server
- Optimized teaching experience
- [x] Big class
- [x] Small class
- [x] One on one
- Real-time interaction
- [x] Multifunctional interactive whiteboard
- [x] Real-time video/audio chat(RTC)
- [x] Real-time messaging(RTM)
- [x] Participant hand raising
- Login via
- [x] Wechat
- [x] GitHub
- Classroom management
- [x] Join, create and schedule classrooms
- [x] Support periodic rooms
- [x] View room history
- Classroom recording and replaying
- [x] Whiteboard replaying
- [x] Cloud recording for video and audio
- [x] Messaging replaying
- [x] Cloud Storage for multi-media courseware
- [x] Device self-check
- [x] Auto Updater
Development
UI and business logic are separated in Flat. You can run flat with development mode or quickly develop UI via Storybook.
Installation
At project root:
yarn run bootstrap
Development Mode
At project root:
yarn run start
Package Executable
- 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.
Storybook
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.
Environment Variables Reference
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 |