One saturday, my 6 roommates and I decided to settle accounts. It took more than 2 hours to enter all the expenses in a spreadsheet and do the maths to know "who owes whom". During these 2 hours, we argued once again about the way we should settle accounts : a spreadsheet shared on our local network versus a simple sheet of paper with a calculator. I was for the spreadsheet : no calculations mistakes and you can add a forgotten expense without doing all the maths again. Those in favor of the paper thought the spreadsheet was too complicated.
This afternoon decided me to create a small project that would just answer the question "who owes whom" without installing any software, nor managing a shared spreadsheet, nor having to figure out the best debts repartition. At that time, there were not so many web services for that purpose, few in french and none satisfying our needs.
I used my recent skills with GWT, learnt Python and developped that :
It took time : almost one month for that simple application, working evenings and week-ends. I learnt a new programming language and solved the mathematical problem of debts repartition, but what took most of my time was the user interface. It looks very simple but it's all "ajax" and the spreadsheet is real! (I mean you can use it with your keyboard almost like a desktop-app spreadsheet.)
Maybe by the time you're reading this post, this litte app is still running here.
- Client: GWT 1.5, 2400 lines of Java
- Server: Apache + modpython on Ubuntu 8.04, 275 lines of Python
- Database: sqlite