Inspiration

For most students studying can be a daunting, exhausting, and mostly time-consuming task. We also like to study most effectively and for us, that is with Quizzes. There are multiple third-party platforms where we can take these quizzes, but mostly those don't have a narrow enough scope on the topic and teach us materials we don't need for our exams. Our app helps to solve this issue by only making quizzes from the notes you took in a class thus narrowing the scope of studying to only what you need. Also using the tools we use we are not only able to help English-speaking students but translate to over 100+ languages around the world.

What it does

Uses the mobile's camera to take pictures, which are scanned by the Tesseract OCR, and converted to quizzes via an OpenAI call. These are returned to the user, who can try to solve it. The input notes can be posted via PDF files, plain text, and even pictures.

How we built it

The web API is built with ASP.NET, and the business logic was implemented in .NET 8. We used React Native for the UI because it is a cross-platform solution. The client and the server communicate through JSON and files. We used adb for testing with Android mobile devices.

Challenges we ran into

This was our first time using OCR-s and React Native, so we did not know the best practices yet. We also had trouble connecting to the server, and sending requests, especially with the files.

Accomplishments that we're proud of

We implemented three different ways to create quizzes, a nice design, and a maintainable backend. We probably do not know about all the possible challenges and extensions that might come, but we tried our best to prepare for it.

What we learned

It is not easy to communicate between two different types of modules, even though the object templates are alike. The 20-80 principle always comes along in a project, especially when the technology is new. And that we can come across those challenges, even in a short amount of time.

What's next for Notes2Quiz

  • support multiple languages (over 100 languages)
  • select how many questions we want
  • add a new question type, where there can be more than one possible answers
  • store previous quizzes and their results in a file or database
  • implement authentication and authorization so that the user will only reach their own data
Share this project:

Updates