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
  • 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
    • [ ] Google
  • 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 or yarn 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