My latest side project is nearing release. Wishble is a new type of wish list app initially targeted at a tiny market, yet something I need myself. The product is minimal and hopefully simple, the design uncluttered and modern, and the purpose singular. I’m also being vague because it’s not entirely done.
It has taken a little more than the 10 hours suggested by Sacha Greif, however I have the time (thanks to even fewer visits to the gym) and I am willing to devote the necessary energy. In fact having a few days off to focus on the product has been energising. It has also been a lesson in minimum viable product design. Over the last year (or two really), I’ve been trying to create the sort of wish list that I would use, one outside the store and easy to use based on my own experience. These plans have grown grander and as a result not been completed. Taking a page from the Lean Startup (which I have not finished reading because I’m instead doing), I have focused the product on the core need, outlined precisely the features I need and built a rough working version. If anything, it’s been a learning experience and will continue to be so.
The basic functionality is there; a list and a way to add items to the list. The fancy feature, an email processing script hooked up to a CRON job on my server (my very first) that listens for incoming emails, reads them and adds the item to my list. As it’s very simple the whole app consists of one file containing functions and a few front-end templates for signing in and viewing the list. Basically it’s a hack; bits of PHP code thrown together to get a prototype working, with enough design to polish it off. And for once I avoided using Bootstrap for the front-end. The internet has been especially helpful for providing me with solutions to problems, such as a tutorial that explained working with an imap server to read emails.
When I spec’d out the original product based on the wireframe design I created, I outlined the features and the basic functions needed to signin, view the list, add and update items all communicating through the database. Most of my computer science training was back in the time of procedural programming so by default I tend to start without objects or a coding pattern, however this has resulted in some messy code. But for now all seems to be working and a complete re-write can wait after proper testing. For the full release version I intend to re-write the code using a model-view-controller pattern. This will be done for several practical reasons especially to add a proper API for flexibility adding items.