Giter Site home page Giter Site logo

priestd09 / accountant Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dulacp/accountant

0.0 1.0 0.0 1.28 MB

Accounting made accessible for small businesses and sole proprietorships through a simple Django project.

Home Page: http://accountant-x.herokuapp.com/

License: MIT License

Makefile 1.78% Python 36.18% CSS 7.09% HTML 51.88% JavaScript 3.07%

accountant's Introduction

Accountant

In the beginning God created man, and the costs followed afterwards.

This project is a concrete integration of the django-accounting application. It is ready to be deployed on Heroku, but you can deploy on which provider you want.

Deploy

Under the hood

  • Python 3.3
  • Django 1.7+
  • dj-static
  • Already configured for an Heroku deploy

Features

Maybe you want to integrate the accounting engine into your existing project, so check out the features offered by django-accounting.

Local install

First create the virtualenv with the right python version

$ mkvirtualenv accountant --python=$(which python3)
$ workon accountant

Install the dependencies

$ pip install -r reqs/dev.txt
$ npm install

Create the local database

$ createdb accountant
$ ./manage.py migrate

Now run the server :

$ ./manage.py runserver

Deploy the beast

Prepare the static server

create a new user

$ aws iam create-user --user-name heroku-accountant

output

{
    "User": {
        "UserName": "heroku-accountant",
        "Path": "/",
        "CreateDate": "2015-01-22T14:10:08.058Z",
        "UserId": "<user_id>",
        "Arn": "arn:aws:iam::<user_arn_id>:user/heroku-accountant"
    }
}

give the user some access keys

$ aws iam create-access-key --user-name heroku-accountant

output

{
    "AccessKey": {
        "UserName": "heroku-accountant",
        "Status": "Active",
        "CreateDate": "2015-01-22T14:18:56.237Z",
        "SecretAccessKey": "<secret_key>",
        "AccessKeyId": "<access_key>"
    }
}

Write down the <secret_key> and <access_key> values, so that we can give the values to the heroku app.

create the aws bucket

$ aws s3 mb s3://accountantx --region eu-west-1

give the user access to the created bucket

$ aws iam put-user-policy --user-name heroku-accountant --policy-name AmazonS3FullAccess-heroku-accountant --policy-document '{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": "arn:aws:s3:::accountantx",
            "Condition": {}
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectAclVersion"
            ],
            "Resource": "arn:aws:s3:::accountantx/*",
            "Condition": {}
        }
    ]
}'

Deploy the app

We need to specify the buildpack to use otherwise heroku won't know which one to choose, due to the fact that both package.json and requirements.txt files exist.

Lancer les commandes dans l'ordre ci-dessous:

$ heroku create accountant-x --region eu
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
$ heroku addons:add heroku-postgresql:hobby-dev
$ heroku addons:add mandrill:starter
$ heroku addons:add newrelic:wayne
$ heroku config:set DJANGO_SETTINGS_MODULE="accountant.settings.prod"
$ heroku config:set SECRET_KEY=`openssl rand -base64 32`
$ heroku config:set LOCAL_SERVER=0
$ heroku config:set SITE_MAIN_DOMAIN=accountant-x.herokuapp.com
$ heroku config:set DISABLE_COLLECTSTATIC=1
$ heroku config:set AWS_STORAGE_BUCKET_NAME=accountantx AWS_S3_ACCESS_KEY_ID="<access_key>" AWS_S3_SECRET_ACCESS_KEY="<secret_key>"
$ git push heroku master
$ ./manage.py collectstatic --noinput
$ aws s3 sync --acl public-read accountant/static s3://accountantx/static/
$ heroku run python manage.py migrate
$ heroku run python manage.py createsuperuser
$ heroku open

And you're done !

Cheatsheet

I've defined some shortcuts in the Makefile, feel free to explore those or add yours.

deploy to production

$ make dp

deploy & migrate to production

$ make dmp

collectstatic to production

$ make cp

Contact

Pierre Dulac
@dulaccc

License

Accounting is available under the MIT license. See the LICENSE file for more info.

accountant's People

Contributors

dulacp avatar dzuelke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.