A reusable pro-bono / low-bono professional-referral engine for Django.
Project description
lowbono
A reusable, pip-installable Django library — the referral engine behind a pro-bono / low-bono / nominal-fee professional-referral portal. It provides users & professionals, referrals, a practice-area taxonomy, income-eligibility screening, an admin-configurable email/notification engine driven by a Joeflow workflow base, an optional LLM categorizer, and a pluggable-profession framework that lets you add your own professional types without touching core.
It is tailor-made for the legal-justice-access domain — not a generic CRM.
Install
pip install lowbono
Optional extras: lowbono[llm] (OpenAI + Presidio categorizer),
lowbono[allauth] (Google-OAuth adapter), lowbono[anymail] (email backends).
Quickstart
- Define a concrete
User(BaseUser)and setAUTH_USER_MODEL. - Add the engine + its dependencies to
INSTALLED_APPS(ordering matters). - Register at least one profession plug-in in
LOWBONO_PROFESSIONAL_APPS. - Include
lowbono.urlsandlowbono.urls_professions. migrate, thenpython manage.py lowbono_preflightandlowbono_seed_demo.
See the documentation for the full walkthrough, the settings reference, the profession-plugin guide, and the frozen public-API contract.
Design principles
- Concrete engine, abstract identity — only
User/Professionalare abstract. - Explicit contract over convention — professions declare identity via
AppConfigattributes, never inferred from app-name strings. - Settings-driven, registry-based — no hardcoded app labels or URL names.
- Override, don't fork — every template/view/form/admin/string is overridable.
Support matrix
Python 3.11–3.13 · Django 5.0–5.1 · Joeflow 1.4.0. US-centric defaults are all settings-overridable. The taxonomy's content-translation columns are fixed at en/es for 0.1; UI strings are translatable and supplied per project — see Internationalization.
Development
export UV_PROJECT_ENVIRONMENT=~/.venvs/lowbono # keep venvs outside the repo
uv sync
make ci # lint-leakage + migration-check + tests + wheel-contents
See CONTRIBUTING.md.
License
AGPL-3.0-only. See docs/license.md and the proprietary-boundary doc for what adopters may keep proprietary.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lowbono-0.1.0rc1.tar.gz.
File metadata
- Download URL: lowbono-0.1.0rc1.tar.gz
- Upload date:
- Size: 120.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3238f8a53627a0cb556ec42fafbff8e7b0e91fa8953102d2003019326270e4e0
|
|
| MD5 |
fdf6b593742516e8befbb4cf12b330e9
|
|
| BLAKE2b-256 |
1ade91fb5f7c81fdd548eafcd88381a8a43d6c40c1fbacdff25f302e6694b636
|
File details
Details for the file lowbono-0.1.0rc1-py3-none-any.whl.
File metadata
- Download URL: lowbono-0.1.0rc1-py3-none-any.whl
- Upload date:
- Size: 134.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b456bb3d9c06cf37209fc180757369ad4e5d6f199c7c5a675060d30a7200fb15
|
|
| MD5 |
24542d3483b21fdd9dec16083e1b65f7
|
|
| BLAKE2b-256 |
1f946fff669c8a5b3f3166163f34dead6f5c9d918cd4edb8869793cbd9e1a49b
|