Inspiration
Our group wasn't originally sure what we wanted to do in this hackathon, but we knew that we were going to use generative AI to some extent. Generative AI has transformed (pun intended) the world recently and has seemingly infinite possibilities. We started the project with the idea to create a tool that can help us with some problems in school. Making flashcards and study guides can be time-consuming, so we wanted to see how we could utilize AI to speed it up. The result of our work was even better than we would have expected, and we believe that it can be used to facilitate more than just learning in some college courses.
What it does
We made a website that can take almost any input or media, and convert it into useful study materials. StudyShore can process videos, audio, and several different text documents including PDF, Word, and PowerPoint. It can convert all the information in these formats into a brief but detailed summary. After reviewing the summary, a user can do a brief test on some flashcards. When they feel adequately prepared, they can move on to a quiz and get immediate feedback! Users will also be able to export any of the materials into Word documents, or share the link to any other user! StudyShore can also cover a very wide array of topics and subjects. We were thoroughly able to test it in mathematics and computer science because that's what we are good at, but it also showed high potential for other topics.
How we built it
For the front end, we decided to make our project in Next.js. Next.js is built on top of React, which is a library our group was already familiar with. We also used a handful of UI libraries like Ant Design, Toastify, and Lucide to make the process smoother. For the backend, we used Flask because it was a reliable server for Python, and we wanted to use Python since we were working with AI. The generative AI model that we decided to use was Gemini because it was the newest one and outperformed other popular models like GPT-4. To parse videos and audio files, we continued to use GCP and invoked the speech-to-text API. We also used a handful of other Python libraries to both read and write files. For example, we used the docx library for creating the export docs, as well as reading Microsoft docx. In the end, our front end was clean and responsive, and our front end was efficient and flexible.
Challenges we ran into
Surprisingly, the most challenging thing for us was working with all the different document libraries. We thought working on the AI side of it would be the most challenging, but we all had experience with working with APIs so it was much easier than anticipated. On the other hand, there were so many different files and formats we wanted to cover, that we ended up getting spread thin. We learned a very valuable lesson to not underestimate just working on deceptively simple libraries.
Another challenge we ran into was just prompt engineering. We did not have much experience with prompt engineering, so it was hard to get Gemini to do what we wanted, and it kept ignoring us ):
Accomplishments that we're proud of
I'm very proud of how much we were able to finish in such a limited time. It was our first-time speed running a full-stack project like this, and it was incredibly stressful at times, but we managed to pull through. We are also incredibly proud of the results we achieved with the final product and believe that it's usable with just a few small tweaks.
What we learned
This was our first time using GCP as we've always used AWS, so that was very interesting. Akil learned a lot more about frontend since he usually plays more of a backend role, and similarly, Yash and Kartik learned a lot more about backend since they usually play more of a frontend and design role.
What's next for StudyShore
As mentioned earlier, one of the main things we need to focus on is making better prompts. It took a long time to make each request, so we didn't have as much time to fine-tune our prompts to see what worked and we believe that it could make a huge difference. Another challenge we are potentially looking at is using a different Generative AI model. The way we built our backend is incredibly modular, so it should be easy to rotate parts around.
Built With
- database
- figma
- figmajam
- flask
- gemini
- google-cloud
- next.js
Log in or sign up for Devpost to join the conversation.