Inspiration

After the difficulty we’ve faced head on for the past couple months as computer science students, we know first-hand just how important being prepared for an interview is. With the industry opportunities at an all time low, students need any opportunity they can get to practice. We built BetterVue as a user-friendly AI-powered interview tutor to help anyone with their technical and behavioral skills.

What it does

BetterVue starts with a user authentication page so each user can access their personalized comments for their responses. Following this, the user gets to decide if they would like to practice technical or behavioral questions. If they decide to practice technical, they are sent to a LeetCode-esque 1v1 platform where they race to solve a question against another user. This system has an Elo rating so the users can see where they rank against others. If they decide to practice behavioral, they can decide how many questions to be asked, how long to answer, and if the video is on or not. Once the program begins, questions are shown on the screen and the user responds to the question in the allotted time. Once every question is answered, the results page shows each question along with a graded score with comments on the response based on the STAR method.

How we built it

We built it using Next.js for the frontend, Flask for the backend, and Tailwind CSS for styling. We used SpeechRecognition to capture the user’s responses and Whisper to translate the speech to text. The project makes API calls to Groq to generate feedback using llama3. We also used MongoDB atlas cluster to store user login info and behavioral question responses/feedback.

Challenges we ran into

On the frontend side, the main issue we ran into was components affecting the state of other components that were either defined separately or on separate pages. We resolved these by digging into what each component did and what state/input combination should lead to what state. By making these divisions, it became much clearer as to what to do and how we could solve the challenges. On the backend side, we had some issues with socketIO’s learning curve and getting the multiplayer functionality to work.

Accomplishments that we’re proud of

  • Getting our project from 0 to 1
  • Being able to see and use what we’ve finished
  • Having fun with our project

What we learned

  • How to take user speech and process it to get text
  • How to use Next.js, Flask, and MongoDB
  • How to implement user authentication

What’s next

  • Add more questions to the technical interview portion, possibly allowing users to add their own questions with test cases
  • Feedback section to display the video and audio recorded during the practice session
  • Add a poll where users can add/vote for behavioral questions that they’ve encountered in their interviews (which can then be used as practice)

Built With

Share this project:

Updates