The context is the following:
- professor will teach to a classroom of students in a lecture hall AND remote students
- professor will be in the lecture hall
- there won't be any technical staff to help the professor during the lecture, which means that the professor will operate the system
BigBlueButton will be used in this context and professor wants to engage both the local and remote audience, and allow interactivity.
The problem is the current workflow to launch and configure BigBlueButton, by the professor, as follows:
- Turn on the computer (optional, might be turned on already)
- Log in the computer (optional)
- Open the browser
- Type the Moodle URL
- Log in
- Click on the course
- Click on the BigBlueButton activity
- Click to join the session
- Activate microphone
- Activate camera
... load slides, adjust layout, and others
There's an opportunity to reduce the stress for the professor to join the session, removing steps 5 to 8 from the workflow. The idea is the following:
- On the Moodle plugin, we will have a CRUD for physical rooms. The system administrator will be able to manage the physical room with
- room name
- room description
- IP address of the equipment in the room
- When creating a BigBlueButton activity, the professor will be able to define the physical room the class will take place
- When selecting a physical room, it will be required to select start and stop time for the session
At this point, Moodle will know the physical rooms schedule
- On Moodle we will have a "Quick join" block
- The "Quick join" block will authenticate the access by IP address - based on the IP address Moodle will know the physical room the access is coming from, and based on server time Moodle knows the current and upcoming activities for that physical room
- The "Quick join" block will show a button to join the room
- The "Quick join" block can be displayed in the public home screen, and professor doesn't need to authenticate or even identify himself - when joining anonymously, it will join as moderator and named as the physical room
There are a few open decisions in order to proceed with an implementation:
- Where would the physical rooms be maintained? There's the block_mrbs (stands for Meeting Room Booking System), but it was last updated in 2016. Easy path in my opinion would be to add the physical rooms database to the BigBlueButton plugin, at the administration screen.
- Where the "Quick join" block would be implemented? It could be a new plugin, however it's unclear how it would integrate with the BigBlueButton plugin, since the session is scheduled in the BigBlueButton plugin. If it's a new plugin, the physical rooms management could be done in this new plugin, however (again) how does the BigBlueButton plugin would let the user choose the physical room when creating a BigBlueButton activity?
- Is there other ways of authenticate the access based on location, better than IP address? The main concern here is that there's a significant amount of work to add all rooms and IP addresses of rooms computers, and it would need to be stable addresses - possibly tight IP addresses to MAC addresses.
Another application related to this spec is the possibility to display the room schedule in a monitor outside of the room. This monitor could display what's the current activity of the room and upcoming events. Also, it could be authenticated based on IP address as the room PC - when managing the physical rooms, we can allow multiple IP addresses per room, configuring if that IP is intended for display information only (monitor outside the room) or that IP should allow open rooms (PC inside the room).
Perhaps a local plugin?
https://moodle.jesus.blindside-dev.com/moodle/local/rooms/view.php