Margaret

Margaret is a web based debt tracking tool for friends. Each user is given an account to view and manage their debt.  Debts can be grouped into collections to ease the number of transactions.  Margaret is built with Perl CGI code backed by MySQL.

There is a Public Server running so you can try out the interface.  Security has been disabled so you can see how it works.

Security
Whenever money is involved, you must be aware of security - just because a computer is used, there is no guarantee of security (in fact, the opposite is usually true).  Margaret is about as secure as an open note book left at a common friends house.  The content is in plain text (including the passwords) in a MySQL database so the administrator of that database can view and modify any users account.  Even if the passwords were protected,  the transactions could be modified by issuing SQL.  The World Wide Web environment is not secure - web servers can be spoofed (fake lookalikes set up) and your identity stolen (httpd athentication is used for Margaret).  Finally, Margaret doesn't compute factional cents so there are known problems with the division of debts - $10.00 owed to three people is split unevenly, or not be covered completely.

Screen Shots
Home
Home
You can review all existing debt statements that are open.  A news section reports new debts to you.  You can review pools that you belong to, subscribe to new pools and resign from existing pools.  You can add comments to debts, and change the state of debts.  When both parties agree the debt is paid, debts are removed from the display.  Home also shows a summary of credit standing - unbalanced lending or borrowing is highlighted.

You can change your e-mail address, e-mail reminder frequency and e-mail type.  You can change your password.

You can add new debts and receipts.  You can view completed and closed debts and pools.
Create Debt
Create Debt
The first step is to create a new debt.  The debt has a dollar value, description, and how to divide the debt between an arbitrary number of  debtors and creditors.  Debt can be split by proportion (30%,30%, 40%), dollar value ($10, $15, $20), or a mix ($15, 30%, 70%). 

Review New Collection
Review Collection
The second step is to review the distribution of debt created.  The collection can be added to an existing pool.

Future Feature:
There is more than 1 way to distribute debt between people.  Other variations should be offered.
Create Debt
Create Receipt
The second way to enter debt is to enter a receipt.  Receipts have line items, and a total, and each line item is distributed among the members of the receipt.  Payment is also distributed.  If the total doesn't match the total of the line items (A coupon, or tip was added), the saving or cost is distributed by proportion of debt.  You can expand the form to an arbitrary number of rows and columns.

Review New Collection
Review Receipt
The Receipt is now divided by total so you can review how much each person is paying for each line item.

Future Feature:
There is more than 1 way to distribute debt between people.  Other variations should be offered.
View Collection
View Collection
You can review how the debts were generated from a receipt or collection.  You can add a collection to a pool if pool can accept it.  You can rewrite the collection to correct an error in the distribution, totals or date.


Create Pool
Create Pool
Debts can be pooled to reduce the number cash transactions between between people.  Pools have optional policies - earlies and latest debt, when the debts have to be entered by and a limit on the total debt. 

Future Feature:
More policies - who can and can't join the pool (Only trip members for instance).

This software is in the Beta testing stage.  Servers have been running for 6 months.  If you are interested in Beta testing (run on your server, or I set up a database on mine), please leave a message in the forums.  There is a Public Server running without security so you can try out the interface.

This project is hosted on SourceForge:
SourceForge.net Logo