Due to the social impact of COVID-19, as current college students, we saw firsthand how it's affected the college education system around the world. We wanted a platform that simplifies the remote teaching process for students and professors. That is why we created Oneboard, an interactive whiteboard, that allows professors to teach as if they were in a lecture hall.
What it does
Oneboard is an interactive shareable whiteboard that has many features. There are two main parts of the application. First is the side of the professor(host), they can create a board and broadcast their notes to their students who can join using a five-digit code like in Kahoot. Then is the side of the students who can also write their personal notes on the whiteboard on top of what the professor is writing. Oneboard supports a plethora of functions you can do with the whiteboard. It's easy to create and delete lines, select lines and move them around, and infinite whiteboard space. Continuing along with permissions for students and professors, we've made sure that students can't accidentally delete the notes of their professors and only their own. Professors and students are just an example we've used to explain the functionalities. Oneboard can be used between any two sets of people comprising of a host and user(s).
How we built it
We built Oneboard using socket.io for its back-end. We established one socket connection that connected to different rooms where the master account came with a randomly generated access code and each user can connect to the master account using said access code. We then used Firebase's database (Firestore) for authentication. Additionally, we used Google Cloud Functions to host the back-end code. As for the front-end, we used React, Redux, and Less to develop the user interface.
Challenges we ran into
We had trouble efficiently sharing whiteboard data between all the clients which were fixed by having the server send updated lines rather than the full data every single time. Because of the time-crunch, we had to rush to find a place to host the server which we fixed by running a virtual machine through Google's Compute Engine. When there are multiple masters on the client the program can't compute, something we could fix with more time.
Accomplishments that we're proud of
The speed at which we managed to complete this project and add the many features that are now usable. The modern and aesthetic appeal that was made possible with the well-constructed web design. We've created a decentralized server meaning we can add as many users as we want and as many boards as we want the speed will stay consistently fast.
What we learned
We learned how to use Socket.io to create the back-end connections we needed for this project.
What's next for Oneboard
Adding a color palette, making more powerful transformations, autosave, a minimap for easier navigation, the ability to view past recorded whiteboard lectures, and a chat function to say the least. The possibilities are infinite, just like Oneboard.
Instructions For Hosting Board
- Create an Account
- Log in
- Create a board
- have user enter 5 digit code host is given on top of screen