blog.notmyidea.org/how-are-you-handling-your-shared-expenses.html
2019-11-20 13:56:59 +01:00

234 lines
No EOL
9.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<title>How are you handling your shared expenses? - Alexis - Carnets en ligne</title>
<meta charset="utf-8" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Alexis - Carnets en ligne Full Atom Feed" />
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/poole.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/syntax.css"/>
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/lanyon.css"/>
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=PT+Serif:400,400italic,700%7CPT+Sans:400">
<link rel="stylesheet" href="https://blog.notmyidea.org/theme/css/styles.css"/>
<style>
h1 {
font-family: "Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif;
padding: 80px 50px;
text-align: center;
text-transform: uppercase;
text-rendering: optimizeLegibility;
color: #202020;
letter-spacing: .1em;
text-shadow:
-1px -1px 1px #111,
2px 2px 1px #eaeaea;
}
#main {
text-align: justify;
text-justify: inter-word;
}
#main h1 {
padding: 10px;
}
.post-headline {
padding: 15px;
text-align: center;
}
</style>
</head>
<body>
<!-- Target for toggling the sidebar `.sidebar-checkbox` is for regular
styles, `#sidebar-checkbox` for behavior. -->
<input type="checkbox" class="sidebar-checkbox" id="sidebar-checkbox">
<!-- Toggleable sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-item">
<div class="profile">
<img src="https://blog.notmyidea.org/theme/img/profile.png"/>
</div>
</div>
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="/">Articles</a>
<a class="sidebar-nav-item" href="https://www.vieuxsinge.com">Brasserie du Vieux Singe</a>
<a class="sidebar-nav-item" href="http://blog.notmyidea.org/pages/about.html">A propos</a>
<a class="sidebar-nav-item" href="https://twitter.com/ametaireau">Messages courts</a>
<a class="sidebar-nav-item" href="https://github.com/almet">Code</a>
</nav>
</div> <div class="wrap">
<div class="masthead">
<div class="container">
<h3 class="masthead-title">
<a href="https://blog.notmyidea.org/" title="Home">Alexis - Carnets en ligne</a>
</h3>
</div>
</div>
<div class="container content">
<div id="main" class="posts">
<h1 class="post-title">How are you handling your shared expenses?</h1>
<span class="post-date">
15 octobre 2011, dans <a class="no-color" href="category/technologie.html">Technologie</a>
</span>
<img id="illustration" class="illustration-Technologie" src="" />
<div class="post article">
<div id="toc_container">
<div class="toc">
<ul>
<li><a href="#how-are-you-handling-your-shared-expenses">How are you handling your shared expenses?</a><ul>
<li><a href="#features">Features</a><ul>
<li><a href="#no-user-registration">No user registration</a></li>
<li><a href="#keeping-things-simple">Keeping things simple</a></li>
<li><a href="#no-categories">No categories</a></li>
<li><a href="#balance">Balance</a></li>
<li><a href="#api">API</a></li>
</ul>
</li>
<li><a href="#interested">Interested?</a></li>
</ul>
</li>
</ul>
</div>
</div>
<h1>🌟</h1>
<p><strong>TL;DR:</strong> We're kick-starting a new application to manage your shared
expenses. Have a look at <a href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a></p>
<p>As a student, I lived in a lot of different locations, and the majority
of them had something in common: I lived with others. It usually was a
great experience (and I think I will continue to live with others). Most
of the time, we had to spend some time each month to compute who had to
pay what to the others.</p>
<p>I wanted to create a pet project using flask, so I wrote a little (\~150
lines) flask application to handle this. It worked out pretty well for
my housemates and me, and as we had to move into different locations,
one of them asked me if he could continue to use it for the year to
come.</p>
<p>I said yes and gave it some more thoughts: We probably aren't the only
ones interested by such kind of software. I decided to extend a bit more
the software to have a concept of projects and persons (the list of
persons was hard-coded in the first time, boooh!).</p>
<p>I then discussed with a friend of mine, who was excited about it and
wanted to learn python. Great! That's a really nice way to get started.
Some more friends were also interested in it and contributed some
features and provided feedback (thanks
<a href="http://www.sneakernet.fr/">Arnaud</a> and Quentin!)</p>
<p>Since that, the project now support multiple languages and provides a
REST API (android and iphone apps in the tubes!), into other things.
There is no need to register for an account or whatnot, just enter a
project name, a secret code and a contact email, invite friends and
that's it (this was inspired by doodle)!</p>
<p><img alt="Capture d'écran du site." src="images/ihatemoney.png"></p>
<p>You can try the project at <a href="http://ihatemoney.notmyidea.org">http://ihatemoney.notmyidea.org</a> for now,
and the code lives at <a href="https://github.com/spiral-project/ihatemoney/">https://github.com/spiral-project/ihatemoney/</a>.</p>
<h2 id="features">Features</h2>
<p>In the wild, currently, there already are some implementations of this
shared budget manager thing. The fact is that most of them are either
hard to use, with a too much fancy design or simply trying to do too
much things at once.</p>
<p>No, I don't want my budget manager to make my shopping list, or to run a
blog for me, thanks. I want it to let me focus on something else. Keep
out of my way.</p>
<h3 id="no-user-registration">No user registration</h3>
<p>You don't need to register an account on the website to start using it.
You just have to create a project, set a secret code for it, and give
both the url and the code to the people you want to share it with (or
the website can poke them for you).</p>
<h3 id="keeping-things-simple">Keeping things simple</h3>
<p>"Keep It Simple, Stupid" really matches our philosophy here: you want to
add a bill? Okay. Just do it. You just have to enter who paid, for who,
how much, and a description, like you would have done when you're back
from the farmer's market on raw paper.</p>
<h3 id="no-categories">No categories</h3>
<p>Some people like to organise their stuff into different "categories":
leisure, work, eating, etc. That's not something I want (at least to
begin with).</p>
<p>I want things to be simple. Got that? Great. Just add your bills!</p>
<h3 id="balance">Balance</h3>
<p>One of the most useful thing is to know what's your "balance" compared
to others. In other words, if you're negative, you owe money, if you're
positive, you have to receive money. This allows you to dispatch who has
to pay for the next thing, in order to re-equilibrate the balance.</p>
<p>Additionally, the system is able to compute for you who has to give how
much to who, in order to reduce the number of transactions needed to
restore the balance.</p>
<h3 id="api">API</h3>
<p>All of what's possible to do with the standard web interface is also
available through a REST API. I developed a simple REST toolkit for
flask for this (and I should release it!).</p>
<h2 id="interested">Interested?</h2>
<p>This project is open source. All of us like to share what we are doing
and would be happy to work with new people and implement new ideas. If
you have a nice idea about this, if you want to tweak it or to fill
bugs. Don't hesitate a second! The project lives at
<a href="http://github.com/spiral-project/ihatemoney/">http://github.com/spiral-project/ihatemoney/</a></p>
</div>
</div>
</div>
<label for="sidebar-checkbox" class="sidebar-toggle"></label>
<script>
(function(document) {
var i = 0;
// snip empty header rows since markdown can't
var rows = document.querySelectorAll('tr');
for(i=0; i<rows.length; i++) {
var ths = rows[i].querySelectorAll('th');
var rowlen = rows[i].children.length;
if (ths.length > 0 && ths.length === rowlen) {
rows[i].remove();
}
}
})(document);
</script>
<script>
/* Lanyon & Poole are Copyright (c) 2014 Mark Otto. Adapted to Pelican 20141223 and extended a bit by @thomaswilley */
(function(document) {
var toggle = document.querySelector('.sidebar-toggle');
var sidebar = document.querySelector('#sidebar');
var checkbox = document.querySelector('#sidebar-checkbox');
document.addEventListener('click', function(e) {
var target = e.target;
if(!checkbox.checked ||
sidebar.contains(target) ||
(target === checkbox || target === toggle)) return;
checkbox.checked = false;
}, false);
})(document);
</script>
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tracker.notmyidea.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 3]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//tracker.notmyidea.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</div>
</body>
</html>