Inspiration

As future Computer Science students, we've been studying Data Structures and Algorithms to improve our coding skills. However, we found students struggling with writing efficient code and feel unsure where they are stuck. To address this, we've come up with the idea of developing an AI assistant that can identify one's weaknesses and point out mistakes they repeatedly make. This assistant would also generate personalized study plans to help them progress.

Currently, this project is focused on CS students and those who need help in learning coding. As we develop it further, we plan to expand and adapt it to various educational fields, enhancing learning experiences wherever needed, transforming Coding Buddy into Learning Buddy.

What it does

Basically, Coding Buddy works in a combination of a Chrome extension and a web application.

  1. Screen scanning & Chatbot assistant: With the Chrome extension, users can scan their screen and upload their coding solutions to the web app for Ai-analysis. The extension also provides real-time assistance, as users can ask questions to the chatbot within it.

  2. Ai anlysis: analyzies topics, code efficiencies, areas for improvement (+ creates practice problems): Once a coding problem or solution is sent to the web app, it is saved in the user's database to log their learnings. On the 'Problem' page, users can access both default analysis and Ai-analysis for the problems they've submitted.

  3. Identifies weaknesses & mistakes, generates personalized study plans: The default analysis displays the solution's efficiency (time and space complexities), as well as the topics related to the problem. Ai-analysis is where the AI identifies mistakes and areas for improvement in the solution. After the analyses are completed, the web will add the studied topics and the user's mistakes and weaknesses to the database to create a study plan later.

  4. Adopts best study methods: The problems in the database are categorized into five sections: Just Solved, Still Hard, Needs Review, Just Reviewed, and Easy Now. The Coding Buddy will determine what the user needs to review and generate personalized study plans based on these categories and the user's weaknesses saved in the database. It adopts Active Recall and Spaced Repition techniques--two of the most effective study methods.

Users can change the status (category) of a problem on its 'Problem' page so that Coding Buddy can track their learning progress.

How We Built It

We developed the extension with React.js and the web app with Next.js, both built in TypeScript. For the authentication and database, we used Firebase.

APIs Used

  • Summarization API: for weakness and mistakes summarization
  • Prompt API (chrome): for chatbot
  • Gemini API: to prompt datas in json & visual prompt

Challenges We Ran Into

We tried to implement several functionalities, but we couldn't complete them due to a lack of time:

  • Asynchronous authentication between the extension and the web app.
  • Partially capturing a screen by dragging.
  • Scanning a webpage to retrieve its content, rather than capturing it and sending it for AI image analysis.
  • Enabling AI to access the database and track users' learning progress, instead of manually making API requests to the database and providing the information to the AI in the code.

Accomplishments We Are Proud of

As self-taught programmers, We are proud of myself for quickly learning new technologies and transforming them into a complete project, even if we had a short development period.

What We Learned

This was our first time developing a Chrome extension. By building both the extension and the web app, our understanding of programming immensely improved. We learned how to establish communication between the web app and the extension through APIs, as well as how to implement authentication and create sessions using Firebase. We were also amazed by the extensive capabilities of Built-in AI and Gemini AI; the image analysis and content generation allowed us to complete this project successfully. The ability to generate content in JSON format was particularly helpful for creating most of the functionalities in my project. Additionally, they consistently produce accurate results, regardless of how formidable the inputs are; they always completes the tasks we asked for.

What's Next for Coding Buddy

We will develop Coding Buddy into Learning Buddy by making its functionalities adaptable in various educations. To do so, we will implement:

  • managing learning progress using
  • displaying learning progress on calendar
  • multilingual website using Language Detection / Translation API
  • generating study pathway / long term (montly) study plans
  • generating notes / tips to improve weaknesses
  • diverse input formats, document processing
  • generating question banks
  • personal ai assistant
  • gaming features to make learning entertaining (ie. online ranking system)
  • and more ...
Share this project:

Updates