Giter VIP home page Giter VIP logo

flat's Introduction

Agora Flat

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

中文

Try it now

Features

  • 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 full build or quickly develop UI via Storybook.

Full Build

Note that full-built Flat requires Agora Flat Server backend.

Setup Environment

  1. Create two files config/.env.development.local and config/.env.production.local.
  2. Add environment variables following the config/.env format.

Installation

  1. Fork this repo so that Github Actions can work properly.
  2. Then git clone the forked repo to local.
  3. At project root:
    yarn install --frozen-lockfile

Development Mode

Run yarn start at project root.

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

flat's People

Contributors

crimx avatar blackhole1 avatar cheerego7 avatar hyrious avatar alwaysmavs avatar syt-honey avatar leooeloel avatar dependabot[bot] avatar

Stargazers

iodto avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.