Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

datadrivenconstruction/OpenConstructionERP

Productivity & Utilities

Self-hosted construction ERP for BOQ estimating, CAD/BIM takeoff and cost management, aimed at estimators and construction firms.

1,138
370
TypeScript
AGPL-3.0
7 months old

Overview

OpenConstructionERP is an open-source, self-hosted workspace for construction project management. Its core is a bill of quantities (BOQ) editor for building cost estimates, combined with CAD/BIM takeoff, cost databases, scheduling, tendering and related project modules. It targets quantity surveyors, estimators, construction managers and firms that want regional standards and local data control rather than a seat-licensed proprietary estimating suite.

The estimating flow starts from PDFs, DWG/IFC/RVT models, photos or text. CAD/BIM elements are converted to canonical quantities, matched to cost items, and assembled in the BOQ editor, where sections, resources, markups and validation rules such as DIN 276, NRM and MasterFormat apply. A bundled cost catalog covers 120,000+ priced items across nine cost bases; AI features can draft estimates or match costs, using an external LLM provider key configured by the user.

Getting started

The fastest supported route is the packaged desktop app: choose a Windows .exe, Apple Silicon macOS .dmg, or Linux .deb/.AppImage from the latest release or the download page. Desktop builds are currently unsigned, so Windows SmartScreen and macOS Gatekeeper will warn; the release also publishes SHA256SUMS and a Sigstore signature for verification.

A command-line route requires Python 3.12+:

pip install --upgrade openconstructionerp
openconstructionerp

The first run initializes an embedded PostgreSQL database, loads demo data and opens http://localhost:8080. Sign in with demo@openconstructionerp.com / DemoPass1234! and use one of the 70 preloaded demo projects across 30+ countries to explore BOQs and cost models. Subsequent launches only need openconstructionerp again; if the command is not on PATH, use python -m openconstructionerp. Docker and a source-based development setup are also documented, with the development route needing Node.js 22+.

Usage constraints

  • Self-hosting is the default: the app listens on 127.0.0.1; exposing it on a network requires openconstructionerp serve --host 0.0.0.0 --port 8080 plus appropriate server hardening.
  • Demo credentials are fixed in examples. For any internet-facing deployment, set the three DEMO_*_PASSWORD variables to strong secrets or disable demo accounts with DISABLE_DEMO_ACCOUNTS=1; the README explicitly warns against reusing example passwords.
  • AI estimation depends on an external LLM provider (Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek) and an API key; generated quantities and prices are preliminary and require review by a qualified estimator before contractual or tender use.
  • The desktop installers are unsigned; verification is left to the published checksums and Sigstore signature. No Intel macOS build is provided, so Intel Mac users need the pip or Docker route.
  • The project is AGPL-3.0. Modifying and deploying it as a network service requires making the corresponding source available; a separate commercial license is offered for closed-source deployment. The maintainers state they do not merge external pull requests.

HotRepo's take

On the TypeScript daily list for 2026-11-03, the repository recorded 1,136 stars, 370 forks and 19 stars gained, reaching a best position of 5 on that language list; no all-language daily rank is recorded. That is the only snapshot available, so it supports the day's activity but not a trend claim. The project's breadth is unusually large for a single repository — 190+ modules, 44 languages and multiple deployment paths — which makes the demo projects and the guided onboarding the practical starting point. The unsigned desktop installers and the fixed demo passwords are the parts to check first before using a downloaded build or exposing an instance.

Written by AI from the project's README, updated . The project's own docs are the source of truth.