In the past weeks, everyone has become victim to COVID-19. Many are losing their jobs, being forced to move home, and work in dangerous environments. That doesn't even include the people who are getting infected. Our group is inspired by all those affected by the virus.
With the growing number of people utilizing remote work, our group decided to make a hack that would allow remote interviewing. We aimed to provide equal employment opportunities for all candidates. In order to do so, we enabled features that would make it more difficult for implicit bias to occur. With In Your View, we hope to expand job opportunities for everyone across the globe.
What it does
In Your View is a website application that allows a user to easily host rooms for interviews. The room will display the videos of all users inside the room alongside a text editor and room for notes. As one party writes code, the other is able to easily follow along on their screen. Our group also wanted to really emphasize continuous learning, and to do so, we implemented a feature that allows users to have access to their past interviews.
Once inside a room, all videos are blurred so the interviewer is unable to judge the candidate based off of their appearance. With these features, we hoped to make it more difficult for there to be bias against the job candidate.
How we built it
The backend is written in Typescript and Express/Node.js. We built a RESTful API to interact with MongoDB. Our Mongo database allows us to preserve past interviews as well as provide multiple chat rooms. We integrated Twilio's API for video chat between hosts and users and GCP/Firebase for code sharing. Additionally, we used Mozilla's web speech API and socket.io in order to create a component that displays and transcribes what the opposite user is saying in case a user has audio malfunctions. We primarily used React hooks to manage the state of the application when dealing with the Twilio API.
Challenges we ran into
For the frontend, we assigned people who had never worked on the frontend before. We had difficulty figuring out the documentation for creating the web layout, including stylistic elements. It was difficult for us to add more images onto the page because it would mess up all the components around it.
For the backend, we ran into issues with setting up Twilio for video chat rooms and finding ways to share the transcribed speech to text between hosts and users. To resolve our issues with Twilio, we mostly needed to fiddle with various components and read through the documentation. We found ways around sharing transcriptions through sockets. When we went to integrate between the two components, however, we found that we could not share both at once--we ran out of time before we could finish this portion. Furthermore, we ran into problems with MongoDB restricting the IP addresses allowed. We found a way to whitelist all IPs for now, however. This is not very secure, but we plan on fixing this in the future.
We ran out of memory on Heroku when we tried to launch the application with speech recognition. Removing this feature allowed us to fix it, although the site is very cpu/gpu intensive and will require more than your average Mac (this almost prevented us from recording actually). Additionally, we ran into issues with Gina's git account when her computer broke. She switched to her brother's desktop and we were under the impression that she had logged out of his Github account and into hers. However, when she committed to the project, it didn't recognize this and we couldn't figure out why nor could we figure out how to go back and fix commits. We left it alone as it wasn't a large priority.
Accomplishments that we're proud of
We are happy with the look and feel of the project. We like the aesthetics of the design and the workflow. Additionally, we were excited when we were able to finally share video and audio with other users in a chat room. We were also proud when we got the speech recognition component working. We only wish that we had more time to integrate this with Twilio. We left the component in the repository to finish in the future.
What we learned
For this hack, our group wanted each person to work in a different environment. We had people who had never worked on frontend gained experience in design and creating a web application. For the backend, we implemented many features that we have never used before, such as Firepad and MongoDB Atlas.
Additionally, this was some member’s first time creating a full stack project in 36 hours! The past day and a half, our team learned to work together cohesively and manage our time effectively in order to complete In Your View.
What's next for In Your View
In the future, we hope that In Your View gets deployed as a real web-based application. We would love for our project to be used in the real world, especially during this time of crisis. We originally implemented a speech recognition feature for ASL users. Due to issues integrating it, however, we had to remove it last minute. In the future, we would work on adding that feature as well as others to increase accessibility. At the time, the application is also not supported on mobile. Implementing across multiple platforms would be beneficial to our project's mission.
[MLH] Best Domain Registered with Domain.com
Our domain name submission is dogsbelivingrightnowtho.tech
Try It out