BenchBaze is a Django-based laboratory inventory and purchasing management system. It provides a highly customized Django admin experience for managing biological collection items, approvals, GMO compliance (AKA Formblatt Z in Germany), purchasing, user access, as well as an built-in DNA map viewer.
- Inventory management for plasmids, cell lines, strains (yeast and bacteria), oligos, antibodies, viruses, and related assets
- Purchasing and order tracking workflows
- Approval forms and document attachments
- GMO compliance support for German laboratories
- Custom user roles and OIDC-aware authentication
- Open Vector Editor (OVE) integration for DNA map visualization
- REST API endpoints for frontend integration
config/- Django configuration, settings, URL routing, and WSGI entrypointcollection/- inventory app modules for biological collections and shared utilitiespurchasing/- purchasing, orders, cost units, and hazardous materials supportapproval/- approval workflows and formscommon/- shared models, admin site customizations, authentication backends, and utilitiesformz/- form-related models and management logicfrontend/- Vue 3 + Vite frontend project used for client-side UI components (very much in development)requirements/- Python dependency manifests and environment definitionstemplates/- Django templates used by the admin and authentication viewsstaticfiles/- static assetsuploads/- media upload directory
- Python 3.11
- Django 4.2
- PostgreSQL
- Vue 3 + Vite for frontend UI
- Mozilla Django OIDC for authentication
- django-guardian for object permissions
- django-import-export, djangoql, django-simple-history, background_task
- Open Vector Editor (OVE) integration for DNA map support
Copy the template and update the values for your environment:
cp config/private_settings_template.py config/private_settings.pyEdit config/private_settings.py to set relevant values for your database, email, and other environment-specific settings.
Install from the pinned requirement file:
conda create -n benchbaze -f requirements/conda.yml
conda activate benchbazepython -m pip install -r requirements/prod.txtFor development dependencies:
python -m pip install -r requirements/dev.txtCreate and migrate the PostgreSQL database:
python manage.py migrateCreate a superuser:
python manage.py createsuperuserpython manage.py collectstatic --noinputFor local development, use Django's built-in server:
python manage.py runserverSee LICENSE for project licensing details.