django-ledger


Namedjango-ledger JSON
Version 0.6.0 PyPI version JSON
download
home_pageNone
SummaryDouble entry accounting system built on the Django Web Framework.
upload_time2024-04-18 17:30:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseGPLv3 License
keywords django finance bookkeeping accounting balance sheet income statement general ledger money engine
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![django ledger logo](https://us-east-1.linodeobjects.com/django-ledger/logo/django-ledger-logo@2x.png)

### An Accounting, Bookkeeping & Financial Analysis Engine for the Django Framework.

Introducing __Django Ledger__, a powerful double entry accounting system designed for financially driven applications
using the [Django Web Framework](https://www.djangoproject.com). Developed by lead developer Miguel Sanda, this system
offers a simplified, high-level API, making it easier for users to navigate the complexities of accounting. If you have
prior experience with Django, you'll find this software even more effective. And, for those interested in contributing,
consider joining our new discord channel for further collaboration and discussions.

### Questions? Join our Discord Channel [Here](https://discord.gg/c7PZcbYgrc)

### Documentation

Access the latest documentation and QuickStart guide [here](https://django-ledger.readthedocs.io/en/latest/).
Also, you may download the QuickStart Jupyter Notebook
[here](https://github.com/arrobalytics/django-ledger/blob/develop/notebooks/QuickStart%20Notebook.ipynb).

# Main Features

- High Level API.
- Double entry accounting system.
- Multiple Hierarchical Chart of Accounts.
- Financial Statements (Income Statement, Balance Sheet & Cash Flow Statement).
- Purchase Orders, Sales Orders (Estimates), Bills and Invoices.
- Automatic financial ratio & insight calculations.
- Multi tenancy (multiple companies/users/clients).
- Self-contained Ledgers, Journal Entries & Transactions.
- Basic OFX & QFX file import.
- Closing Entries.
- Items, lists & inventory management.
- Unit of Measures.
- Bank Accounts Information.
- Django Admin Classes.
- Built In Entity Management UI.

## Need a new feature or report a bug?
Feel free to initiate an Issue describing your new feature request.

# Want to contribute?

Finance and Accounting is a complicated subject. Django Ledger stands out from other Django projects due to its focus
on providing a developer-friendly accounting engine and a reliable, extensible API for financially driven applications.
The project requires expertise in Python, Django programming, finance, and accounting. In essence, the project is
seeking assistance from individuals with the specific skill set needed to contribute effectively. So, it's clear that
they are in need of support from individuals with the right expertise.

The project is actively seeking contributors with financial and/or accounting experience. Prior accounting experience
is a big plus for potential contributors. If you have the relevant experience and want to contribute, feel free to
reach out to me. You can find the contribution guidelines at the specified link. The project welcomes anyone interested
in making a contribution.

See __[contribution guidelines](https://github.com/arrobalytics/django-ledger/blob/develop/Contribute.md)__.

# Installation

Django Ledger is a [Django](https://www.djangoproject.com/) 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](https://docs.djangoproject.com/en/4.2/intro/tutorial01/#creating-a-project).

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](https://github.com/arrobalytics/django-ledger-starter). 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](https://www.python.org/) (recommended).

* Install Django:

```shell
pip install django
```

* Install Python [Pipenv](https://pipenv.pypa.io/en/latest/) (python package manager):

```shell script
pip install pipenv
```

* Go to your desired development folder and create a new django project:

```shell
django-admin startproject django_ledger_project && cd django_ledger_project
```

* Install Django on you virtual environment.

```shell
pipenv install django
```

* Install Django Ledger

```shell script
pipenv install django-ledger[graphql,pdf]
```

* Activate your new virtual environment:

```shell
pipenv shell
```

* Add django_ledger to INSTALLED_APPS in you new Django Project.

```python
INSTALLED_APPS = [
    ...,
    'django_ledger',
    ...,
]
```

* Perform database migrations:

```shell
python manage.py migrate
```

* Add Django SuperUser and follow the prompts.

```shell
python manage.py createsuperuser
```

* Add URLs to your project's __urls.py__:

```python
from django.urls import include, path

urlpatterns = [
    ...,
    path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
    ...,
]
```

* Run your project:

```shell
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.

```shell
git clone https://github.com/arrobalytics/django-ledger.git && cd django-ledger
```

3. Install PipEnv, if not already installed:

```shell
pip install -U pipenv
```

4. Create virtual environment.

```shell
pipenv install
```

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

```shell
pipenv install --python PATH_TO_INTERPRETER
```

5. Activate environment.

```shell
pipenv shell
```

6. Apply migrations.

```shell
python manage.py migrate
```

7. Create a Development Django user.

```shell
python manage.py createsuperuser
```

8. Run development server.

```shell
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

```shell
sudo chmod +x entrypoint.sh
```

3. Add host '0.0.0.0' into ALLOWED_HOSTS in settings.py.

4. Build the image and run the container.

```shell
docker compose up --build
```

5. Add Django Superuser by running command in seprate terminal

```shell
docker ps
```

Select container id of running container and execute following command

```shell
docker exec -it containerId /bin/sh
```

```shell
python manage.py createsuperuser
```

6. Navigate to http://0.0.0.0:8000/ on browser.

# Run Test Suite

After setting up your development environment you may run tests.

```shell
python manage.py test django_ledger
```

# Screenshots

![django ledger entity dashboard](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_entity_dashboard.png)
![django ledger balance sheet](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_income_statement.png)
![django ledger income statement](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_balance_sheet.png)
![django ledger bill](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_bill.png)
![django ledger invoice](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_invoice.png)

# Financial Statements Screenshots

![balance_sheet_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/BalanceSheetStatement.png)
![income_statement_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/IncomeStatement.png)
![cash_flow_statement_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/CashFlowStatement.png)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "django-ledger",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Miguel Sanda <msanda@arrobalytics.com>",
    "keywords": "django, finance, bookkeeping, accounting, balance sheet, income statement, general ledger, money, engine",
    "author": null,
    "author_email": "Miguel Sanda <msanda@arrobalytics.com>",
    "download_url": null,
    "platform": null,
    "description": "![django ledger logo](https://us-east-1.linodeobjects.com/django-ledger/logo/django-ledger-logo@2x.png)\n\n### An Accounting, Bookkeeping & Financial Analysis Engine for the Django Framework.\n\nIntroducing __Django Ledger__, a powerful double entry accounting system designed for financially driven applications\nusing the [Django Web Framework](https://www.djangoproject.com). Developed by lead developer Miguel Sanda, this system\noffers a simplified, high-level API, making it easier for users to navigate the complexities of accounting. If you have\nprior experience with Django, you'll find this software even more effective. And, for those interested in contributing,\nconsider joining our new discord channel for further collaboration and discussions.\n\n### Questions? Join our Discord Channel [Here](https://discord.gg/c7PZcbYgrc)\n\n### Documentation\n\nAccess the latest documentation and QuickStart guide [here](https://django-ledger.readthedocs.io/en/latest/).\nAlso, you may download the QuickStart Jupyter Notebook\n[here](https://github.com/arrobalytics/django-ledger/blob/develop/notebooks/QuickStart%20Notebook.ipynb).\n\n# Main Features\n\n- High Level API.\n- Double entry accounting system.\n- Multiple Hierarchical Chart of Accounts.\n- Financial Statements (Income Statement, Balance Sheet & Cash Flow Statement).\n- Purchase Orders, Sales Orders (Estimates), Bills and Invoices.\n- Automatic financial ratio & insight calculations.\n- Multi tenancy (multiple companies/users/clients).\n- Self-contained Ledgers, Journal Entries & Transactions.\n- Basic OFX & QFX file import.\n- Closing Entries.\n- Items, lists & inventory management.\n- Unit of Measures.\n- Bank Accounts Information.\n- Django Admin Classes.\n- Built In Entity Management UI.\n\n## Need a new feature or report a bug?\nFeel free to initiate an Issue describing your new feature request.\n\n# Want to contribute?\n\nFinance and Accounting is a complicated subject. Django Ledger stands out from other Django projects due to its focus\non providing a developer-friendly accounting engine and a reliable, extensible API for financially driven applications.\nThe project requires expertise in Python, Django programming, finance, and accounting. In essence, the project is\nseeking assistance from individuals with the specific skill set needed to contribute effectively. So, it's clear that\nthey are in need of support from individuals with the right expertise.\n\nThe project is actively seeking contributors with financial and/or accounting experience. Prior accounting experience\nis a big plus for potential contributors. If you have the relevant experience and want to contribute, feel free to\nreach out to me. You can find the contribution guidelines at the specified link. The project welcomes anyone interested\nin making a contribution.\n\nSee __[contribution guidelines](https://github.com/arrobalytics/django-ledger/blob/develop/Contribute.md)__.\n\n# Installation\n\nDjango Ledger is a [Django](https://www.djangoproject.com/) application. If you haven't, you need working knowledge of\nDjango and a working Django project before you can use Django Ledger. A good place to start\nis [here](https://docs.djangoproject.com/en/4.2/intro/tutorial01/#creating-a-project).\n\nMake sure you refer to the django version you are using.\n\nThe easiest way to start is to use the zero-config Django Ledger starter template. See\ndetails [here](https://github.com/arrobalytics/django-ledger-starter). Otherwise, you may create your\nproject from scratch.\n\nTo create a new Django Ledger project:\n\n* Make sure you have the latest version of python [here](https://www.python.org/) (recommended).\n\n* Install Django:\n\n```shell\npip install django\n```\n\n* Install Python [Pipenv](https://pipenv.pypa.io/en/latest/) (python package manager):\n\n```shell script\npip install pipenv\n```\n\n* Go to your desired development folder and create a new django project:\n\n```shell\ndjango-admin startproject django_ledger_project && cd django_ledger_project\n```\n\n* Install Django on you virtual environment.\n\n```shell\npipenv install django\n```\n\n* Install Django Ledger\n\n```shell script\npipenv install django-ledger[graphql,pdf]\n```\n\n* Activate your new virtual environment:\n\n```shell\npipenv shell\n```\n\n* Add django_ledger to INSTALLED_APPS in you new Django Project.\n\n```python\nINSTALLED_APPS = [\n    ...,\n    'django_ledger',\n    ...,\n]\n```\n\n* Perform database migrations:\n\n```shell\npython manage.py migrate\n```\n\n* Add Django SuperUser and follow the prompts.\n\n```shell\npython manage.py createsuperuser\n```\n\n* Add URLs to your project's __urls.py__:\n\n```python\nfrom django.urls import include, path\n\nurlpatterns = [\n    ...,\n    path('ledger/', include('django_ledger.urls', namespace='django_ledger')),\n    ...,\n]\n```\n\n* Run your project:\n\n```shell\npython manage.py runserver\n```\n\n* Navigate to Django Ledger root view assigned in your project urlpatterns setting (\n  typically http://127.0.0.1:8000/ledger\n  if you followed this installation guide).\n* Use your superuser credentials to login.\n\n# How To Set Up Django Ledger for Development\n\nDjango Ledger comes with a basic development environment already configured under __dev_env/__ folder not to be used\nfor production environments. If you want to contribute to the project perform the following steps:\n\n1. Navigate to your projects directory.\n2. Clone the repo from github and CD into project.\n\n```shell\ngit clone https://github.com/arrobalytics/django-ledger.git && cd django-ledger\n```\n\n3. Install PipEnv, if not already installed:\n\n```shell\npip install -U pipenv\n```\n\n4. Create virtual environment.\n\n```shell\npipenv install\n```\n\nIf using a specific version of Python you may specify the path.\n\n```shell\npipenv install --python PATH_TO_INTERPRETER\n```\n\n5. Activate environment.\n\n```shell\npipenv shell\n```\n\n6. Apply migrations.\n\n```shell\npython manage.py migrate\n```\n\n7. Create a Development Django user.\n\n```shell\npython manage.py createsuperuser\n```\n\n8. Run development server.\n\n```shell\npython manage.py runserver\n```\n\n# How To Set Up Django Ledger for Development using Docker\n\n1. Navigate to your projects directory.\n\n2. Give executable permissions to entrypoint.sh\n\n```shell\nsudo chmod +x entrypoint.sh\n```\n\n3. Add host '0.0.0.0' into ALLOWED_HOSTS in settings.py.\n\n4. Build the image and run the container.\n\n```shell\ndocker compose up --build\n```\n\n5. Add Django Superuser by running command in seprate terminal\n\n```shell\ndocker ps\n```\n\nSelect container id of running container and execute following command\n\n```shell\ndocker exec -it containerId /bin/sh\n```\n\n```shell\npython manage.py createsuperuser\n```\n\n6. Navigate to http://0.0.0.0:8000/ on browser.\n\n# Run Test Suite\n\nAfter setting up your development environment you may run tests.\n\n```shell\npython manage.py test django_ledger\n```\n\n# Screenshots\n\n![django ledger entity dashboard](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_entity_dashboard.png)\n![django ledger balance sheet](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_income_statement.png)\n![django ledger income statement](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_balance_sheet.png)\n![django ledger bill](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_bill.png)\n![django ledger invoice](https://us-east-1.linodeobjects.com/django-ledger/public/img/django_ledger_invoice.png)\n\n# Financial Statements Screenshots\n\n![balance_sheet_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/BalanceSheetStatement.png)\n![income_statement_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/IncomeStatement.png)\n![cash_flow_statement_report](https://django-ledger.us-east-1.linodeobjects.com/public/img/CashFlowStatement.png)\n",
    "bugtrack_url": null,
    "license": "GPLv3 License",
    "summary": "Double entry accounting system built on the Django Web Framework.",
    "version": "0.6.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/arrobalytics/django-ledger/issues",
        "Documentation": "https://django-ledger.readthedocs.io/en/latest/",
        "Homepage": "https://www.djangoledger.com",
        "Source Code": "https://github.com/arrobalytics/django-ledger"
    },
    "split_keywords": [
        "django",
        " finance",
        " bookkeeping",
        " accounting",
        " balance sheet",
        " income statement",
        " general ledger",
        " money",
        " engine"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "59601dcd556e7aa32cbd7dfd477b421794f1804782c743e697279d2b262bbcb9",
                "md5": "5f4b1512057c04fe4a5196eada483b2e",
                "sha256": "ff913da5a7f7f58a057e9684ae97f7f0b1a65c59f59405e2f4ac2ae9d6a38fc0"
            },
            "downloads": -1,
            "filename": "django_ledger-0.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5f4b1512057c04fe4a5196eada483b2e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 2235613,
            "upload_time": "2024-04-18T17:30:32",
            "upload_time_iso_8601": "2024-04-18T17:30:32.018076Z",
            "url": "https://files.pythonhosted.org/packages/59/60/1dcd556e7aa32cbd7dfd477b421794f1804782c743e697279d2b262bbcb9/django_ledger-0.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-18 17:30:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "arrobalytics",
    "github_project": "django-ledger",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "django-ledger"
}
        
Elapsed time: 0.28450s