I designed this program to make splitting grocery bills between me and my room-mates easier - but as it grew more complex, it became clear that it was definitely not the most efficient method, but certainly the niftiest. It's a web interface built out of php that I maintain on my local network, storing information in a mysql database. There are two main sections: in the first, people can add and view receipts, specifying details such as the amount, who paid for it, who, out of the active members, will be splitting it's cost, etc. The second section gives details regarding who should pay back whom with respect to the receipts corresponding to a specified timeframe. Here are some screen shots:
Perhaps not the easiest thing to do without some experience, but straight forward enough. This is not intended to be an introduction to web programming, so I'll assume you know the basics. To install it on your local network, you will need to setup a local server (capable of php and mysql). Use a tutorial to install LAMP if you are on linux, WAMP if you are on Windows, or MAMP if you are on a MAC. (I havn't looked at any of these tutorials myself, so look around google for LAMP, WAMP, or MAMP for better ones if you want. The point is, you'll need a local server for the php/mysql). If you want to post it online somewhere, great, but you'll probably want to setup some kind of login system.
Next, add the database structure. Create a database named modsix:
And then either run this sql file, or manually enter these commands to setup the database tables:
Now you can add the residents, one by one, using:
Where veg=1 means the person won't pay for meat products, gender=0 is for female, gender=1 for male. If active=1, the person can add receipts, and be included in the receipts that others create. But, for example, if someone is deactivated, the stats page will still include them in the formulas. Stores can be added on the web interface.
Finally, you can download, extract and copy the source code into their own folder on your server. You will need to edit dbconnect.php, replacing the username and password with your own.
Other Notes: