Inspiration

We realized that with how the programming landscape currently is, learning new languages has been easier than ever, with more resources and things like chatGPT to help guide us. We decided to create this project in order to be a part of that space because we've wanted to create a place where developers can easily learn new languages.

What it does

Basically, the project consists of two main things, a backend and a frontend. The app (frontend) is designed such that when you input what language, difficulty, and question number you want, you get some multiple choice questions that you can then answer. We also have a flashcard feature that acts as a Q&A, and you can "flip" over a card to its answer on the other side.

How we built it

For the frontend, we used SwiftUI as our main framework, along with RealmSwift in order to make storing data locally much easier. For the backend, we used typescript, along with express and the OpenAI API in order to serve content to the end user via API endpoints.

Challenges we ran into

In the frontend, we ran into a lot of bugs, particularly involving database issues, which we would eventually fix when we transitioned everything into realm from SwiftData. We also weren't familiar with how to make API requests in SwiftUI either, so we had to figure that one out as well. In the backend, figuring out the right prompt in order to get the desired result took forever, and we actually think we learned quite a bit about prompt engineering from it.

Accomplishments that we're proud of

In the frontend, we're proud that we were able to make an intuitive and easy to use app for the enduser that allows them to pick any language they want to learn. We're also proud that we learned how to make API requests in Swift, and that we learned how to use Realm effectively. In the backend, we're proud that we were able to get the openAI API to work as we desired, and that we were able to make it serve the correct content to the user. Overall, having an app that works very well and very user friendly was something that we were proud of.

What we learned

In the frontend, we learned how to make API requests in Swift, how to use Realm, and how to use certain styling like scenePadding. In the backend, we learned about prompt engineering, how to make the AI give the output we want it to, and how to cross compile from typescript to javascript pretty easily.

What's next for QuizIt

Next step for QuizIt would be mainly getting a better UI, especially for questions, and having a backend server that can handle as many requests as we wish in order to make the app usable for the average person.

Built With

Share this project:

Updates