https://github.com/arrobalytics/django-ledger
Django Ledger is a double entry accounting system built on the Django Web Framework.
https://github.com/arrobalytics/django-ledger
accounting bookkeeping cashmanagement django django-application django-framework django-ledger django-project entities finance financial financial-analysis-engine forecasting ledger-journal quickbooks
Last synced: about 1 month ago
JSON representation
Django Ledger is a double entry accounting system built on the Django Web Framework.
- Host: GitHub
- URL: https://github.com/arrobalytics/django-ledger
- Owner: arrobalytics
- License: gpl-3.0
- Created: 2018-10-29T22:25:37.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T12:39:13.000Z (7 months ago)
- Last Synced: 2024-10-29T15:18:52.855Z (6 months ago)
- Topics: accounting, bookkeeping, cashmanagement, django, django-application, django-framework, django-ledger, django-project, entities, finance, financial, financial-analysis-engine, forecasting, ledger-journal, quickbooks
- Language: Python
- Homepage: https://www.djangoledger.com
- Size: 15.4 MB
- Stars: 1,005
- Watchers: 81
- Forks: 223
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS.md
Awesome Lists containing this project
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.Created and developed by [Miguel Sanda](https://www.miguelsanda.com).
[FREE Get Started Guide](https://www.djangoledger.com/get-started) | [Join our Discord](https://discord.gg/c7PZcbYgrc) | [Documentation](https://django-ledger.readthedocs.io/en/latest/) | [QuickStart Notebook](https://github.com/arrobalytics/django-ledger/blob/develop/notebooks/QuickStart%20Notebook.ipynb)
## 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
- **Feature Requests/Bug Reports**: Open an issue in the repository
- **For software customization, advanced features and consulting services**:
[Contact us](https://www.miguelsanda.com/work-with-me/) or email [email protected]
- **Contribute**: See
our [contribution guidelines](https://github.com/arrobalytics/django-ledger/blob/master/Contribute.md)## 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 APIIf you have relevant experience, especially in accounting, we welcome your pull requests or direct contact.
# 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]"
```Alternatively, you can use:
```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, pathurlpatterns = [
...,
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




# Financial Statements Screenshots


