Skip to content

Implement Java library for BigBlueButton #3

Description

@GhaziTriki

Description
Create an official Java library for BigBlueButton.

Motivations
Currently official BigBlueButton holds the official PHP library https://github.com/bigbluebutton/bigbluebutton-api-php then Mconf maintains the Ruby library https://github.com/mconf/bigbluebutton-api-ruby

Gathering everyone around a community-maintained java library is very useful as example for implementing, JVM server side applications, CLI tools, implementing Selenium tests with Java and extending BigBlueButton server features for custom-built BigBlueButton platforms.

Technical Requirements

  • Support JVM 11+
  • Support BigBlueButton API 2.6+

Functional Requirements

  • Easy integration: The library should be easy to integrate with other applications and provide clear documentation and examples to help developers get started quickly.
  • Robust error handling: The library should have robust error handling to handle BigBlueButton API specific error scenarios that can occur during API calls and prevent misuses or wrong assumptions of the API understanding.
  • Flexibility: The library should be flexible and provide options to configure the library's behavior, such using environment variables, configuring hash algorithm.
  • Performance: The library should be optimized for performance and have minimal overhead by using third party libraries as less as possible.
  • Testing and coverage: The library should have unit tests implemented for almost every line. A 80%+ of code coverage is advised to comply to quality standards.

Implementation progress

The #2 PR is being implemented

Packaging

  • deploy to maven central

Library

  • unit tests
    • validate responses with mock XML files
  • hashing algorithms
  • logging configuration
  • validate url parameters

API

  • create
    • handle meeting ID format exception
    • pre-upload slide
    • handle meta
  • join
  • insertDocument
  • isMeetingRunning
  • end
  • getMeetingInfo
  • getMeetings
  • getRecordings
    • handle meta
  • publishRecordings
  • deleteRecordings
  • updateRecordings
    • handle meta
  • getRecordingTextTracks
    • handle meta
  • putRecordingTextTrack
  • hooks/create
  • hooks/destroy
  • hooks/list
  • exception handling

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions