Documentation‎ > ‎

Google Summer of Code

This is a blueprint for a possible GSoC or Outreachy project on Epoptes, which is a computer lab management and monitoring tool.

Project goals

  • Use a VNC library instead of relying on external programs like x11vnc and xvnc4viewer.
  • Investigate screen sharing on Wayland.
  • Reimplement the Epoptes network benchmark tool with python libraries, e.g. twisted.

VNC library

Epoptes supports broadcasting the teacher screen and assisting the students by taking control of their screens remotely. To do that, it's using external programs like x11vnc, xvnc4viewer, tightvnc, tigervnc, ssvnc. Most of these programs have maintenance issues and some of them have already been removed from distributions.
On the other hand, there are some VNC libraries available in most distributions. They should be evaluated, and if some of them plans to eventually support Wayland, Epoptes should be rewritten to use that library instead of the external VNC programs.

Screen sharing on Wayland

Some developers are trying to implement screen sharing on Wayland using modern technologies like WebRC/PipeWire. The current status should be evaluated, and if it appears to be mature, code could be added in Epoptes to support that.

Network benchmark tool

The current implementation of Epoptes network benchmark tool is externally calling iperf v2, which is rather unstable. Its backend should be rewritten using native python libraries, for example twisted.

Application/evaluation tasks

Students that apply for a GSoC/Outreachy project should implement the following tasks for their initial evaluation:
  • Implement a network benchmark tool in python, that measures the upload/download speed between only two computers in the local network.
  • Try out and document the software and steps involved for sharing the screen (or a window, whichever is easier) between two users under Wayland, in any distribution.