-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
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
Metadata
Metadata
Assignees
Labels
No labels