U

UnicornTeach

A platform meant and built for conducting online classes efficiently.

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 way less 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 classes.

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 massive savings to the data consumption.

Then we had some trouble figuring out the webRTC video/audio 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