/flat

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

Primary LanguageTypeScriptMIT LicenseMIT

GitHub GitHub repo size GitHub commit activity GitHub issues by-label

Agora Flat

Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.

中文

Try it now

Features

  • Open sourced front-end and back-end
  • 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
    • Wechat
    • GitHub
    • Google
  • 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

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