====== Requirement ====== Build the expertus meeting's new UX, which specifically has two challenges to deal with - 1) Meeting actions should be available within the player (meeting player should be launched within the meeting HTML UI) 2) Meeting app's UI should be scaled to fit the whole screen. === Sample mocks === Join a meeting: https://invis.io/FZ5PCTF3X Sign in: https://invis.io/W95PCVRKF Meet now: https://invis.io/KC5PCX3EY Schedule: https://invis.io/5X5PCXWKE ===== Implementation Ideas ===== ===== 1) Meeting player within the meeting rails app ===== Two possible ways are there to achieve this - a) IFRAME based approach. b) Embedded object based approach. ==== a) IFRAME based approach (Recommended & first choice) ==== Launch the meeting player in an iframe within the meeting app. Just create an iframe and when the user clicks on start/join meeting launch the player inside the iframe. The key aspect here is, cookie handling and some functionality does not work if the launcher and BBB apps are in different domains. But in our case this is the same domain. So, it is not an issue. POC is made and is tested in all browsers and all the functionality of meeting client works fine. === Advantages === 1) Loose coupling between BBB and the API are maintained. 2) No code involved in BBB's layout. So, more maintainable. 3) Same UI can be reused for Live events, meeting and Eone. === To Do === 1) Need to test it using https. 2) Fix the issue with FF's z-index. 3) Track the meeting's launch status through cookie for a better UX. ==== b) Embedded object based approach. (Not Recommended - A second choice if (a) fails) ==== Instead of launching the app from BBB, it can be launched from a view of rails app. Edit bigbluebutton.properties and point the defaultClientUrl to any rails view we need. Copy BBB's 'client' directory to rails app's assets directory and embed the ExpertusMeeting.swf file in the rails view. === Advantage === 1) More control over the UI and we can launch the app and tweak the flow as we want. === Disadvantages === 1) Need to change the code and JS libraries of both apps so that they are sync. 2) Very tightly coupled. Maintenance efforts are more. 3) Development takes time as code changes involved are more. === To Do === 1) Need to test it using https. ===== 2) Meeting app's UI should be scaled to fit the whole screen. ===== work in progress.