With virtual learning becoming more common-place, many students find themselves lonelier than ever with the lessened interactions with peers, the increased difficulty of meeting new people, and the noticeable lack of company while doing learning at home. Not surprisingly, many students report that the desire to procrastinate is much stronger. Finding a buddy/problem solver would lead to higher productivity and learning rate for upcoming CS enthusiasts.
What it does
KodingBuddy - is a web-app that allows users to post questions or comments onto a feed page, allowing any other user to join and work collaboratively on problems or to have fun technical conversations using collaborative text editor and compiler as well as video chat.
How we built it
KodingBuddy runs on a NodeJS & Express server in the backend while using a user-friendly user interface that is built with ReactJS. The backend server organize authentication and user accounts and posts. The ReactJS frontend leverages all data from the backend and display information efficiently.
We leveraged three main APIs to build the final solution. jdoodle API was used to compile the code written in the code editor and display the results in the console. We also used Firepad API to get a collaborative text editor for people to write code together and help each other. Firepad basically uses firebase to achieve this multiplayer capability allowing people to collaborate in real time.
Finally, we used webRTC to construct video calling between people in the same room. This results in better communication and better experience.
Challenges we ran into
- Setting up webRTC required a lot of research about web sockets and peer handling libraries.
- Working with many different API posed many challenges such as dealing with cors header protection and lack of good documentation.
Accomplishments that we're proud of
Despite all challenges, we built an application with a unique idea and leaned a lot a long the way!
What's next for KodingBuddy
- Better user interface
- Better room management for video calls.
- General optimization and enhancements.
- Scheduling settings