Working in the software industry, the term ‘innovation’ is used on a daily basis. This one word promises so much but how do you foster innovation? This is a huge challenge, one which will most probably not be solved by any one piece of software, but software could be used to facilitate accumulation and voting of ideas.
I searched online for something that would fit but as often happens I could not find anything that met all my requirements. What now? Well, why don’t I write my own software? I wanted it to be available online, so I decided to write a web application.
I have never written a web app before, so my first step was to find out how much I could get for free and not write myself, seems like a logical step. My first port of call was the Google App Engine and GWT and since my two languages of choice are Java and Python it seemed like a perfect match. For a number of reasons this did not work out, an app written for GAE is not super easily ported to another app server or cloud, also my personal opinion is that GWT is not quite there yet.
After a few more failed attempts with different “out of the box solutions” I decided to give Django a shot and I chose mongodb as the database, for no other reason than I wanted to experiment with different databases. Immediately whilst googling these two technologies I discovered mongoengine as a method of marrying the two and after a few minutes I was creating objects and storing them in mongo with ease.
So I set about creating some requirements for an idea submission and voting tool, but as I implemented these requirements grew, thankfully making changes with Django is easy. Once I had the basics up and running, I realised I needed to improve the user interface, since Django plays nice with almost anything, I went with JqueryUI.
Overall the three technologies played nice with each other, Django makes it easy to get a web application running quickly and without many requirements, mongodb is a joy to use when used with mongoengine and JqueryUI is very simple to use as long as you don’t stray too much from their example code.
One problem I did have was when I wanted to deploy to a ‘production’ environment, the advice I read was to use modwsgi, so I tried several guides I found online but none worked. In the end it was a combination of information from these guides that allowed me to deploy on an Ubuntu distro using apache and modwsgi.
I would have no fear in recommending this technology combo to anyone who wants to rapidly put together a web application with no fuss.
To have a look at my efforts, browse to http://server.jameswhite.ie
p.s. the project is opensource and can be found here: https://github.com/jamesmwhite/innuvate
7 comments so far, add yours ▶