Kickoff session: https://demo.bigbluebutton.org/rooms/ggu-sze-sqf-bxr/join

Project worksheet for 19th BigBlueButton Developer Summit (Brazil, 2024)

Hi everyone!

Let's collaborate here using HackMD on the projects we want to do this developer summit (April 22th to April 26th).

List the projects you are interested in seeing developed we'll likely have more projects than people, but let's capture all of the ideas.

As with past summits, we'll form groups around the projects, sprint (hack) on them for the week, learn along the way, and give presentations starting at 14:00 on Friday, April 26th.

Many of these projects will be using the latest build of BigBlueButton 3.0-dev.

Here are some of the main project feel free to add your own or sign-up for an existing project.

Plese edit/correct any information you see in the document.

Conference Participants

In Person

From Blindside Networks (Canada)

  • Anton Georgiev
  • Fred Dixon

From iMDT (Brazil)

  • André Castro
  • Anton Barboza De Sa
  • Gabriel Luiz Porfirio
  • Guilherme Pereira Leme
  • Gustavo Trott
  • João Victor
  • Ramón Souza
  • Tainan Felipe Pauli De Almeida
  • Tiago Daniel Jacobs

From Mconf (Brazil)

  • Átila Uebel
  • Arthur Böckmann Grossi
  • Bruno Guilherme Valentini
  • Felipe Cecagno
  • Júlia Palma Rathke
  • Lucas Fialho Zawacki
  • Paulo Renato Lanzarin
  • Rafaela Caroline Mônaco

From Element.io

  • Timo Kandra

Attending Remotely

From RIADVICE (Tunisia)

  • Ghazi Triki

From aufKurs.de (Germany)

  • Tim Korn (partially attending)

From Blindside Networks (Canada)

  • Kert Browne

From University of Mainz (Germany)

  • Jan Kessler

  • Malte
    From Mconf (São Tomé)

  • Germano Caumo Carniel

From fairkom (Austria)

  • Roland Alton
  • Martin Klampfer (Tue)

Projects

Integration with Element

Element.io are the creators of the Matrix Protocol. Element is the most popular Matrix client.

There are two variants to integration of BigBlueButton with Element.

  1. Launch into a BigBlueButton from within Element
  2. Enable BigBlueButton to join a Matrix channel and continue the discussion within BigBlueButton.

We will be focussing on (1).
Initial session recording https://pro.fairteaching.net/p/6a0479531fc476b0b782d5cd763c49fa85c4f640-1713815682648

  • Phase 1: get again work the old dimension setup from HU berlin, may be the preferable solution if users are federated and use different clients, integrate widget without dimension.
  • Phase 2: sync RTC session state, show this information to join any call, even parallel calls in one room, we do that to add widget link, is directly integrated without dimension, we need then a JWT proxy server, we may use the wrapper for jitsi, we go with the smart ownership concept: one owner one membership event. non-element participants would not sync the state
  • Phase 3: livekit integration - get audio/video with joining native RTC sessions

Members: Timo Kandra, Roland Alton, Jan Krammer, Martin Klampfer

Away Mode Improvements

  • Mute microphone + camera when away.
  • Disable away when microphone is unmuted.
  • Avoid changing users userlist position when it is away.
  • Find a new place for the "Set yourself to away" button (discuss with design team)

Members: Ramon

Automated Testing

Create Plugin Tests

Create tests to ensure that new versions of BigBlueButton will work with the plugin SDK samples, and also with the official plugins.

Members: Anton B.

Enhance Failed Test Messages

Members: Gabriel

Host Test Reports Externally

Allow developers to access test results directly from the pull request

Members: Anton B.

Removal of Meteor collections

Remove all usages of server-side Meteor collections in BigBlueButton 3.0

Members: Tainan, João Victor

BigBlueButton 3.0 stress tests

Determine user capacity and system bottlenecks.

Members: Tiago

Support Multiple Connections per User

Handle cases where a user opens multiple browser tabs of the same session

Ideas:

  • ensure same userId for a given externalUserId
  • use userId+sessionToken as identifier for media, as userId will be duplicated
  • when duplicate a tab, tell user that sessionToken is already in use and offer to create a new session

Members: Gustavo, Paulo

Run BigBlueButton on ARM server

Explore how far we can go running BBB on an ARM server.

Members: Anton G

Containerization / Kubernetes

We want to explore the possibilities of running BigBlueButton under Kubernetes. This article outlines the major technical challanges as well as ways to overcome them: Media Gateways.

This project can be split in two major domains:

Containerization efforts

This can be done with docker-compose and without the complexity of a full Kubernetes setup. No Kubernetes knowledge is required, but basic understanding of containerization is helpful.

K8S specific work

Which this only takes off where the above has produced up-to-date pods, research can already start with this:

  • Explore Stunner, a k8s ingress gateway
    • looks good, exposes only one UDP port for all media and acts as TURN for all users
  • Explore how LiveKit works in containerized environments, particulary so that not all worker nodes require public IPs and the number of required ports is limited

Once the Containerization efforts are complete, a helm or kustomize chart needs to be written, which can largely be converted from the docker compose file.

After this summit, this effort aims to provide a clearer picture on how Kubernetes can provide benefits over a VM-based deployment in terms of

  • Maintenance
  • General scalability
  • Ad-hoc (e.g. per meeting) scalability
  • Reliability
  • we need for production root-less images

It will most likely not result in a full BBB 3.0 in Kubernetes, but pave a significant part of the way.

Members: Danimo

LiveKit (part 2)

Continue work on the LiveKit integration for BigBlueButton, initiated at the 18th BigBlueButton Developer Summit.

The goal to achieve an initial, experimental LiveKit integration merged into the v3.0.x release (behind feature flags)

Priorities include:

  • Merging a MVP integration for audio into v3.0.x-release.
  • Laying out a public roadmap for LiveKit integration and transition.

Members: Paulo

Tagged Server Support in Greenlight

Since Scalelite now supports tagging of servers and a corresponding meta parameter in the create call, the aim is to prototype support for the feature in Greenlight.

Members: Jan

Plugin Improvements

Core Improvements and Official Plugins

  • Review and improve pull requests about data channels + sub-data channels.
  • Review, improve and merge the first official plugins:
    • share-link
    • pick random user
    • decrease volume on speak
  • Review and improve documentation

Members: Guilherme, Tiago

New plugin: Personal notes

Add a floating window for writing personal notes during the meeting (persisted to the server).

Members: Tiago

New plugin: Code Syntax Highlighting in Chat Messages

We want to create a plugin that renders code in chat messages, just like github does in issues.

Members: André

New plugin: Typed captions

We want to drop typed captions from core and write it as a plugin.

Members: Guilherme

New plugin: Interpretation

fairkom had developed fairblue as an HTML5 replacement for interpreters in multilingual conferences, has been maintained up to BBB 2.5.
Now we aim at a rewrite fairblue as a stand-alone service which is using the plugin SDK.
To achieve this we need additional plugin hooks see https://github.com/bigbluebutton/bigbluebutton/issues/20016
Meta-Issue for relaunch of fairblue https://git.fairkom.net/hosting/chat/fairblue/-/issues/160

Members: Martin Klampfer, Roland Alton, Guilherme, Anton

New plugin: YYY

Members:

Hybrid Teaching Plugin

We want to further improve the prototype we developed at the Dev Summit in Berlin 2023.

Members: Daniel Schreiber

PHP Library Improvements

The official PHP library is now popuplar with its 468k downloads. It needs a more detailed documentation that covers all its possiblities. Also it needs to cover 2.7 and 3.0 API.

Design UX and UI

Redesign of the User Interface

One of our biggest challenges of de UX is the features dicoverability. We want to improve the users experiences by designing a prototype of a new UIwich is ease-to-use bay teachers and students.

Members: Bruno, Júlia, Rafaela & Tyler

Post to bigbluebutton-dev

The BigBlueButton project is holding its 19th Developer Summit this week in Balneário Camboriú, Brazil (April 22 - 26th).

At the summit, the core developers from around the world have been working together to advance our mission: to build the world's most effective virtual classroom measured in learning outcomes.

Here's a video of the activity of the developers and designers working together

https://youtu.be/U883xHbL2Vo

We welcome everyone in our community to join us for live demos tomorrow at 17:00 UTC

Time: Friday, April 26, 17:00 UTC
Location: https://conference.meetbbb.org/rooms/vdo-o5x-tmg-dok

The demos will be 5 - 10 minutes long and cover the following areas

  • BigBlueButton Project Update (Fred Dixon)
  • Supporting VIP meetings in ScaleLite (Jan Kessler)
  • Hybrid Teaching Plugin Update (Timo Nogueira Brockmeyer)
  • An update on integration with LiveKit (Paulo Renato Lanzarin)
  • Prototype integration of BigBlueButton with Element Matrix Client (Timo Kandra)
  • Progress made for a Matrix bot being refactored in golang to launch a BBB conference (Martin Klampfer, Roland Alton)
  • Architecture plan for language interpretation service for BBB 3+ (Martin Klampfer, Roland Alton)
  • Demo of support for LTI 1.3 (Jesus Federico, Mariam Almalki)
  • Stress testing BigBlueButton 3.0
    • lambda strategy: Chrome headless and the full client loading (Tiago Jacobs)
    • jmeter strategy: just websocket connection, acting like a client, to profile how messages degrade under load (Felipe Cecagno)
  • Progress on refactoring BigBlueButton to use GraphQL (Tainan Felipe Pauli De Almeida)
  • Away Mode Improvements (Ramón Souza)
  • Improving quality of BigBlueButton through CI testing (Anton Barboza De Sa, Gabriel Luiz Porfirio)
  • Plugin for highlighted source code (André Castro)
  • Plugin for integrating with H5P (Guilherme Pereira Leme)
  • Enabling joining from multiple browser tabs or devices (Gustavo Trott, Tiago Jacobs)
  • Exploring running BigBlueButton under Kubernetes (Daniel Molkentin)
  • Experiences using the new plugin architecture for BigBlueButton 3.0 (Lucas Fialho Zawacki)
  • Prototype of Breakout Vision using tldraw 2.0 (Kert Brown)
  • A new design for the BigBlueButton UI (Rafaela Caroline Mônaco, Júlia Palma Rathke, Bruno Guilherme Valentini)

Feel free to share the above information with others and invite anyone interested in the BigBlueButton project to attend the live demos.

Select a repo