If you're like most novice Python programmers, you likely are able to envision entire applications in your head but, when it comes time to begin writing code and a blank editor window is staring you in the face, you feel lost and overwhelmed. In today's article, I'll discuss the method I use to get myself started when beginning a program from scratch. By the end of the article, you should have a good plan of attack for starting development for any application.
I've been taking stock of the digital services I use (and pay for) but am unhappy with. Digital goods sales (for my book) has already been taken care of by bull. Next on my list is tracking mentions of my site across the Internet. In this article, we'll build a simple (but fully functional) web application that searches for and displays mentions of a particular keyword (in my case, "jeffknupp.com").
When I released bull
as an open source project, it was in quite a state. Everything was in a single
file, there was inline HTML (ew), and both tests and documentation were
non-existent. Over the past week, I've spent some time "productionizing"
bull, and recounting the steps I took will likely be helpful to others
looking to deploy a Flask app to production. In this article, you'll learn how
to organize a Flask application, add testing and documentation, and even how to
enable authentication for "admin-only" content.
I'm often contacted by readers who are proficient in Python and would like to create an open source project/start-up but can't think of a good project. Picking an idea, indeed, just getting an idea, seems like a luck-of-the-draw type deal. Some people just happen to get great ideas, and the rest of us don't.
"Bull always charges"
As promised everywhere, the first cut of my digital goods payment solution, "Bull" ("Bull always charges") is now up at https://github.com/jeffknupp/bull. It's still very rough and there's a lot I need to make it more user-friendly, but you could use it right now to sell your digital goods (I do).
As you'd expect, I'll be updating the repository frequently over the next few days. Also, if anyone wants to come up with a "Bull" mascot/logo, I'd be extremely indebted to you.
As I said in my previous post, sharing useful tools is important, and this is me practicing what I preach. Hopefully, others will find Bull useful as a way to free themselves from the existing digital goods payment solutions.