Inspiration
I built this project based on my own experiences of reviewing for tests. I sometimes found myself with a lot of notes and not enough time to review them properly, leading to frustration and anxiety. I knew that there are students like myself who face the same problem, so I chose to address this problem by building my own solution, StudyVia.
What it does
The project uses a Tkinter-built UI where you can upload your notes as a PDF in the dropdown space, and the program will read the pdf file's text, break it down into chunks, and send each chunk to the Gemini API to get it summarized. Afterwards, it combines all the summaries into one full summary that Gemini simplifies, and it is displayed on the UI. There is also a quiz feature where the user can answer a 5-question quiz to test their knowledge, using radio buttons to allow for MCQs and keeping track of how many questions were answered correctly while providing explanations for why each question is correct. All quiz material is generated by Gemini and formatted as JSON for parsing. The UI also uses background threading to ensure that the UI can still be interacted with while the features run.
How we built it
I built it in Python and used Tkinter to create a GUI that the user can interact with. I also made use of the Gemini API to generate summaries and quiz material (quiz questions, answer choices, and explanations).
Challenges we ran into
I ran into a few challenges with UI, particularly designing the UI elements because I wasn't very familiar with UI components before this and needed some guidance on how to set up UI elements. I also encountered issues with the application itself freezing while its features ran, which I later fixed with background threading, and there was an instance where the Gemini model timed-out and disrupted the features.
Accomplishments that we're proud of
I'm proud of using Gemini meaningfully as I hadn't worked with it before, and I learned how I can prompt it to generate material and incorporate it in my own program. I also feel happy about the UI design and found that although it was challenging, it was fun to work with a GUI rather than have everything work on a command-line interface or directly in the terminal.
What we learned
I learned how to design UIs properly and how I can utilize the Gemini API in programs, which I intend on exploring further in future projects.
What's next for StudyVia - AI Study Buddy
I plan on improving this project later by adding more features, like generating video explanations using Gemini or another API if possible, and I also plan on adding Text-To-Speech voiceovers to read information aloud using ElevenLabs for those who prefer learning by listening.