Inspiration

Polygo was inspired by learning tools like Duolingo that seek to make difficult and arduous task enjoyable by presenting them in a game format. Users are able to learn new data structures from scratch, refresh themselves on rusty topics, and reinforce their current knowledge in short, customizable practice sessions. Whether you are trying to study for a class or getting as much practice in before an interview, situations that are not too uncommon, Polygo lets you be as prepared as possible.

What it does

Polygo is a study companion that makes the boring task of learning data structures and algorithms fun! Users are presented with a roadmap of data structures that they are able to go through in any order. Their progress is continually saved so if they want to switch to a topic or finished studying, they won't have to worry about having to start over, too. If a user feels that they want to solely practice instead of learn one or more data structures, they have the ability to create quizzes for themselves with whatever topics they want. Finally, users can practice python with an interactive python learning tool.

How we built it

Our tech stack consists of Vite and React for the front end and Firebase for a backend. We initially started by planning a minimum viable product of features we wanted to include, mainly a roadmap to learn from and a way to get practice questions. When we felt we had a good enough idea of where to start, we created a React front end utilizing components from Material UI to make everything as seamless as possible. After we were mostly done with the front end, we started working on implementing Firebase to allow user functionality through authentication and a data base. Finally, when we had most of the features we wanted, we tried to add features we thought would contribute to the learning experience. Devin worked on creating a python learning feature, while Neema tried to find ways to implement a hosting feature and AI.

Challenges we ran into

The biggest challenges we ran into were implementing Firebase as well as using Cloudflare. Because neither of us had used Firebase before, it took a lot of looking through docs and trying to get help from mentors. After one failed attempt, Neema reverted back to a commit with not Firebase and was able to figure out how to implement the authentication. After we overcame the initial back end hurdles, Neema faced a lot of challenges with getting Cloudflare to work with the app. Even though authentication worked seamlessly on a local server, it would fail on a Cloudflare server no matter what solutions they tried. After multiple hours trying to debug, Neema tried to pivot to implementing an AI assistant, but wasn't able to complete it in time to include in the final product.

Accomplishments that we're proud of

We are proud of being able to learn new technologies and apply ourselves to a project that can genuinely help others. We were both unfamiliar with Firebase but felt that, after the hackathon, we were able to overcome a lot to be able to use it. Plus, we feel that our project is one that we can build on in the future since it fills a niche that a lot of people would want.

What we learned

We learned that it is important to do research before coding to decide when the best time to merge different pieces of a project together is and to check compatibility issues before attempting to use incompatible technologies. Implementing Firebase took up a lot of our time because we didn't know how it was supposed to fit in our code and if we did more research before or knew what we know now, we wouldn't have struggled as much. Furthermore, looking into technologies before using them is important because many different technologies have compatibility issues. Firebase and Cloudflare don't work well together because Firebase tries to make hosting proprietary and if we knew that before trying to merge the two together, we wouldn't have wasted so much time.

What's next for Polygo

We hope to keep building features that help people learn and study. As of now, we can build on top of the individual data structures to focus on things like big O, implementations, and code implementations. While our current lesson plans aren't as granular, there is a lot of potential to keep building with it. Furthermore, we can try and keep adding questions and increase the quiz features.

Built With

Share this project:

Updates