The highest value part of the learning process at BCIT here in Vancouver is without a doubt the library study time where the keenest students figure things out together late into the night.
In this environment, a common interaction is that one student needs help while another is simultaneously ready for the final step in the learning process: explaining the concept to someone else. The pandemic has taken this away from us.
Explaining concepts like how a recursive algorithm processes a data structure are best illustrated on a piece of paper looking over the shoulder rather than explained verbally via a discord call. We wanted to give students a way to connect with each other with a choice of illustrative tools to give them the best chance of successfully explaining the concept.
What it Does
Socket.io and Firepad provide a way for students to communicate, illustrate concepts, and write code or any ASCII language in real time. We chose to host this Node.js web app on Heroku.
If you want to try it out, coordinate with a friend and enter the same room number when prompted at the link below - you can talk to each other and illustrate things to each other with the features.
HTN's sponsors provided a number of useful APIs to this end. The well-documented Vonage API serves as the heart of our app to connect people, while cockroachdb serves as a scalable persistence architecture to store session IDs and room names generated by Vonage.
Each of us had our challenges and learning opportunities. Isaac collaborated on a real project with git for the first time, Melody saved our skins by figuring out how to get hosted with Heroku at the 11th hour, Herbert integrated socket.io with a number of different APIs to build the core of the application, and Scott spent some time hooking a new persistence architecture to a tech stack he was unfamiliar with - and spent several hours in callback hell.
One thing we wish that we had accomplished on time was registering our hosted website to the registered domain earlier because we were unaware that it would take so long to process. It took us some time to finalize our name that we held off from buying the domain until we felt confident with our brand. Regardless, we are glad to have learned this lesson and will utilize it at least 24hr prior to the judging period next time.
Authentication and further polish of the features we have. We need to add some media queries to make this look nice across devices. We had a slight database hiccup, so we need to sort out the connection again - but the nature of Cockroachdb's persistence architecture is that it's built for distributed computing - so we could deploy this on cutting edge cloud technology like Kubernetes without too much trouble and scale it easily!