Creativity, Curiosity, Coding! Those are our three C's, our core values here at PyPlay. We wanted to create an application to teach young coders the basics of Python. We want to provide an easy-to-use interface, where kids can write code, and visually see their code come to life. Unlike other platforms, where you drag-and-drop blocks, with PyPlay, you're actually writing real Python code!
What it does
PyPlay is an interactive environment for children to learn to code in Python by building games following a tutorial. Users can write code directly into the python editor, then click run to see their game come to life as they add more code.
How we built it
We built it using a Heroku server with NodeJS backend. The front end uses Bootstrap and some HTML5 features such as a Canvas. We used Skulpt to parse the Python written, and CodeMirror for the text editor. We used a HTML Canvas to display the output. we also used GarageBand to make all of the sounds for our app!
Challenges we ran into
Connecting the Canvas to the Python code written was more challenging than we initially anticipated. Also, the initial setup of the Heroku was something nobody was too familiar with (but now we're experts lol). Also, unsurprisingly, aligning Divs proved to be a much harder task than expected
Accomplishments that we're proud of
We're proud that we created a functioning prototype that actually works. Despite the UI not being amazing, we think it's a very solid effort for 24 hours, especially considering we all got over 9 hours of sleep :')
What we learned
We learned a lot about using Heroku, as well as some new APIs which may come in useful in the future. We also learned a lot about collaboration, and making sure we know when to ask for help if we are struggling with something. We also learned how to give constructive feedback to our teammates to get the best end user experience for the user.
What's next for PyPlay
We wanted a minimalist design to make it easy to understand for now. However, we want to expand it with more features such as:
- Live multiplayer games (using web sockets)
- More languages supported
- Sharing of created games