Inspiration
We were looking to build something beneficial for beginners in the world of Computer Science, and we realized the potential of Python since it is an easily approachable programming language. As classmates, all four of us have experienced poorly designed online programming platforms before and were determined to resolve this issue. We wanted to address antiquated UIs/poor UX, test-casing flexibility for lesson builders, and focus on building higher-quality lessons.
What it does
Slinky.codes is a programming platform, initially putting the focus on teaching Python to middle school and early high school students. After selecting a lesson from the learn page, students have access to a real-time Python terminal, a lesson outline, a text editor, and their pet. Pets are our incentive to encourage programming by letting kinds pick a pet when they first create their account and unlocking more as they finish lessons. The UI and UX are very intuitive, making it easy for many beginners to learn Python.
How we built it
We built the platform by creating a backend API server using Node.js and Docker. The API service connected to a React app written in pure TypeScript, which was responsible for handling almost all operations of the service. On the backend, we also had to implement a python parser that was capable of parsing itself and reporting accurate metrics. The entire platform utilized PostgreSQL as a database system and is deployed in production on a Kubernetes Cluster, capable of achieving high availability over 6 different distributed nodes around the globe.
Challenges we ran into
Creating SVG animations and implementing them using React Spring was a challenge because it was a new and complicated library that we had to integrate into our workflows. The animation process was very challenging, but we were able to pick up the skills necessary for it.
Another tough challenge was making the python interpreter in the backend. The API service was essentially tasked with securely executing a python script that could give us variable and function information, output information, and analyze python scripts at a low level.
Collaborating effectively when working with a separated frontend backend. While we typically work together as a team to not waste any time or efficiency, we found it challenging to work in a repository that was a combination of a backend server and website.
Accomplishments that we're proud of
Our error reporting and metrics on Python scripts are unparalleled by any other platform that offers online programming experiences. We're able to provide very deep information, including information like all variables and debugger information.
The UI and UX in this product are some of the most polished we have developed. They combine simplistic and open-ended design practices with a robust framework and design capabilities to create one unique product.
What we learned
While some members of our group were already familiar with TypeScript or markdown, the others learned how to utilize these to make an effective and cohesive project alongside the benefits that such a combination of languages can have when building applications in the future.
It's hard to communicate across languages without any sort of third-party/extraneous protocols because of the complexity and different systems of many languages and how they execute themselves.
What's next for Slinky.codes
Next, we plan to keep the idea going on and develop a real platform that's available and released for a very cheap price in many places around the world.

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