Inspiration

I’ve always had to use online practice tests to prepare for my exams, so I wanted to build an application that could help not only me, but any student to easily make as many practice tests as needed

What it does

It takes in a pdf of notes and generates a stream of practice questions from it. It displays the question and four possible answer choices, allowing the user to select an answer choice in which the app will display if they got it right.

How I built it

Using:

  • Next.js 13 framework
  • LangChain’s toolkit
  • OpenAI API

Challenges we ran into

  • Difficulty understanding how LangChain works and how we can utilize their API. We spent a couple hours on the first night just trying to figure out how and what's the best way to approach parsing and inputting the text into the query, and deciding about memory.
  • In addition, runtime was a difficulty we faced as through our test runs, we have varying long amounts of runtime for the tasks we wanted to create.
  • Spending our time making a MongoDB, only to realize that for our current project scope, it had little use and would actually impede our progress. We had no way to notify the frontend that the Database had new data in it, so we eventually scrapped the whole process.
  • Time Budgeting, as we spent a large amount of our efforts into the back end and initial front end page, and didn't allocate enough time to fully finish our question frontend and style

Accomplishments that I'm proud of

  • implementing a question generator using Langchain and OpenAI

What I learned

  • how to connect a flask backend, self-write api routes and connect it to a Next.js frontend
  • how to set up a MongoDB database and use Prisma to manage it
  • how conditional rendering worked in react
  • the process through LangChain, including embedding, vector stores, and chains
  • how large language models work
  • the importance of understanding the difference between client and server side functions

What's next for TestifAI

  • Finish styling the question and answer interface
  • Add an area for where the AI pulled the answer from the notes
  • Offer multiple PDF’s to be submitted
  • Utilize past questions to prevent the chatAI from coming up with similar responses.
  • Optimize our question generation process to where the user does not have to wait long for a question
  • Potentially make full, multiple page practice tests that it would generate utilizing a large set of pdfs/notes

Built With

Share this project:

Updates