Inspiration

We wanted to explore how AI can impact education, especially self-learning. We have all tried using spaced-repetition software, like Anki, that uses question/answer flash cards to reinforce learning over a time period. The friction with this software is that you have to spend a lot of time exploring topics, creating cards, organising them, and then setting up and running Anki. What if there was a AI-powered tool that could automate this process and provide an improved UX for learning advanced topics quickly.

What it does

StudyBuddy prompts users to provide a topic that they are interested in learning more about and testing their knowledge. After providing the topic: e.g "Can you help me study for a chemistry exam on crystallography?" StudyBuddy will ask the user some basic questions on this topic. As the rounds progress, StudyBuddy will ask deeper and more complicated questions until the user shows some limited knowledge. At this point, StudyBuddy will provide the answer, and then move onto another subtopic (within the initial topic).

After the user has learned a sufficient amount of information, StudyBuddy can switch to a testing mode, where it will retrieve some generated question/answer cards (sourced from knowledge sources like wikipedia). After testing a question, the next question will be retrieved based on the success rate of previous questions.

How we built it

Frontend built with Nextjs and React, using custom hooks to engage with our Backend. Backend written in Python, using FastAPI and Langchain. We created langchain agents (using Claude) to carry out the two different modes (learning, testing) and store the conversation in the backend. We use MongoDB to store generated question/answer cards. Both the bakcend and frontend are built and ran in docker containers.

Challenges we ran into

  • Streaming was a challenge that delayed us by a few hours, working out how to stream a response from the langchain agents and consume it in the frontend so that users are not waiting a long time from a response.
  • We didn't manage to finish the project, as the card generation and testing mode was not fully complete. We ran into some challenges with linking the different areas of our code base together.

Accomplishments that we're proud of

  • Proud we got something somewhat working, and proud of the creative idea we had. ## What we learned
  • We learnt a lot about langchain, claude, python/react

What's next for StudyBuddy

  • Finish the project, generating question/answer cards and implementing the spaced repetition test mode.

Built With

Share this project:

Updates