Our first DjangoDash: Try-Box – A truly interactive Python and Django Tutorial
On 17th and 18th august 2012 we participated in one of the most exciting python community-organized events: the Django Dash.
48 hours of pure adrenaline to put all of hour skills to test in order to create a cool application. Our goal was to build something that would add value to the community and would be a starting point for us to continue working on an interesting project.
Are you familiar with Try Git? You should. You can learn about it at try.github.com. It’s an interactive tutorial created by the Github team to show show in a very simple way how to work with a Git repository. It emulates a console, allowing a subset of Git commands to be executed.
Yes, your guess is correct: our idea is intended to be an evolution of Try Git. We set out to create a virtual development environment that worked as an interactive educational platform. A bit too ambitious for only 48 hours of development, isn’t it? Well, we thought of that too but we liked the idea so much that we decided the Django Dash to work on an alpha version that was good enough as a starting point.
Our score at the competition wasn’t as good as we hoped for. Anyway our coding skills were really improved, we gained a bit more of hackathon experience and most important of all we learned a lot from exchanging ideas with the community and from receiving feedback from the judges.
The goal of Try Box is to allow the user to learn about different programming languages, libraries and frameworks by interacting with an assisted development environment.
The environment has 6 main components:
- Continous Github integration
- A Tree-like filesystem browsing widget to edit files
- An Enhanced text editor to put in all of your magic
- A bash console for executing commands as needed
- A Virtual application server to test the application being built
- Most important: a wizard to guide you through the steps to create an application
Milestones, Steps & Hints
The key to understand the tutorial is to know that there are a number of milestones to be reached. Each milestones is reachable by following a number of steps. The user might need hints to complete each step. A milestone is a conceptual unit that belongs to a tutorial and hints are little pieces of advice given by Try Box to help the user to go through the steps to complete the milestone.
For each step, once that it’s been completed by following all the hints, Try Box will enable the “Next” button to go to the next step. Behind scenes, Try Box back end will run a set of tests to ensure the required result of the code given by the user, and if successful it will commit the code and push it to Github.
Once the tutorial is complete, project will be available on Github along with commit history so the user can review or share code, or even use it as a starting point for a another project.
Sophilab’s was represented by three of our magicians:
Educators and learners
As you can see, there are two strengths about Try Box that are very important in our opinion. It’s designed for educators. From the very beginning we took both actors into account: teachers and students. This platform must assist not only people who seek to learn, but people who want to teach about best development practices and new technologies. Everyone willing to create a tutorial will be able to do so by following a well defined set of configuration patterns.
It’s designed for those who want to learn a new technology but don’t really have the time to configure a whole new development environment. With Try Box, you won’t need to install anything on your local development box. Simply follow the tutorial and see your progress in real time.
- Github integration: 60% complete
- Navigation tree: 70% complete
- Editor: 80% complete
- Interactive console: 30% complete
- Interactive hints: 10% complete
- Interactive steps: 80% complete
- Virtual application server: 10%complete
- Tutorial creation support: 0%
python, django, google closure, 0mq, fabric, supervisor
If you’re interested in joining us and develop a component, please contact us at firstname.lastname@example.org, we’ll be really happy to hear from you. You can also take a look at the project status at https://github.com/sophilabs/trybox