Eeven is an easy way to evenly split expenses. It’s particularly useful for trips and roommate situations where different people are covering different bills.
Eeven uses the Mootools javascript framework with sinatra coordinating the front end with the Memcached & Redis datastores.
Since HTTP isn’t inherently event driven, making it difficult to do realtime syncing between clients. An ajax poll is commonly used to get around this. The client side applications polls the server at a given interval asking it if any other clients are connected and updating itself accordingly.
Another problem arises when multiple people are editing the same data value. In the case of eeven, the last person editing the field has priority over all other clients. A better way would be to track the focused field on the server and then disable it on all other clients similiar to Google Docs.
The main javascript file can be found at public/js/eeven.js