Python Enterprise Resource Planner (ERP) software prototype.
MIT License
Creating an Enterprise Resource Planner (ERP) software that may helps me managing my company. Currently WIP.
About my prod env: code has been build and tested on Django 4.0.2 and Python 3.8.8 running on Win11 machine.
git clone https://github.com/carloocchiena/django_erp.git
.conda create -n my_env pip python=3.8
) (python python3 -m venv my_env
).conda activate my_env
) (Linux/MacOS source my_env/bin/activate
) (Windows source my_env/Scripts/activate
).pip install -r requirements.txt
..env
file with your SECRET KEYerp
folder you want.python manage.py makemigrations
and apply them with python manage.py migrate
.python manage.py runserver
.Run it in Docker with docker-compose up django_erp
The underlying idea is being able to quickly create templates for Companies and Products and cloning them upon necessity. Payments and Invoices are expected to be inserted from time to time. The filtered views allow to have a quick overview of how's the business going, specifically having in mind the daily checks you have to perform on outstanding credits and debits and invoices. I may be willing to extend reporting features a bit, it depends from the free time I have to allocate on this project.
To run the automated test, input python manage.py test --parallel auto --verbosity=2
.
Use predefined docker-compose service if docker is available:
docker-compose -f docker-compose.test.yaml run --rm django_erp_tests
At the moment there are more near 100 test cases, covering from models, to forms, to views, and their underlying logics.
I took a personal challenge in tryin to do the whole project with Bootstrap 5, without using CSS stylesheet (that is in fact just made up of 3 row of code).
List of all the available feature as per 14 Sept 2022
Data entry Create a new user (backend only) Create a new user group (backend only) Create a new company Create a new product Create a new invoice Create a new payment Update a company Update a product Update an invoice Update a payment Clone a company Clone a product Clone an invoice Clone a payment
Automations Private Web APIs (GET, HEAD, OPTIONS) for the whole dataset Unit testing See a list of all the companies, with dynamic filters and CSV export See a list of all the products, with dynamic filters and CSV export See a list of all the invoices, with dynamic filters and CSV export Automatically update product quantity for each invoice and flag refill needed if quantity is under a given threshold Report open credits position Report open debits position Report all active invoices Report all active payments Report all passive invoices Report overdue active invoices Report overdue passive invoices
I created also some additional walktrought that should help you configuring your Django project:
Every feedback and contributions are welcome. Please just: