Skip to main content

OpenConstructionERP

Open-source construction cost estimation: BOQ, cost matching, CAD/BIM takeoff.

After pip install, type one command: openconstructionerp

That's the only thing you need to remember. It prints a welcome, asks you to press o + Enter to open the app in your browser, then starts the server at http://127.0.0.1:8080 (and shows a login).


Install

pip install openconstructionerp

Python 3.12+ required. No Docker, no separate PostgreSQL, no Redis. An embedded PostgreSQL database is bundled and starts on its own.

First run

openconstructionerp

This single command:

  1. Starts an embedded PostgreSQL database in your home data folder (no Docker, nothing to install)
  2. Seeds demo data (projects, BOQs, cost catalogues)
  3. Starts the API and UI at http://127.0.0.1:8080
  4. Prints demo login credentials

No config files. No environment variables. It just works.

If openconstructionerp is not found right after install, pip most likely put the launcher in a Scripts folder that is not on your PATH (this is common on Windows). Run it through Python instead. This works from any folder and is the exact same app:

python -m openconstructionerp

Subsequent runs

openconstructionerp

Same command every time. Your data persists between runs.

Other commands

openconstructionerp init-db    # create the local database
openconstructionerp serve      # start the server
openconstructionerp doctor     # health check if anything looks wrong
openconstructionerp welcome    # re-print the welcome screen

CLI reference

openconstructionerp serve   [--host HOST] [--port PORT] [--data-dir DIR] [--open] [--quiet]
openconstructionerp init-db [--data-dir DIR]    # Create the local database + data dirs
openconstructionerp doctor  [--port PORT]       # Run installation health checks
openconstructionerp seed    [--demo]            # Load demo project data
openconstructionerp version                     # Show version

What you get

  • BOQ editor: hierarchical bill of quantities with assemblies, formulas, multi-currency
  • Cost database: import your own rates (Excel/CSV) or use the bundled example templates
  • Cost matching: vector search matches line items to historical cost data
  • CAD/BIM takeoff: quantities from DWG/DXF and IFC/RVT (via DDC, no IfcOpenShell)
  • 4D / 5D: cost-loaded schedule, earned value (SPI/CPI), cash-flow, what-if scenarios
  • Validation: DIN 276, GAEB, NRM, MasterFormat rule packs flag issues at import
  • Reporting: PDF/Excel exports, dashboards, BCF issue exchange

Configuration (optional)

Everything works with zero config. To customise, pass flags or set environment variables:

openconstructionerp serve --port 9000 --data-dir /var/lib/oce

# Or via environment:
DATABASE_URL=postgresql+asyncpg://user:pass@host/db   # Use an external PostgreSQL instead of the embedded one
OE_DATA_DIR=/var/lib/oce                              # Change the data location

The port has no environment variable. It is chosen only by serve --port, so a service definition or a launcher script has to put it on the command line.

Development

The backend is a Python 3.12+ FastAPI application (Pydantic v2, async SQLAlchemy). PostgreSQL is the only supported database. For local development an embedded PostgreSQL (pixeltable-pgserver) runs in-process, so there is no Docker and no separate database server to install for a basic run. SQLite is not supported and was removed in v6.6.0. Leave DATABASE_URL unset to use the embedded server, or set it to point at an external PostgreSQL.

Set up

cd backend
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -e ".[dev]"

Run the dev server

The simplest way is the CLI, which starts the embedded database, seeds demo data, and serves the API together with the built UI:

openconstructionerp serve --port 8080

To run just the API with autoreload against the app factory:

uvicorn app.main:create_app --factory --reload --port 8000

Interactive API docs are then at http://localhost:8000/api/docs and the raw OpenAPI schema at http://localhost:8000/api/openapi.json. See docs/api/README.md for the full HTTP API guide.

Tests

cd backend
pytest                    # whole suite
pytest tests/unit         # unit tests only
pytest -k boq             # a subset by keyword

Tests run with pytest and pytest-asyncio (asyncio_mode = auto). The suite runs serially against one PostgreSQL database that the test harness provisions when the tests load.

Formatting and linting

Code style is enforced with ruff (line length 120, target py312). Format and lint before committing:

ruff format .
ruff check .

The lint rule set is E, F, W, I, N, UP, B, A, C4, PT, RET, SIM. The exact configuration lives in backend/pyproject.toml.

License

AGPL-3.0-or-later. Commercial licensing available, contact info@datadrivenconstruction.io

Metadata

Release files for openconstructionerp 18.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for openconstructionerp 18.2.0
File Interpreter ABI Platform
openconstructionerp-18.2.0-py3-none-any.whl Python 3 none any Details

Release files / openconstructionerp-18.2.0-py3-none-any.whl

Download URL openconstructionerp-18.2.0-py3-none-any.whl
Size 90.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6cadec4472c0aba786de35151da59b94768b48be4752d4ce804dbed306997e0d
BLAKE2b-256 checksum
How to use checksums
a82e16d5dcbf03742b9c663414e532e716fc588e3c4c9ebf486a68195c445e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

18.3.0

1 release file

This release

18.2.0 This release

1 release file

18.1.0

1 release file

18.0.0

1 release file

17.8.3

1 release file

17.8.2

1 release file

17.8.1

1 release file

17.8.0

1 release file

17.7.1

1 release file

17.7.0

1 release file

17.6.0

1 release file

17.5.0

1 release file

17.4.1

1 release file

16.9.0

1 release file

16.8.3

1 release file

16.7.0

1 release file

16.6.0

1 release file

16.4.0

1 release file

16.2.0

1 release file

16.0.0

1 release file

15.9.0

1 release file

15.6.1

1 release file

15.6.0

1 release file

15.5.0

1 release file

15.4.0

1 release file

15.3.0

1 release file

15.2.0

1 release file

15.1.0

1 release file

15.0.0

1 release file

14.8.1

1 release file

14.8.0

1 release file

14.7.0

1 release file

14.6.0

1 release file

14.5.0

1 release file

14.4.0

1 release file

14.3.0

1 release file

14.2.2

1 release file

14.2.1

1 release file

14.2.0

1 release file

14.0.0

1 release file

12.9.0

1 release file

12.8.0

1 release file

12.7.0

1 release file

12.6.1

1 release file

12.6.0

1 release file

12.5.0

1 release file

12.4.0

1 release file

12.3.0

1 release file

12.2.0

1 release file

12.1.0

1 release file

12.0.1

1 release file

11.18.0

1 release file

11.17.0

1 release file

11.16.2

1 release file

11.16.1

1 release file

11.16.0

1 release file

11.15.0

1 release file

11.14.0

1 release file

11.13.0

1 release file

11.12.0

1 release file

11.11.1

1 release file

11.10.0

1 release file

11.9.0

1 release file

11.8.0

1 release file

11.7.1

1 release file

11.7.0

1 release file

11.6.2

1 release file

11.6.1

1 release file

11.5.0

1 release file

11.4.0

1 release file

11.3.0

1 release file

11.2.0

1 release file

11.0.0

1 release file

10.10.0

1 release file

10.9.0

1 release file

10.8.0

1 release file

10.7.0

1 release file

10.6.1

1 release file

10.6.0

1 release file

10.5.0

1 release file

10.4.0

1 release file

10.3.0

1 release file

10.2.0

1 release file

10.1.0

1 release file

10.0.1

1 release file

10.0.0

1 release file

9.9.3

1 release file

9.9.2

1 release file

9.9.1

1 release file

9.9.0

1 release file

9.8.0

1 release file

9.7.0

1 release file

9.6.0

1 release file

9.4.0

1 release file

9.3.0

1 release file

9.2.0

1 release file

9.1.0

1 release file

9.0.1

1 release file

9.0.0

1 release file

8.11.0

1 release file

8.10.0

1 release file

8.9.1

1 release file

8.9.0

1 release file

8.8.4

1 release file

8.8.3

1 release file

8.8.2

1 release file

8.8.1

1 release file

8.8.0

1 release file

8.7.1

1 release file

8.7.0

1 release file

8.6.1

1 release file

8.6.0

1 release file

8.5.0

1 release file

8.4.0

1 release file

8.3.3

1 release file

8.3.2

1 release file

8.3.1

1 release file

8.3.0

1 release file

8.2.2

1 release file

8.2.1

1 release file

8.2.0

1 release file

8.1.0

1 release file

8.0.0

1 release file

7.10.0

1 release file

7.9.0

1 release file

7.8.0

1 release file

7.7.0

1 release file

7.6.0

1 release file

7.5.0

1 release file

7.3.0

1 release file

7.2.0

1 release file

7.1.0

1 release file

7.0.1

1 release file

7.0.0

1 release file

6.10.0

1 release file

6.9.0

1 release file

6.8.2

1 release file

6.8.1

1 release file

6.8.0

1 release file

6.7.0

1 release file

6.6.0

1 release file

6.5.0

1 release file

6.4.2

1 release file

6.4.1

1 release file

6.4.0

1 release file

6.3.0

1 release file

6.2.5

1 release file

6.2.4

1 release file

6.2.3

1 release file

6.2.2

1 release file

6.2.1

1 release file

6.2.0

1 release file

6.1.2

1 release file

6.1.1

1 release file

6.1.0

1 release file

6.0.0

1 release file

5.9.2

1 release file

5.9.1

1 release file

5.9.0

1 release file

5.8.0

1 release file

5.7.1

1 release file

5.7.0

1 release file

5.6.0

1 release file

5.5.3

1 release file

5.5.1

1 release file

5.5.0

1 release file

5.4.3

1 release file

5.4.2

1 release file

5.4.1

1 release file

5.4.0

1 release file

5.3.0

1 release file

5.2.8

1 release file

5.2.7

1 release file

5.2.5

1 release file

4.5.0

1 release file

4.4.1

1 release file

4.4.0

1 release file

4.3.2

1 release file

4.3.1

1 release file

4.3.0

1 release file

4.2.4

1 release file

4.2.3

1 release file

4.2.2

1 release file

4.2.1

1 release file

4.2.0

1 release file

4.1.0

1 release file

4.0.0

1 release file

3.12.1

1 release file

3.12.0

1 release file

3.11.0

1 release file

3.10.1

1 release file

3.10.0

1 release file

3.9.1

1 release file

3.9.0

1 release file

3.8.0

1 release file

3.7.0

1 release file

3.6.1

1 release file

3.6.0

1 release file

3.5.0

1 release file

3.4.1

1 release file

3.4.0

1 release file

3.3.0

1 release file

3.2.0

1 release file

3.0.9

1 release file

3.0.8

1 release file

3.0.7

1 release file

3.0.5

1 release file

3.0.0

1 release file

2.9.42

1 release file

2.9.39

1 release file

2.9.36

1 release file

2.9.35

1 release file

2.9.34

1 release file

2.9.31

1 release file

2.9.30

1 release file

2.9.29

1 release file

2.9.28

1 release file

2.9.27

1 release file

2.9.26

1 release file

2.9.25

1 release file

2.9.24

1 release file

2.9.23

1 release file

2.9.22

1 release file

2.9.21

1 release file

2.9.20

1 release file

2.9.19

1 release file

2.9.18

1 release file

2.9.17

1 release file

2.9.16

1 release file

2.9.15

1 release file

2.9.14

1 release file

2.9.13

1 release file

2.9.12

1 release file

2.9.11

1 release file

2.9.10

1 release file

2.9.9

1 release file

2.9.8

1 release file

2.9.7

1 release file

2.9.6

1 release file

2.9.5

1 release file

2.9.4

1 release file

2.9.1

1 release file

2.9.0

1 release file

2.8.8

1 release file

2.8.7

1 release file

2.8.6

1 release file

2.8.5

1 release file

2.8.4

1 release file

2.8.3

1 release file

2.8.2

1 release file

2.7.1

1 release file

2.7.0

1 release file

2.6.40

1 release file

2.6.39

1 release file

2.6.38

1 release file

2.6.37

1 release file

2.6.36

1 release file

2.6.35

1 release file

2.6.33

1 release file

2.6.32

1 release file

2.6.31

1 release file

2.6.30

1 release file

2.6.29

1 release file

2.6.27

1 release file

2.6.26

1 release file

2.6.25

1 release file

2.6.24

1 release file

2.6.23

1 release file

2.6.22

1 release file

2.6.21

1 release file

2.6.20

1 release file

2.6.19

1 release file

2.6.18

1 release file

2.6.17

1 release file

2.6.16

1 release file

2.6.15

1 release file

2.6.14

1 release file

2.6.13

1 release file

2.6.12

1 release file

2.6.11

1 release file

2.6.10

1 release file

2.6.9

1 release file

2.6.8

1 release file

2.6.7

1 release file

2.6.6

1 release file

2.6.5

1 release file

2.6.4

1 release file

2.6.3

1 release file

2.6.2

1 release file

2.6.1

1 release file

2.6.0

1 release file

2.5.5

1 release file

2.5.3

1 release file

2.5.2

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.4.0

1 release file

1.10.0

2 release files

1.3.1

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page