Skip to main content

Double entry accounting system built on the Django Web Framework.

Project description

django ledger logo

Here's a more concise and readable version of the Django Ledger README:

Django Ledger

A Double Entry Accounting Engine for Django

Django Ledger is a powerful financial management system built on the Django Web Framework. It offers a simplified API for handling complex accounting tasks in financially driven applications.

Join our Discord | Documentation | QuickStart Notebook

Key Features

  • High-level API
  • Double entry accounting
  • Hierarchical Chart of Accounts
  • Financial statements (Income Statement, Balance Sheet, Cash Flow)
  • Purchase Orders, Sales Orders, Bills, and Invoices
  • Financial ratio calculations
  • Multi-tenancy support
  • Ledgers, Journal Entries & Transactions
  • OFX & QFX file import
  • Closing Entries
  • Inventory management
  • Unit of Measures
  • Bank account information
  • Django Admin integration
  • Built-in Entity Management UI

Getting Involved

Who Should Contribute?

We're looking for contributors with:

  • Python and Django programming skills
  • Finance and accounting expertise
  • Interest in developing a robust accounting engine API

If you have relevant experience, especially in accounting, we welcome your pull requests or direct contact.

Installation

Django Ledger is a Django application. If you haven't, you need working knowledge of Django and a working Django project before you can use Django Ledger. A good place to start is here.

Make sure you refer to the django version you are using.

The easiest way to start is to use the zero-config Django Ledger starter template. See details here. Otherwise, you may create your project from scratch.

To create a new Django Ledger project:

  • Make sure you have the latest version of python here (recommended).

  • Install Django:

pip install django
  • Install Python Pipenv (python package manager):
pip install pipenv
  • Go to your desired development folder and create a new django project:
django-admin startproject django_ledger_project && cd django_ledger_project
  • Install Django on you virtual environment.
pipenv install django
  • Install Django Ledger
pipenv install django-ledger[graphql,pdf]
  • Activate your new virtual environment:
pipenv shell
  • Add django_ledger to INSTALLED_APPS in you new Django Project.
INSTALLED_APPS = [
    ...,
    'django_ledger',
    ...,
]
  • Perform database migrations:
python manage.py migrate
  • Add Django SuperUser and follow the prompts.
python manage.py createsuperuser
  • Add URLs to your project's urls.py:
from django.urls import include, path

urlpatterns = [
    ...,
    path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
    ...,
]
  • Run your project:
python manage.py runserver
  • Navigate to Django Ledger root view assigned in your project urlpatterns setting ( typically http://127.0.0.1:8000/ledger if you followed this installation guide).
  • Use your superuser credentials to login.

How To Set Up Django Ledger for Development

Django Ledger comes with a basic development environment already configured under dev_env/ folder not to be used for production environments. If you want to contribute to the project perform the following steps:

  1. Navigate to your projects directory.
  2. Clone the repo from github and CD into project.
git clone https://github.com/arrobalytics/django-ledger.git && cd django-ledger
  1. Install PipEnv, if not already installed:
pip install -U pipenv
  1. Create virtual environment.
pipenv install

If using a specific version of Python you may specify the path.

pipenv install --python PATH_TO_INTERPRETER
  1. Activate environment.
pipenv shell
  1. Apply migrations.
python manage.py migrate
  1. Create a Development Django user.
python manage.py createsuperuser
  1. Run development server.
python manage.py runserver

How To Set Up Django Ledger for Development using Docker

  1. Navigate to your projects directory.

  2. Give executable permissions to entrypoint.sh

sudo chmod +x entrypoint.sh
  1. Add host '0.0.0.0' into ALLOWED_HOSTS in settings.py.

  2. Build the image and run the container.

docker compose up --build
  1. Add Django Superuser by running command in seprate terminal
docker ps

Select container id of running container and execute following command

docker exec -it containerId /bin/sh
python manage.py createsuperuser
  1. Navigate to http://0.0.0.0:8000/ on browser.

Run Test Suite

After setting up your development environment you may run tests.

python manage.py test django_ledger

Screenshots

django ledger entity dashboard django ledger balance sheet django ledger income statement django ledger bill django ledger invoice

Financial Statements Screenshots

balance_sheet_report income_statement_report cash_flow_statement_report

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

django_ledger-0.7.0-py3-none-any.whl (3.0 MB view details)

Uploaded Python 3

File details

Details for the file django_ledger-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_ledger-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6fd653ef04cd0cecb0baad0d57f0b8316307981bdb2fb32854b5ce99bad603f3
MD5 191df80524cb6bb765a2e34305082731
BLAKE2b-256 250f4c9e062025c5c5fcb8c4fcf04472001d6e004a5efbd658c73f13791662df

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page