Inspiration

Due to covid everything has shifted online , from classes, work meetings, social hangout, to doctors visits, concerts and basically all daily activities. Hence virtual video conferencing softwares have came very handy. There are soo many applications to do online calling, trying to bring people closer. But one major problem all of them face is the engagement level. Even though we can communicate face to face, but the problems arises in group setting. Few weeks back I attended a virtual birthday of my friend and there were 35 people on call and i just knew personally about 10 of them.So just to ask how they were, I had to wait for my turn to speak and it got very annoying when i had to hear other 2 people talk and share updates about their life, when I did not even know them. Then I realised I can just chat personally to my friend or use breakout room but it was a lot of work and hence I lost the engagement. I was unable to make small talk and socialize. Hence I realized no other application have that feature. People become at one point unengaged on video calls and it is no longer similar to physical setting. Hence this problem need to be rethought. In coming years, virtual call will be a bigger means of communication , when people start going to space more , etc..

What it does

Our application is trying to redefine how virtual interactions happen. We want the people on the call to be more engaged and enable them to ping people and make small talks within the main conference room. Currently the layout is very intuitive and similar to zoom like conference apps but with added functionality of instant ping. So when all the users, lets say 6 people, are in the conference call, and person 4 is talking. At this point person 2 wants to say something really quickly to person 3. Using our Ping app, he/she can ping the person3 directly while still being part of the main conference room. So when person 2 and person 3 are on ping call, no one in the main conference room can hear or see them but person 2 and 3 can hear and see each other and also on the background they can see everyone else and have low volume (20% as default) from the main conference call. This ping call can be made open and hence other users can request to join this call. But we have a lot of features plan for or next release, both from ui/ux side and backend architecture.

How we built it

We are building the web app and in this weekend's demo we were able to achieve the main feature when the ping call is made, and the main conference room people stops seeing the people in ping call. We used express server, peer js for webrtc and socket.io. We used javascript as our main language. We first started looking online on "how to make video calling app" and tried to understand the current architecture of various different video calling apps. Then we tried to design our own data flow and architecture to implement the ping feature. We used visual code studio as the code editor and used socket.io as server, clients connection and peer.js( api for webRTC) to make peer to peer connection and stream media between peers. We deployed using Heroku. We tried using google cloud, but due to issues in our front end, we were not able to.

Challenges

The first challenge was trying to solidify our understanding of exactly what we wanted to accomplish (i.e. the user stories). Trying to understand the video streaming connections and how important performance is in video streaming took the most time. It was mostly us searching for background information, before settling at some promising tutorial videos/articles to follow. We even went through Jitsi open source code, but it was too adavnced for our level right now. We used the PeerJS package, which helps with managing webRTC, however for our specific application, it was a struggle to customize the peer connections the way we wanted them to for Ping calls. None of us have dealt with webRTC tech nor video live streaming. Most of us have no experience in front-end, either. We tried working with Firebase for hosting as well, which required an in-depth exploration into Google Cloud but we ended up hosting on Heroku.

Accomplishments

Learned a great deal about webRTC through PeerJS. Set up connections through PeerJS and using a PeerJS server. We were also successuful to have a working demo of basic ping feature which is really important to support if our idea is technically possible or not. Also, we were always thinking of scalable design and architecture, which is really important for sleek design.

What's next

Finding ways to optimize multiple video streams in a single room. We have unfinished pages that we will finish to welcome the user to our application and provide a positive outlook for the app. We are trying to rethink the meaning of virtual conference app and present users with a completely new experience. Having multiple speaker and ping is just one feature. As said before, we are trying to bridge all the gaps between physical and virtual conversations to make the virtual calling experience more seamless and engaging. We are currently using a mesh, where each user is connected to all other users in a separate connection. We plan to try out a client-server. We also plan to use React (and react redux) to better organize our data passing more optimally. Lastly, we hope to complete the web browser version so that we can ship out a software that would also work for mobile.

Built With

Share this project:

Updates

posted an update

Current demo link only work for "go to the video conference room" and once we have the room, sending that to other users to join the meeting. Here we r trying to demo the ping function. Once all three users are in the call, and user 1 ping user 2 on their tab by clicking their video, user 1 and user 2 can view everything including main meeting room containing user3 , but people who are not in ping call( user 3) stops seeing user 1 and user 2.

Log in or sign up for Devpost to join the conversation.