Python is a beautiful programming language. As a designer, I find the clean code and organization very appealing.
Django is a Python framework (like Ruby on Rails is for Ruby, another programming language you might have heard of). It is the most feature-complete and beginner-friendly web framework for Python: lots of useful utilities are built in and there is a massive amount of resources (tutorials as well as plugins) due to the size of the Django community.
But what exactly are we building?
Most tutorials start with a specific project. The official Django tutorial, for example, creates a polling app. But what if that tutorial subject doesn't interest you?
If you're like me, you would finish the tutorial but not feel any "ownership" over what you built because you essentially replicated another project. It's hard to relate and really understand what you're doing unless you feel involved. To that end, we're going to try something a little different here.
Hello Web App is going to walk you through building a generic "collection of things." However, this framework covers many different types of web apps you could build:
What's written here is going to be generic and vanilla, and it's up to you to decide what exactly you're going to build using Hello Web App. Pretty much the only thing you're going to change are the names of code bits, but the functionality will remain the same.
Some specific examples of what you could build using this book:
Take five minutes and think about a collection of objects that you're going to build using Hello Web App. Don't worry about scope just yet (we're getting to that); just find something you would be interested in working on.
What's your "collection of things" project?
Oh goodness, there's an acronym sneaking in, and I said I wouldn't do that.
Your MVP—Minimum Viable Product, a popular term in start-up land—is the minimum you need to build for your app to work and be useful to users.
Sometimes people get an idea for something they want to build and spend four years trying to perfect it. But there will always be another feature to add, another bug to fix, another thing to improve, all while you could be getting real people to use your app and give you feedback (real feedback) on how to improve.
Building your idea might seem really intimidating, especially when working with real customers. But having real customers will be an incredible motivation to work on your web app more.
For example, my first programming project mentioned before — today, it's chock full of features. There are free and paid accounts, using Stripe and PayPal to trigger recurring charges. There are a bunch of different ways to browse pages, such as by location, by budget, or by style. There's an API so other websites can integrate vendor listings into their websites powered by my app.
None of these features existed in the first version I built.
The only real features I needed for that first version were:
It took me only six weeks from deciding to learn how to program to launch my first app. Two weeks later, it was profiled in a prominent design blog. Swamped by customers, my startup was born.
Even the simplest of web apps can grow into something big. Something you build now could become a business.
Take some time to write down your "collection of things" project idea, and then write down every awesome feature you think it should have. Then, circle only the ones that are really truly necessary. Make your web app as small and easy to launch as possible. With luck, the lessons of Hello Web App will be all you need to launch your app, and if not, you'll have only a few new concepts to learn before you can launch.