Learn Loop

Inspiration

The reason as to why we chose this challenge is because it resonated with us the most. As students, we understand the need to diversify learning methods according to each person's needs and the importance of making learning more enjoyable and engaging for lifelong learners. A platform that combines convenience, enjoyment, and customization felt like a meaningful solution to a challenge that we collectively face.

What it does

The goal of this app is simple: to be able passively learn anything in one's free time. That is why, by using machine learning, we can generate engaging educational content that can almost be consumed as entertainment for otherwise mundane subjects, in the format of TikToks / Instagram Reels. The user simply uploads a piece of reference material in PDF format, such as course notes or a textbook, and videos about the material will be generated and presented in an algorithmic feed. Relevant topics will be extracted and the app will also algorithmically determine what is most important for the user to learn at the present time.

How we built it

The Learn Loop mobile app is built using Flutter and Dart, allowing for a seamless native experience on both Android and iOS. We leverage local state management to ensure a clean and coherent experience across the various pages of the application. The application decides the next topic of each video using the well-known SuperMemo2 spaced repetition algorithm, adapted to the format of an algorithmic feed of videos and implemented within the mobile app. The platform also depends on a custom Python compute API, leveraging Ngrok cloud compute and FastAPI routes, where a custom LLM model is used to generate educational content from uploaded documents. We base ourselves on the open-source llama-3.2-1b model, optimizing both latency in order to ensure smooth playback while still delivering on fairly high accuracy for small blurbs of texts. Then, we layer it with the sentence-transformers/all-MiniLM-L6-v2 embedding model to transform uploaded source materials into a vector database. This allows us to guarantee consistency and accuracy with the source model while utilizing less resources. This whole process allows us to generate content on the fly from a list of topics that is also inferred from the source material by the backend. The technology stack, while complex, is unique in enabling the features of Learn Loop.

Challenges we ran into

Everything. Jokes aside, we ran into numerous issues concerning the implementation. As our technical stack has a lot of moving parts, some of which were not designed to intuitively work together, there was a quite a lot of time spent simply getting our implementation straight and to get the tools we need to run on our hardware / cloud infrastructure. Furthermore, as we tried to tackle a project of significantly higher technical difficulty then what we had previously dealt with, there was a much sharper learning curve than expected. Video files also posed a difficulty due to their size and bandwidth restrictions. Finally, trying to really focus in on our idea was definitely a communications challenge among our teammates. Yet, in the end, we managed to overcome these minor difficulties and come out as more experienced aspiring software engineers.

Accomplishments that we're proud of

What we are really proud of, is how functional our application is despite the time constraints. Most, if not all the main features we set out to build are fully functional at a small scale. Thanks our of choice of technology, it also become trivial to scale up later. We also successfully implemented some really interesting features, such as the custom LLM implementation as well as the overall architecture of the mobile app. Finally, we are proud of the work we managed to accomplish as a team and the undying perseverance that guided our efforts.

What we learned

We learnt that the organization and effective communication is crucial to success. With structured plans and meetings, we are able to understand what to do and where we are headed. We had many difficulties in this hackathon that led us towards tweaking our starting ideas and having plan B's.

What's next for Learn Loop

Adding social aspects to the application would be something that we put aside during this hackathon and something we think would be incredibly interesting. Furthermore, making the app overall more engaging by refining the active recall algorithm as well as increasing compute resources to allow for more refined LLMs while still maintaining similar latency. A streaming system would also help alleviate stress on hardware resources.

Built With

Share this project:

Updates