With the new schooling plans coming out in my area, it's hard not to think about how this next year will be managed. I wanted to come up with a solution that would meet my needs
What it does
The software allows teachers to live-stream their in-class lessons for schools that are using a mixed learning/attendance model to maintain social distancing. Students can connect to these live-streams via a link and add questions to a queue, which the host can answer from without disrupting their class.
How I built it
I built the software using a Node.js backend with a socket.io/WebSocket based streaming layer. The frontend was made in Vue and tested on the latest public release of Chrome (the video codecs are not supported on other browsers)
Challenges I ran into
The most difficult part of this challenge was configuring a MediaSource object to take data from a WebSocket. While it was easy to link them, the WebM format requires a metadata region at the beginning, which if the client didn't connect at the beginning, the program would crash.
Accomplishments that I'm proud of
I am proud of my messy solution to a need for convenient streaming by piping it through a WebSocket with no special encoding.
What I learned
I learned to manage my expectations on features I can implement in these timeframes. I was originally planning on adding a voice detection layer and having questions being asked audibly to the class, but time did not permit. I also learned that next time, I need to convince a friend to do these events with me.
What's next for SchoolSpace
If anyone shows any interest in the product, I would be happy to make the necessary bugfixes to get it production-ready, but other than that, I have no specific plans