Flat: Open Source Classroom Client for Web, Windows, and macOS

Summary
Flat is an open-source project by netless-io, providing Web, Windows, and macOS clients for the Agora Flat online classroom. It offers a comprehensive suite of features for real-time interactive learning environments, including video/audio chat, whiteboards, and classroom management. Built with TypeScript, Flat enables seamless virtual education experiences for modern e-learning.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Flat, developed by netless-io, is the open-source client for Agora Flat, designed for Web, Windows, and macOS platforms. This project provides a robust and feature-rich virtual classroom experience, enabling real-time interaction, comprehensive classroom management, and cloud recording capabilities. It's an excellent solution for anyone looking to deploy or contribute to an advanced e-learning platform, built primarily with TypeScript.
Installation
To get started with Flat, you'll first need to ensure pnpm is installed. If not, you can install it globally using npm:
npm i -g pnpm
Once pnpm is available, clone or fork the Flat repository and install its dependencies:
git clone https://github.com/netless-io/flat.git
cd flat
pnpm i
Examples
Flat offers both Electron (desktop) and Web clients. Here's how to build and run them:
Flat Electron Client
To build and run the Electron client, execute the following command from the project root:
pnpm start
You can also package your executable for distribution. Run pnpm ship to package based on your current system, or specify a system:
pnpm ship:mac
pnpm ship:win
Flat Web Client
To build and run the Web client, use this command from the project root:
pnpm start:web
Alternatively, you can navigate directly to the web client directory and start it:
cd ./web/flat-web/ && pnpm start
For UI development and component exploration, Flat provides a Storybook. You can run it locally with pnpm storybook or visit the online Storybook for a live demo.
Why Use It
Flat stands out as a comprehensive virtual classroom solution due to its powerful features:
- Real-time Interaction: Includes a multifunctional interactive whiteboard, real-time video/audio chat (RTC), and real-time messaging (RTM) for dynamic learning.
- Flexible Login: Supports login via popular platforms like GitHub and WeChat.
- Classroom Management: Easily create, join, and schedule classrooms, with support for periodic sessions.
- Recording and Replaying: Offers whiteboard replaying, cloud recording for video and audio, and messaging replaying, ensuring no lesson is lost.
- Cloud Storage: Provides integrated cloud storage for multimedia courseware.
- Screen Sharing: Facilitates easy content sharing during lessons.
Links
- GitHub Repository: netless-io/flat
- Agora Flat Homepage: flat.agora.io
- Flat Server: netless-io/flat-server
- Flat Android Client: netless-io/flat-android
- Flat Storybook: Online Demo
- Documentation: Flat Docs