===What is BigBlueButton?===
[http://www.bigbluebutton.org BigBlueButton] is a free and open source web conferencing system, primarily targeted towards online lecturing
, and small group collaboration. It provides a virtual classroom environment for instructors to teach, and for students to collaborate in small groups. However, BigBlueButton is by no means limited to classroom settings and small groups; it just means that the core features and components of BigBlueButton were developed with this target demographic in mind. The BigBlueButton name comes from the notion that starting a web conference should be as simple as pressing a metaphorical big blue button.
BigBlueButton contains a set of components, called "modules", each containing a bunch of features. Such modules
include and features include:
*The users module, that contains and displays the list of users in a meeting, along with their state (whether they are a presenter, moderator or normal viewer, whether they are sharing any media, whether their permissions are restricted in some way, etc..).
*Lock Settings, which allow moderators of a meeting to restrict some users' access of the modules. For example, a moderator can disable webcam sharing, or chatting between participants.
Try out BigBlueButton for yourself at http://demo.bigbluebutton.org/! Just enter any user name in, and play around
BigBlueButton was initially a Flash application. The server, written in Java (now moving to Scala), sat on a Flash media server called Red5, and the main client was a Flash web application (the "Flash client") that was downloaded by the browser upon joining a BigBlueButton meeting. As a Flash
client, this meant that users had to install a Flash Player into their web browser in order for them to use it (like old YouTube videos). Though the main BigBlueButton client is still Flash based, all of the new features that HTML5 requires browsers to be able to support natively (without having to install plug-ins) allowed developers to begin development of a second client for BigBlueButton, that used only the capabilities of web browsers (the "HTML5 client"). Additionally, around late 2013, development began on a cross-platform mobile application for Android and iOS that allowed people to join a BigBlueButton meeting from mobile devices (the "mobile client"). Both the HTML5 client and the mobile client are still under development.
Behind the scenes, the BigBlueButton server uses the following
*[http://www.red5.org/ Red5]: a Flash Media Server, with "room management" (a Red5 room corresponds to a BigBlueButton meeting) allowing easy handling of message sending and streaming to only those users who connected to a specific room. Red5 holds the following BigBlueButton components:
*[https://github.com/bigbluebutton/bigbluebutton/tree/master/bigbluebutton-web BigBlueButton-Web] running on [https://grails.org/ Grails] and [http://tomcat.apache.org/ Tomcat]: BigBlueButton's web API, allowing programmers to create meetings, join meetings, get [https://github.com/bigbluebutton/bigbluebutton/blob/master/bigbluebutton-client/resources/config.xml.template configurations] for a meeting, get information to set the state of the client when joining a meeting, to use the presentation services for uploading presentations, and to use the recording services to record meetings.
*[http://redis.io/ Redis]: a key-value
database used by BigBlueButton to communicate between the different server-side components, and to record all of the events of a meeting. Redis provides a publish and subscribe ("pub-sub") messaging system, that allows applications to subscribe to channels, which means every message published to that channel will be received by all subscribers of that channel.
*[http://www.freeswitch.org/ FreeSwitch]: used by BigBlueButton as a VOIP server to manage voice conference calls between WebRTC audio clients, connecting them and streaming their audio data to others in the same conference. Additionally, since Flash Audio and WebRTC audio use different audio codecs (Speex vs Opus), FreeSwitch is used to transcode between these two codecs, and send the audio data to BBB-Voice for repackaging and delivery to those Flash clients that are using Flash audio (Flash clients needn't use Flash audio, but can now use WebRTC audio).
===For New Developers: Getting started on BBB===
'' <span style= "color : red;"> *** Under construction : write something here!! *** </ span>''
==BigBlueButton at Seneca CDOT==
the architecture section above for more details on this) .
In the summer of 2014, Danny Perrone, a co-op student from Seneca, along with with Anton Georgiev, a co-op student from Carleton university working at Blindside Networks in Ottawa, rewrote the existing HTML5 client, moving it over to the [https://www.meteor.com/ Meteor.js] framework.
'' <span style="color: red;">***WRITE STUFF HERE!!!***</span>''
The BigBlueButton mobile client is a mobile application that allows users to participate in a BigBlueButton meeting from their smartphone or tablet. It was started in late 2013 by a team of software developers from [mconf.org/ Mconf]. Beginning in early 2014, the mobile project was taken over by a team of developers at Seneca CDOT. Chad Pilkey, Gary Deng, Stanislav Yeshchenko, and Adam Sharpe each worked on implementing features, rewriting components, and fixing bugs in the mobile client. In the summer of 2014, we:
*[https://github.com/bigbluebutton/bbb-air-client/pull/28 Allowed mobile users to receive and view desktop sharing streams] *[https://github.com/bigbluebutton/bbb-air-client/pull/29 Rewrote and upgraded the mobile client to connect with new versions of BigBlueButton] *[https://github.com/bigbluebutton/bbb-air-client/pull/30 Improved the user interface, which was previously minimalistic and did not support tablets very well] *[https://github.com/bigbluebutton/bbb-air-client/pull/36 Added unit testing capabilities and framework] *[https://github.com/bigbluebutton/bbb-air-client/pull/43 Allowed the mobile client to respond to polls and view poll results] *[https://github.com/bigbluebutton/bbb-air-client/pull/44 Rewrote the user interface to conform with the UI designer's specifications] *[https: //github.com/bigbluebutton/bbb-air-client/pull/45 Added support for receiving video streams on iOS (previously, video streams would not play on iOS devices as they do not support Adobe AIR very well)] *[https:// github. com/bigbluebutton/bbb-air-client/pull/48 Enforced the meeting's lock state (permission settings) on the mobile client] *[https://github. com/bigbluebutton/bbb-air-client/ commits/ master As well as lots of bug fixes, small improvements and features!]
' ' <span
style = "color : red;">***WRITE STUFF HERE!!!***</ span>''
===CDOT BigBlueButton Contributors===
Bbbteam20122. png|thumb|right| 350px|From left to right: Justin, Fardad, and Chad]]
*[http://zenit.senecac.on.ca/wiki/index.php/User:fardad Fardad Soleimanloo] - Project Supervisor
*[http://zenit.senecac.on.ca/wiki/index.php/User:capilkey Chad Pilkey] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Gary Gary (Xinggui) Deng] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Stanislav_Yeshchenko Stanislav Yeshchenko] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Adam_Nicholas_Sharpe Adam Sharpe] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Danny_Perrone Danny Perrone] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:aspektors Anatoly Spektor] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:JTRobinson Justin Robinson] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Dkarp Dale Karp] - Developer
*[http://zenit.senecac.on.ca/wiki/index.php/User:Bo_Li Bo Li] - Developer
142. 204.133.24/ CDOT Development Server 1 (often offline)]''' *[http://bbbdev1.googool.com/ CDOT Development Server 2 (often offline)]''' *[http://bbbdev0.googool.com/ CDOT Development Server 3 (often offline)]''' ==== Source Code Repositories ==== *[https://github.com/myprogrammingblog/polling-module Polling Module Repo]''' *[https://github.com/bigbluebutton BigBlueButton Repo]''' *[https://github. com/ jtrobinson/bigbluebutton BigBlueButton + Polling Module]''' *[https://github.com/jtrobinson/Seneca-BBB-LDAP-work Seneca BBB LDAP Portal]''' ==== GitHub Help ==== *[http://help.github.com/linux-set-up-git/ Setting Up Github (SSH Keys)] '''*[http:// myprogrammingblog. com/2012/01/20/github-how-clone-github-repo-how-to-push-to-github-how-to-get-files-from-github-ubuntu/ GitHub tutorial - how to push, git, commit, pull and checkout]''' ==== Documentation ==== *[http://groups. google. com/group/bigbluebutton-dev BigBlueButton Developer Forum]''' *[http://groups.google.com/group/bigbluebutton-setup BigBlueButton Setup Support Forum]''' *[http://code.google.com/p/bigbluebutton/wiki/ PollingModule Polling Module wiki page]''' *[http://myprogrammingblog. com/category/project-bbb/ Blog About BBB ]''' ==== Redis Database Documentation ==== *[http://www.jarvana.com/jarvana/view/redis/clients/jedis/1.3.1/jedis-1.3.1-javadoc.jar!/redis/clients/jedis/Jedis.html Jedis (Redis Java library) Documentation] ''' *[http://redis.io/commands Redis Database Command List ]''' ==== Red5 server Documentation ==== *[http://trac.red5.org/wiki/Documentation red5 documentation] '''