Skip to content
@TeleCAUm

TeleCAUm

AirView: Share Screen with others

Mar-27-2024 11-45-26

Motivation

Video services like Zoom and Google meet only allow you to share one screen at a time, because they're designed for video conferencing, not screen sharing. As people increasingly share their screens to collaborate each other, this limitation has become an annoyance.

AirView solves these problems. Airview is a service for screen sharing!

Features

Main Drawing
Main Drawing
Focus view Tile view
Focus view Tile view

It supports the following features:

  • Screen Sharing: View work on each other's devices without the need for extra monitor
  • Quick Screen Switching: Switch screens ridply when you want to see multiple users' screens at a glance or focus on one selected screen.
  • Drawing: Draw on the screens when you want to provide feedback.

Architecture

image

  • Uses Typescript, React, WebRTC for client screen sharing and Java(Swing) and SocketIO for drawing
  • You can find how to setup the project in each repository!

Issues

Below are some of the challenges our TeleCAUm team faced during the development process.

  • Debugging was difficult due to the large number of programs involved in the communication process
    • WebRTC: signaling server, STUN/TURN, each client
    • Socket.IO: Participant socket, Host socket
  • Drawings are drawn in the wrong place.
    • One can draw on the other's screen by drawing on an HTML Canvas on top of an HTML Video, and if the Video contains margin values, the coordinate values of the Canvas and the coordinate values of the Video do not correspond one-to-one. This results in the drawing being drawn in the wrong place.
    • This is a limitation of web-based screen sharing, not native apps like Zoom.
  • In order to actually deploy the project, we had to deploy all the servers of the WebRTC architecture (STUN/TURN, signaling server), so it currently only works within the LAN.

Achievement

  • Unlike other screen sharing platforms (Zoom, Google meet), you can see multiple screens at the same time and switch between screens very easily
  • Collaborate by drawing on the other person's screen

earned an A+ in Fall 2023 Capstone Design class, Chung-Ang University, South Korea.

Contributing

It was made as a short-term project for 2 months, so there are a lot of imperfections. However, the idea is good and it works. I hope you guys can take a look at this code and build something bigger. If you want to contribute, please see each repository :)

Pinned Loading

  1. airview-client airview-client Public

    Share screens to collaborate each other with AirView. A client repo for AirView platform.

    TypeScript 3

  2. airview-board airview-board Public

    Board for AirView, supports co-painting with participants in Airview

    Java 1

  3. signaling-server signaling-server Public

    signaling-server for WebRTC peer communication

    TypeScript

Repositories

Showing 4 of 4 repositories
  • airview-board Public

    Board for AirView, supports co-painting with participants in Airview

    TeleCAUm/airview-board’s past year of commit activity
    Java 1 0 1 0 Updated May 11, 2024
  • airview-client Public

    Share screens to collaborate each other with AirView. A client repo for AirView platform.

    TeleCAUm/airview-client’s past year of commit activity
    TypeScript 3 0 0 0 Updated Mar 27, 2024
  • .github Public

    AirView: The Platform for Screen Sharing with Other People

    TeleCAUm/.github’s past year of commit activity
    0 0 0 0 Updated Mar 27, 2024
  • signaling-server Public

    signaling-server for WebRTC peer communication

    TeleCAUm/signaling-server’s past year of commit activity
    TypeScript 0 0 0 0 Updated Dec 15, 2023

Top languages

Loading…

Most used topics

Loading…