Inspiration
We chose this project due to the fact that this is something that we felt we would like to use ourselves. We wanted to create an application that would help us learn more efficiently and effectively whilst implementing some interesting uses of AI.
What it does
It has 2 main functions. 1: Automatically generates customized flashcards based on uploaded material (PDF). 2: Acts as a conversationalist with no prior knowledge of a selected subject in order to implement the Feynman technique. The user has to explain a subject to GPT while it responds with corresponding questions to solidify the user's understanding of the material.
How we built it
Flashcards:
Flashcard creation: First, when we received a PDF file, we used gpt4 to extract text from the file and create flashcards. We also used NLP libraries to extract keywords from the document to give the user more insight into the document. The flashcards and the PDF files are then uploaded to MongoDB.
Flashcard display: flashcards are retrieved from MongoDB. the user can view their automatically generated flashcards on the webpage.
Feynman Method: Feynman's method is a learning strategy often attributed to Richard Feynman. In essence, it's "learning while teaching." We built a chat app and instructed chatGPT to pretend that it has absolutely no knowledge on a certain subject, and asks the user to try and explain a certain topic of choice to the AI.
Challenges we ran into
Originally, issues arrived when we were using REACT as our front-end software, especially under time constraints, it was difficult to make the UI look good. Then after some research, we decided to switch to Streamlit and we noticed an increase in productivity and efficiency in our front-end development. Another major challenge was getting the flashcards feature to work with Streamlit. Streamlit was being very stubborn with how the car was being displayed, and it took a while to figure out how to fix it.
Accomplishments that we're proud of
One accomplishment we're proud of as a team is our ability to understand how to tackle problems and adapt quickly as needed. One great example was when we understood the limitations of time with REACT and changed to Streamlit and committed to our decision.
In a limited time, we were able to learn Streamlit from scratch and build a fully functional website.
we were able to completely containerize our app and put it in Google app run, along with secrets management and complete CI/CD from our GitHub repository.
we were able to make something that gained high praise from users.
And, most importantly, we were able to make something that we are truly proud of.
What we learned
We learned a lot about front-end development. REACT is really customizable and useful, however, there is quite a learning curve and it takes a long time to make things look good, but we also learned the usefulness of Streamlit and how easy it is to use quickly. It may not be as customizable, but we learned different frameworks for different needs. We also learned how to adapt quickly in such a fast-paced environment. We had a few major changes midway through, so we had to be able to adapt in order to succeed.
What's next for Sapphiric
Future Implementations: Adding support for YouTube videos would be a good addition. Making the flash cards editable. It would be useful to delete or edit cards that GPT-4 didn't get exactly right History of previous Feynman techniques used so a user can go back and review Separating flashcards into sets Adding spaced repetition into the flashcards to maximize efficiency
Built With
- docker
- google-cloud
- gpt-4-8k
- mongodb
- python
- spacy
- streamlit

Log in or sign up for Devpost to join the conversation.