A simple shared budget manager web application
Find a file
2017-03-22 18:02:01 +01:00
budget Merge pull request #181 from 0livd/remove_archive 2017-03-20 14:00:51 +01:00
conf Remove trailing whitespaces 2015-08-20 12:02:04 +02:00
docs Change ihatemoney.notmyidea.org → ihatemoney.org 2016-09-13 11:21:28 +02:00
.gitignore Add a setup.py file 2017-03-21 16:33:13 +01:00
.travis.yml Travis CI: Run tests on python2.7 and python3.5 2017-03-17 19:37:57 +01:00
CHANGELOG.rst Add a changelog and a contributors file 2017-03-20 21:32:18 +01:00
CONTRIBUTORS Update the README with the release process 2017-03-21 15:09:31 +01:00
fabfile.py update the fabric script with the last arch 2012-09-02 14:08:05 +02:00
LICENSE Remove trailing whitespaces 2015-08-20 12:02:04 +02:00
MANIFEST.in Add a setup.py file 2017-03-21 16:33:13 +01:00
Procfile add a Procfile for heroku 2011-10-13 22:57:23 +02:00
README.rst Update the README with the release process 2017-03-21 15:09:31 +01:00
setup.py Fix setup.py mistake 2017-03-22 18:02:01 +01:00

Budget-manager
##############

.. image:: https://travis-ci.org/spiral-project/ihatemoney.svg?branch=master
   :target: https://travis-ci.org/spiral-project/ihatemoney
   :alt: Travis CI Build Status

This is a really tiny app to ease the shared houses budget management. Keep
track of who bought what, when, and for who to then compute the balance of each
person.

The code is distributed under a BSD beerware derivative: if you meet the people
in person and you want to pay them a beer, you are encouraged to do so (see
LICENSE for more details).

Make it run!
============

To make it run, you just have to do something like::

    $ virtualenv venv
    $ source venv/bin/activate
    $ pip install -r budget/requirements.txt
    $ cd budget
    $ python run.py

It is also better to actually turn the debugging mode on when you're
developing. You can create a `settings.py` file in the `budget` directory, with
the following content::

    DEBUG = True
    SQLACHEMY_ECHO = DEBUG

You can also set the `TESTING` flag to `True` so no mails are sent
(and no exception is raised) while you're on development mode.

Deploy it
=========

To deploy it, I'm using gunicorn and supervisord::

    $ virtualenv venv
    $ source venv/bin/activate
    $ pip install -r requirements.txt

1. Add the lines in conf/supervisord.conf to your supervisord.conf file.
   **adapt them to your paths!**
2. Copy and paste the content of conf/nginx.conf in your nginx conf file.
   **adapt them to your paths!**
3. reload both nginx and supervisord. It should be working ;)

Don't forget to set the right permission for your files !

Also, create a `settings.py` file with the appropriate values if you need to
use a different database for instance. You can also set `APPLICATION_ROOT` if
you want to prefix your URLs to serve ihatemonney in the *folder* of a domain,
e.g:

    APPLICATION_ROOT='/budget'


How about the REST API?
=======================

Yep, you're right, there is a REST API with this. Head to the `api
documentation <https://ihatemoney.readthedocs.io/en/latest/api.html>`_ to know more.

How to contribute
=================

There are different ways to help us, regarding if you are a designer,
a developer or just an user.

As a developer
--------------

The best way to contribute code is to write it and to make a pull request on
github. Please, think about updating and running the tests before asking for
a pull request as it will help us to maintain the code clean and running.

To do so::

    $ workon budget
    (budget) $ python tests.py

before pushing anything to master :)

As a designer / Front-end developer
-----------------------------------

Feel free to provide us mockups or to involve yourself into the discussions
hapenning on the github issue tracker. All ideas are welcome. Of course, if you
know how to implement them, feel free to fork and make a pull request.

End-user
--------

You just wanted to have a look at the application and found a bug? Please tell
us and go fill a new issue:
https://github.com/spiral-project/ihatemoney/issues

How to release?
===============

In order to prepare a new release, we are following the following steps.

The `fullrelease` command comes from `zest.releaser
<https://pypi.python.org/pypi/zest.releaser>`_.

Install `zest.releaser`:

.. code-block:: bash

      $ pip install "zest.releaser"

- Merge remaining pull requests
- Update ``CHANGELOG.rst``
- Update known good versions of dependencies in ``requirements.txt`` with this command (from inside the venv):

.. code-block:: bash

     $ pip freeze | grep -v -- '-e' > requirements.txt

Once this is done, use the "fullrelease" command:

.. code-block:: bash

     $ fullrelease

That's all folks!