Inspiration
Globally, the software industry is projected to grow by 31% in the next few years. Despite the ongoing recession, there is a substantial population of aspiring developers who wish to get into top tech companies. As a result, clearing Technical interviews is a big challenge.
Problems faced while preparing for interviews
Lack of guidance: While there are plenty of websites that help with interview preparation, there is no real-time clearing of doubts. Most websites just have predefined hints and complete solutions. Both of these don't mimic the real interview experience Time Constraints: Many software developers have busy schedules and may not have the time to dedicate to interview preparation. According to a survey conducted by HackerRank in 2018, 50% of developers say that time is the biggest barrier to interview preparation. Interview anxiety: According to a survey conducted by Hired in 2019, 92% of software engineers experience anxiety during job interviews. This can lead to poor performance, despite having the necessary skills and experience
What it does
The extension would address the problems of lack of guidance, time constraints, and interview anxiety by providing personalized and context-specific help to users.
The extension would extract question data from different platforms and provide recursive text extraction to get the relevant information. It would also use local storage to preserve each message and differentiate them based on the platform and question. The extension would use prompts to yield the most desirable responses to the user's queries and help them in a more personalized manner. Overall, the extension aims to improve the interview preparation experience and help aspiring developers clear technical interviews with more confidence.
How we built it
JavaScript: The Chrome extension would likely be built using JavaScript as it is a widely used programming language for building browser extensions.
Chrome Extension API: The Chrome Extension API provides developers with the necessary tools and interfaces to create extensions for the Chrome browser. The API includes features for managing tabs, injecting scripts, and communicating with content scripts.
Web Scraping: To extract the question data from different platforms, the extension would likely use web scraping techniques to parse the HTML and extract the relevant information.
Machine Learning: The extension would use machine learning technology, specifically natural language processing (NLP), to generate personalized responses to user queries.
Local Storage: The extension would use local storage to preserve user data, including chat messages and question information, even after the extension is closed.
GitHub: The developer may have used public GitHub repositories to research and find sample prompts to design the extension prompts.
GPT-3 API: The Chrome extension for technical interview preparation, the GPT-3 API could be used to generate personalized hints, solutions, or feedback for users based on their queries or input. For example, if a user is stuck on a technical problem, they could ask the extension for a hint or solution, and the GPT-3 API could generate a response based on the user's specific problem and their previous interactions with the extension.
Challenges we ran into
Challenge #1: Extracting the question data from the raw HTML page of each platform was a significant challenge since each question div had children elements which also needed to be extracted for reading the text present inside.
Solution: Getting the element and its classname was fairly straightforward using devtools. However, the challenge was to extract the question data from the nested HTML structure. With help from ChatGPT, the developer created a function that recursively extracts each element until it finds the text present inside and appends it to a string. This approach helped in extracting the relevant information from the complex HTML structure.
Challenge #2: Preserving each message after the extension was closed. Also needing to preserve chats based on the question from each platform.
Solution: Solving the former was quite simple by using local storage. However, the way it is used on chrome extension is slightly different from the usual syntax. The developer used the local storage to store the chat history and retrieve it when the user opens the chatbot again. To solve the latter, the platform and question title were extracted from the URL, and added to the messages key, thereby creating unique local storage objects for each question. This approach helped in preserving the chat history based on the question from each platform.
Challenge #3: Creating prompts that yielded the most desirable responses. In most cases, a direct prompt like "give me a hint", won't give the response you'd expect. The model often gives the full solution when asked for a hint. So designing the prompts was a challenge.
Solution: To overcome this challenge, the developer researched prompts and found some public GitHub repositories with sample prompts. These prompts were designed to yield the most desirable responses. The developer also created placeholder texts for these predefined prompts so that the user experience is not ruined due to the large text from the prompts. This approach helped in creating prompts that gave relevant responses and improved the overall user experience.
Accomplishments that we're proud of
we're proud of our interview preparation assistant NextLevelCodie as:
User-friendly interface: We've designed the extension to be easy to use, with a simple and intuitive interface that allows users to quickly navigate through different interview questions and get the help they need.
Real-time assistance: With the help of ChatGPT and our AI-powered chatbot, users can get real-time assistance with their interview questions. Our chatbot can provide customized hints and solutions based on the specific context of each question, helping users to prepare for their interviews more effectively.
Seamless integration with popular coding platforms: Our extension seamlessly integrates with popular coding platforms like LeetCode and HackerRank, allowing users to easily access interview questions and get assistance directly within the platform.
Personalization: We've made sure to personalize the experience for each user by allowing them to save their progress and chat history and by providing customized prompts and solutions based on their unique needs.
Overcoming technical challenges: We've overcome several technical challenges in building this extension, such as extracting question data from raw HTML pages and preserving chat history after the extension is closed. Overcoming these challenges has allowed us to create a more robust and reliable product.
What we learned
From this project, we likely learned a lot about web development, particularly building browser extensions. Additionally, we likely gained experience working with APIs, particularly the GPT-3 API. we have also improved your skills in data extraction and management, particularly in extracting data from HTML pages and storing it locally.
we have also learned about the importance of user experience in software development, particularly when it comes to designing prompts and providing real-time assistance to users. Additionally, we have gained experience in project management and problem-solving, particularly in identifying and addressing challenges that arise during development.
What's next for NextLevel Codie
we have certain plans for this project with the help of our team we will try to do certain things like:-
Improve user interface: While the current extension provides valuable assistance to users, there is always room for improvement in terms of user experience. This could involve redesigning the interface to be more intuitive, adding more interactive features, or integrating more helpful prompts.
Integration with other APIs: In addition to the GPT-3 API, there are many other APIs that could be integrated to provide additional functionality to users. For example, an API that provides code completion suggestions or syntax highlighting could be useful.
Testing and optimization: As with any software project, there is always room for testing and optimization. This could involve testing the extension on a wider range of devices and browsers, optimizing the code for better performance, or using user feedback to identify and fix bugs or improve features.
Revenue Model
Freemium Model: Offer a free basic version of the AI chatbot with limited features and access to a limited number of questions. Upsell premium features and content to users through in-app purchases or subscription plans. Customization and White-Labeling: Offer customization and white-labeling options for coding bootcamps, coding schools, or tech companies to use Innovative Codie as a branded solution for their interview preparation needs.
Built With
- developer
- extension
- gpt3-api
- html/css
- javascript
- natural-language-processing
Log in or sign up for Devpost to join the conversation.