U

UnicornTeach

A platform meant and built for conducting online classes efficiently.

The problem UnicornTeach solves

Saves data consumption and data usage.

Disconnecting from classes happens as there are no huge chunks of data to be downloaded.

This approach will make “Students who don’t have access to sufficient bandwidth" also feasible towards online class.

Challenges we ran into

Initially, we started with python and Django but we had trouble dealing with
javascript that was coming from the canvas API from the browser to draw on the
canvas, this was due to our inexperience in software development (we found a
solution afterwards which was using webpack to bundle the javascript). At that
point, an easier solution was to switch to node.js. It was then easier to deal with all
the javascript coming from the browser.

The next thing was to pass the co-ordinate coming from the client-side to all the
other peers connected. This was a headache as the data should be passed to the
server then to the users through web sockets(socket.io). It was ok in the beginning
but as soon as we built custom rooms. There were so many unexpected bugs
(mostly due to our poor architecture). We consistently changed our code to better
versions.

Our co-ordinate passing system with socket.io was working fine with the massive savings
to data consumption.

Then we had some trouble figuring out the webRTC audio/video calling feature. That was
solved when we discovered a library build on top of webRTC called peerjs which had really good documentation.

Our frontend is built with bootstrap CSS3 and HTML. We thought of implementing
vue.js but as there was less time so we didn’t want to waste any by building the UI
also our team members knew different frameworks and libraries like vue.js, react,
angular.

We have no caching system as of now ( as this is just a prototype). A caching
system will enable us to have better speed and remove the problem of losing data
when the page is refreshed.

We still experience some minor unexpected bugs sometimes (If this platform was
made by professionals this could really be a game-changer).

Our app has an insane data consumption ratio when compared with other
competitors. google meet. eg. 300MB to less than 50MB (as we don’t stream the
screen)

Despite wasting time on the python side we were able to make the app in a week!

Discussion