Inspiration

Our team has a background in education, and we understand that students learn in different ways. From our own personal experience as students, and our background as educators, we understand how frustrating it can be to iterate on your own learning process. The trial and error leads to countless wasted hours, and oftentimes, students will have to repeat this process with different subjects and topics. Every student must go through this, but what if there was a better way that didn't require extra outside study or for one to dilute their focus? What if we could learn from similar students' processes, while using the best underutilized data requisition tool, the learning management system.

What it does

We built a learning management system that builds assignments directly on the platform, and has teachers label the dimensions that make questions difficult. Using LLM tagging and a deep recommender system , we are able to find previous students whose skills and challenges line up with our user, and recommend questions that were most helpful to them. Assuming that similar students will benefit from similar questions allows us to mimic the pathway these previous students took, minimizing wasted time on questions that are suboptimally helpful.

How we built it

We plugged in our LLM tagging (Llama 70b) and recommendation system (Tensorflow Deep Retrieval) procedures into a Nextjs backend, with a Reactjs frontend. We generated synthetic data using numpy, by designing distributions to model student and question profiles, then stored the data using pandas, finally exporting it to supabase. Our team split tasks based off of what areas we were most comfortable with, and clearly iterated as a group.

Challenges we ran into

We ran into trouble with some of the new technologies and strategies we tried to implement into our stack, but we will keep it to 3 main points:

  1. We had problems integrating the database connections with supabase, at first, with unexplained errors. Solution: We kept hammering away at the documentation, and eventually resolved these errors, by finding out that supabase does not auto-enable a feature we assumed was enabled.
  2. We also ran into trouble with our data generation, and how to properly create the student profiles we would feed into our model. Solution: We decided on designing different probability distributions to sample from in order to model different student groups, which effectively creates a clustering pattern for the recommender system to learn from.
  3. We had problems supplying our data to the Merlin DLRM, as it had a structure that was a bit different than other models/recommendation systems we had worked with before. Solution: We realized our recommendation task was a bit more complex than we had initially realized. We switched libraries and architectures, ending up with a TensorFlow deep retrieval architecture that was different than our original Merlin pick.

Accomplishments that we're proud of

None of us knew each other before TreeHacks, so the fact that we were able to build a product together, while only knowing each other for a few days, feels amazing. We all worked with at least one technology we weren't comfortable with, but we were able to understand and build with them, by the end of the weekend. We grew tremendously as devs just over these 36 hours, and it was all because we were willing to push ourselves to pick up new skills.

What we learned

We learned a ton about the intricacies of the libraries and frameworks we used in our project. In particular, we learned more about database socket connections, saving and exporting models with Tensorflow/Tensorflowjs, and data generation.

What's next for Ladder - The AI-Enabled Learning Management System

Integrating other core learning management system features! Our platform is limited compared to competitors' in terms of core feature integrations, so making it perform similarly to other LMS tools' feeds, integrations to other platforms, and roster management.

Built With

Share this project:

Updates