Inspiration
Programmable was inspired by the need for a more engaging and interactive way to learn programming languages, much like how Duolingo makes language learning fun. As computer science students ourselves, we wanted to build a platform that motivates users to practice coding regularly by using gamification techniques like streaks, achievements, and real-time feedback.
What it does
Programmable is a web-platform designed to help users learn programming languages through practice problems and challenges. It offers a range of coding exercises across languages like Python, JavaScript, and Java. The platform tracks users' progress and streaks to provide customized practice sessions based on performance.
How we built it
We built Programmable using React for the front end and Flask for the back end. User authentication for Google sign-on was handled by FireAuth, and Google Firestore was used for storing user data, including daily progress and streaks.
Challenges we ran into
One challenge we ran into was choosing our technology for database management. While we were familiar with relational databases such as SQLite, we opted for Firestore for an online, noSQL platform to escape our comfort zone. This was a learning curve that we were happy to take on.
Accomplishments that we're proud of
We're proud of the platform's home page and ability to store persistent user data across different sessions, as well as our retrieval of questions from our database.
What we learned
Throughout the development of Programmable, we learned a lot about managing complexity in a full-stack application, especially in terms of real-time interaction between the front and back end. We also gained experience in optimizing user experiences and gamification techniques. Additionally, balancing the educational content to match users' varying skill levels was a significant learning curve.
What's next for Programmable
The next step for Programmable is to expand the platform by adding more programming languages, as well as deeper lesson plans for intermediate and advanced users. We also plan to introduce a social aspect, allowing users to collaborate or compete with friends.
Log in or sign up for Devpost to join the conversation.