Inspiration
There are dozens of apps that teach many programming languages. But, how do you know which one is right for you? You can't go through every app and every language. And what happens after you learn a language? You can't just kick back. No. You have too keep on practicing by solving programming challenges. Wouldn't it be nice if there was one unified platform that allowed you do all this. One that not only teaches multiple languages, with varying level of difficulty, but also helps you sharpen your programming and problem-solving skills through community spirited programming challenges.
What it currently does
The mobile app has lessons that help users learn beginner level Python. The lessons are divided up by chapters that outline the broad topic.
All the lessons come with a set of instructions that teach a particular concept (current example is for print statements) and quizzes (multiple choice and fill-in-the-blank questions supported) where users can test their knowledge.
At the end of a chapter, there is a programming assignment that combines everything the user leant through all the lessons in that chapter, thus serving as a "final exam" for the unit.
How its built
The GUI for the app is built using Flutter and Android Studio. The app's backend will be hosted in Google Cloud, where Firebase will be used for user authentication and Firestore/Cloud Store will be used for storing lessons plans, programming challenges, quizzes, and much more. Any user provided code -- like the code from programming assignments -- will be complied using Google Cloud Functions and Google Kubernetes Engine.
Challenges I ran into
The biggest challenge was writing the code for the GUI. To use Flutter, one must know Dart and I did not know Dart. So, I had to familiarize myself with the language and understand the various widgets (and their rules) used for the GUI, as I was writing the app.
Integrating with Google Cloud and uploading user's code, compiling it, fetching the results were also major challenges since it was all new to me, having never designed an app before. As such, the current support for compiling code in Google Cloud is still under development.
Proud accomplishments
I made progress in the mission! I actually have a basic framework for displaying chapters and lessons that is very flexible, allowing the app, in the future, add support for other languages without having to re-write code.
And of course, I learnt a LOT. From learning Dart to developing GUI using Dart to a functional framework, there where many challenges that pushed me beyond my comfort zone but in the end, taught me important lessons that I will need in the future.
What's next for Learn It All
So many things. Not only should the app support other languages, but it should have a list of programming challenges that mimic the style of questions asked in technical interviews to help users stay on top of their game. Furthermore, the app needs to create a community of learners and to so, it needs to host community challenges, like these hackathons, that bring minds together and fuel a community of learners.
Built With
- dart
- firebase
- flutter
- google-cloud
- google-kubernetes-engine

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