Skip to content

DjinnFoundry/OpenConstructionERP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,193 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpenConstructionERP

Open-source ERP for construction estimation and project management

Professional BOQ, 4D/5D planning, AI-powered estimation, CAD/BIM takeoff — all in one platform.

▶ Watch the 12-min walkthrough · Demo · Documentation · Discussions · Report Bug

License Version PyPI Downloads (pepy · per month) Stars
Last commit Languages Cost Items

OpenConstructionERP — Dashboard Overview
full_preview_compressed.mp4

1-minute teaser above · for the full 12-minute walkthrough → watch on YouTube · onboarding → BoQ → BIM → DWG → PDF → AI → dashboard

100% open source · 55,000+ cost items · AI estimation · 27 languages · 111 modules · Self-hosted


Table of Contents

Get Started

Estimating & Costs

Project Lifecycle

Visualization & Coordination

Field & Quality

Setup & Standards

Technical

Community

Legal & Privacy


If you want to see new updates and database versions and if you find our tools useful please give our repositories a star to see more similar applications for the construction industry. Star OpenConstructionERP on GitHub and be instantly notified of new releases.





What's New in v4.6.0 — Floating chat + Accommodation + Geo overlay + 10 dashboard widgets

The v4.6.0 wave adds a floating ERP-aware chat on every page, a new Accommodation module that unifies worker camps / rentals / hotels, 10 new dashboard widgets with server-synced layout, DWG/PDF raster overlay in the Geo Hub globe, and 6 per-module guided tours. 111 modules ship in the box; the /api/v1/* surface remains the public contract.

Floating chat — every page, talks to your ERP DB Bottom-right FAB on every screen opens a panel backed by 17 database tools (projects, BOQ, schedule, validation, risks, CWICR search, BIM elements, semantic search across all modules). Streamed responses with tool-call cards rendered inline.

Accommodation module — worker camps + rentals + hotels

  • One module for three lodging kinds (worker_camp / rental / hotel) with kind-filter tabs and per-card capacity.
  • Rooms with status (available · occupied · maintenance · blocked) and BIM element id linkage.
  • Bookings state machine: reserved → checked_in → checked_out (or cancelled from any non-final state), 409 on bookings into maintenance/blocked rooms.
  • Charges (base rent, extras, deposits, refunds) with Decimal precision and per-room currency inheritance.
  • PropDev bootstrap — one-click iterate a development block's plots → 1:1 rooms, idempotent.
  • HR autobook — suggest lowest-labelled available worker_camp room for an employee contact, human-confirmed.
  • BIM bim_element_id + Geo lat/lon integration; cards show a "Geo" deeplink when coords are set.

10 new dashboard widgets + server-synced customizer BOQ Summary · Critical Path · Top Risks · HSE Scorecard · Procurement Pipeline · Budget Variance · Change Orders · Clash Health · Validation Score · Weather Site. Layout persists server-side via UserPreference (no more device-local drift).

Geo Hub raster overlay (DWG/PDF on the globe)

  • Upload a PDF or image, drag four corners onto the globe → raster appears as a draped overlay.
  • Polygon crop with vertex drag; degenerate-bbox guard + "Needs corners" CTA when pixel→geo math under-determines the placement.
  • Infinite-loop guard removed (component now stable under repeated re-mounts).

6 per-module guided tours BOQ · BIM · Geo · PropDev · Dashboard · Accommodation each ship a hand-written tour wired through ModuleHelpButton tourId="…". 192 i18n strings translated EN/DE/RU at native quality.

Reliability fixes

  • Dashboard widget endpoints: 12 4xx → 0 (URL paths were drifting from router prefixes).
  • Marketing-site SMTP: port 465 now correctly uses SMTP_SSL (port 587 stays STARTTLS).
  • Geo overlay: fix infinite re-render loop on initial open; degenerate bbox now shows actionable CTA instead of a blank globe.

Cumulative since v4.0.0

  • v4.1–v4.3 Round 4 + Round 5 security: ~73 IDOR closures across 11 modules.
  • BIM Requirements (IDS/COBie), Coordination Hub, Smart Views, Clash AI Triage, BCF 3.0/OpenCDE.
  • PropDev complete Lead → SPA → Handover → Warranty clickflow + Geo Hub Cesium 3D Tiles.

Latest alembic head: v3121 (Accommodation + Geo raster overlay) · single-head invariant maintained across every wave.

See the latest release and the CHANGELOG for the per-release breakdown.


Why OpenConstructionERP?

Construction cost estimation software is expensive, closed-source, and locked to specific regions. OpenConstructionERP changes that.

What you get How it works
Free forever AGPL-3.0 license. No subscriptions, no per-seat fees, no vendor lock-in.
Your data, your server Self-hosted. Everything runs on your machine — nothing leaves your network.
27 languages Full UI translation: English, German, French, Spanish, Portuguese, Russian, Chinese, Arabic, Hindi, Japanese, Korean, and 16 more.
30+ regional standards DIN 276, NRM 1/2, CSI MasterFormat, GAEB, ГЭСН, DPGF, GB/T 50500, CPWD, ÖNORM, Birim Fiyat, Sekisan, SINAPI, and more.
AI-powered Connect any LLM provider (Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek) for smart estimation.
55,000+ cost items CWICR database with 11 regional pricing databases (DACH, UK, US, France, Spain, Brazil, Russia, UAE, China, India, Canada).

How It Compares

Capability OpenConstructionERP Enterprise
BIM
CAD
Takeoff
Legacy
Estimating
PDF
Markup
LicenseAGPL-3.0 (free)ProprietaryProprietaryProprietaryProprietary
Self-hosted / offline⚠ partial
PriceFree forever~€500/mo~€300/mo~€200/mo~€30/mo
AI estimation✔ 7 LLM providers
UI languages275328
Regional standards30+432
BOQ editor
CAD/BIM takeoff✔ RVT IFC DWG DGNPDF only
4D/5D planning
Cost database included✔ 55K+ rates✖ extra✖ extra✖ extra
Resource catalog✔ 7K+ priced✖ extra
Validation engine✔ 42 rules⚠ limited
REST API✔ full⚠ limited
Real-time collab✔ soft locks
Open data export✔ GAEB · XLSX · JSON⚠ limited⚠ limited⚠ limitedPDF only
IDS / COBie requirements✔ import + export
Property dev lifecycle✔ Lead → SPA → Handover
3D globe / geo-anchor✔ Cesium 3D Tiles⚠ map only

Comparison reflects typical category capabilities based on publicly available information as of Q1 2026. Pricing is approximate (per-seat, list price) and varies by vendor and region. OpenConstructionERP is an independent open-source project and is not affiliated with any commercial vendor in the categories above.


See It In Action

Each block below is a short GIF cut from the full walkthrough above — same order as the video, so you can jump to whichever workflow matters most. Prefer one continuous video? ▶ Watch the 12-minute walkthrough on YouTube.

1 · Role-Based Onboarding
Sign in as Admin / Estimator / Manager — the wizard pre-selects the right 17 of 46 modules for your role

Role-Based Onboarding
2 · New Project, Any Region
Pick currency, classification standard, regional factor — live map & weather come along for free

New Project Global
3 · Build the Bill of Quantities
Keyboard-first editor, 55K+ priced items, AI cost finder & Smart AI — quality score updates live

BoQ Editor
4 · BIM → BOQ Bulk Link
Link 100 Revit walls → one BOQ line with aggregated area / volume / length — no IfcOpenShell

Bulk Link BIM Group
5 · DWG Drawings & Layers
636 wall entities across 10 DWG layers — every one linkable to the BOQ, measured in place

DWG Layers
6 · PDF Takeoff
Drop a floorplan, measure distance / area / count, push the numbers straight into the BOQ

PDF Takeoff
7 · Complete Estimate — $6.26M
Real Revit project → 215 positions, 88 sections, CWICR-priced, quality score 99

Complete Estimate
8 · Every Module — BIM-Linked Tasks
Issues tied to exact model elements, tracked on a Kanban board alongside schedule, docs & requirements

Tasks Linked To BIM
9 · Data Explorer — Pivot → BOQ
CAD-BIM Explorer pivot becomes 10 BOQ positions in one click — charts, data bars & drill-down included

Data Explorer Pivot
10 · AI Estimate from a Photo
Upload a construction photo → GPT-4o + YOLO return a scoped BOQ in seconds, confidence-scored

AI Photo to Estimate
11 · Global Portfolio Dashboard
7 projects, 4 continents, $28.3M in active estimates — one workspace, one map

Projects Dashboard
Bonus · Instant Search
Find any of 55K+ cost items across 11 regional databases by keyword, unit or classification

Instant Search

Key Features

Bill of Quantities (BOQ) Management

BOQ Editor — Create, manage and analyze Bills of Quantities

Build professional cost estimates with a powerful BOQ editor. The full lifecycle — from first sketch to final tender submission:

  Upload              Convert            Validate           Estimate           Tender
 ┌────────┐        ┌──────────┐       ┌───────────┐      ┌──────────┐      ┌──────────┐
 │PDF/CAD │───────▶│ Extract  │──────▶│ 42 rules  │─────▶│BOQ Editor│─────▶│ Bid Pkgs │
 │Photo   │        │quantities│       │ DIN/NRM/  │      │ + AI     │      │ Compare  │
 │Text    │        │ + AI     │       │ MasterFmt │      │ + Costs  │      │ Award    │
 └────────┘        └──────────┘       └───────────┘      └──────────┘      └──────────┘
                                                               │
                                                         ┌─────┴──────┐
                                                         │ 4D Schedule│
                                                         │ 5D Costs   │
                                                         │ Risk Reg.  │
                                                         │ Reports    │
                                                         └────────────┘
  • Hierarchical BOQ structure — Sections, positions, sub-positions with drag-and-drop reordering
  • Inline editing — Click any cell to edit. Tab between fields. Undo/redo with Ctrl+Z
  • Resources & assemblies — Link labor, materials, equipment to each position. Build reusable cost recipes
  • Markups — Overhead, profit, VAT, contingency — configure per project or use regional defaults
  • Automatic calculations — Quantity × unit rate = total. Section subtotals. Grand total with markups
  • Validation — 42 built-in rules check for missing quantities, zero prices, duplicate items, and compliance with DIN 276, NRM, MasterFormat
  • Export — Download as Excel, CSV, PDF report, or GAEB XML (X83)

Cost Databases & Resource Catalog

Cost Database — 55,000+ items across 11 regions

Access the world's construction pricing data:

  • CWICR database — 55,000+ cost items covering all major construction trades. Available in 9 languages with 11 regional price sets
  • Smart search — Find items by description, code, or classification. AI-powered semantic search matches meaning, not just keywords ("concrete wall" finds "reinforced partition C30/37")
  • Resource catalog — 7,000+ materials, equipment, labor rates, and operators. Build custom assemblies from catalog items
  • Regional pricing — Automatic price adjustment based on project location. Compare rates across regions
  • Import your data — Upload your own cost database from Excel, CSV, or connect via API

CAD/BIM Takeoff & AI Estimation

CAD/BIM Takeoff and AI-powered estimation

Extract quantities from any source — drawings, models, text, or photos:

  Source              DDC cad2data         Canonical            Match              BOQ
 ┌────────┐         ┌──────────────┐    ┌──────────┐       ┌──────────┐      ┌──────────┐
 │.rvt    │         │ Element      │    │ Elements │       │ Classify │      │ Positions│
 │.ifc    │────────▶│ extraction   │───▶│ + Quants │──────▶│ (DIN/NRM)│─────▶│ + Linked │
 │.dwg    │         │ (no IFC OS)  │    │ + Props  │       │ + Costs  │      │ geometry │
 │.dgn    │         └──────────────┘    └──────────┘       └──────────┘      └──────────┘
 │.pdf    │                                                                         │
 │photo   │         ┌──────────────┐                                          ┌─────┴────┐
 │text    │────────▶│ CV / OCR / AI│──────────────────────────────────────▶  │ BIM Pick │
 └────────┘         │ (PaddleOCR + │                                          │ area/vol │
                    │  YOLOv11)    │                                          │ /length  │
                    └──────────────┘                                          └──────────┘
  • CAD/BIM takeoff — Upload Revit (.rvt), IFC, AutoCAD (.dwg), or MicroStation (.dgn) files. DDC converters extract elements with volumes, areas, and lengths automatically
  • Interactive QTO — Choose how to group extracted data: by Category, Type, Level, Family. Format-specific presets for Revit and IFC
  • Linked geometry preview — Click the BIM link badge on any BOQ position to see a 3D preview of linked elements with interactive rotate/zoom/pan controls
  • BIM Quantity Picker — Select quantities (area, volume, length) directly from linked BIM elements and apply them to BOQ positions. The source parameter name is shown next to the unit
  • DWG polyline measurement — Click any polyline in the DWG viewer to instantly see area, perimeter, and individual segment lengths with on-canvas labels
  • PDF measurement — Open construction drawings directly in the browser. Measure distances, areas, and count elements with calibrated scale
  • AI estimation — Describe your project in plain text, upload a building photo, or paste a PDF — AI generates a complete BOQ with quantities and market rates
  • AI Cost Advisor — Ask questions about pricing, materials, or estimation methodology. AI answers using your cost database as context
  • Cost matching — After AI generates an estimate, match each item against your CWICR database to replace AI-guessed rates with real market prices

Geo Hub (3D Globe)

Anchor every project on a real spherical earth — Cesium 3D Tiles 1.1 with live HUD and pin layers:

   Anchor              Globe                Mode               Deeplink            Fly-to
 ┌──────────┐       ┌──────────┐       ┌───────────┐       ┌────────────┐      ┌──────────┐
 │ Project  │       │ Cesium   │       │  Global   │       │ ?model=…   │      │ BIM scene│
 │ Plot     │──────▶│ 3D Tiles │──────▶│  Project  │──────▶│ ?plot=…    │─────▶│ PropDev  │
 │ CAD model│       │ live HUD │       │ Developm. │       │ ?dev_id=…  │      │ Daily Diary│
 └──────────┘       └──────────┘       └───────────┘       └────────────┘      └──────────┘
       ▲                  │                                                          │
       │                  ▼                                                          │
       │           ┌──────────────┐                                                  │
       └───────────│ Pin layers   │ ◀────── HSE · Punchlist · Daily Diary ◀──────────┘
                   └──────────────┘
  • Three-mode picker — Global (planet-wide portfolio), Project (job-site scale), Development (plot-level masterplan)
  • Live HUD — Cursor latitude / longitude, terrain altitude, dynamic scale bar, north arrow
  • Anchored Projects rail — Floating collapsible overlay showing every geo-anchored project, click to fly-to
  • Deeplinks?model=, ?plot=, ?dev_id=, ?phase=, ?block= survive page reloads and shareable URLs
  • Pin layers — HSE incidents, Punchlist items, Daily Diary entries plotted on the globe with category icons
  • "View on map" CTAs — One click from BIM viewer, PropDev plot, Daily Diary entry, Project card → globe with that asset selected
  • DWG / PDF raster overlay — Upload a site plan or floorplan, drag four corner pins onto the globe → the raster drapes over real terrain; polygon crop with vertex drag for cookie-cutter trimming
  • Canonical pipelinePOST /api/v1/geo-hub/from-canonical/{cad_import_id} turns any DDC cad2data conversion into glTF 3D Tiles via pure-Python pygltflib (no commercial toolkit needed)

Example: open a Berlin masterplan in Geo Hub, switch to Development mode, see all 12 plots colored by sale status, click one → reservation pipeline opens with that buyer pre-filtered.

Property Development

End-to-end real-estate developer workflow — from first lead to handover snags to warranty close-out:

   Lead          Reservation         SPA              Handover           Warranty
 ┌────────┐    ┌──────────┐     ┌──────────┐      ┌───────────┐      ┌──────────┐
 │ CRM    │───▶│ Hold +   │────▶│ Contract │─────▶│ Snags     │─────▶│ Defects  │
 │ inbox  │    │ deposit  │     │ + Escrow │      │ + Photos  │      │ liability│
 │ Broker │    │ schedule │     │ schedule │      │ + Sign-off│      │ + Promote│
 └────────┘    └──────────┘     └──────────┘      └───────────┘      └──────────┘
      │              │                │                  │                  │
      └──────────────┴────────────────┴──── Contact bridge (idempotent tags) ┘
                                              ▼
                                     ┌────────────────┐
                                     │ Price Matrix   │
                                     │ Phases · Blocks│
                                     │ House Types    │
                                     │ Brokers · Plots│
                                     └────────────────┘
  • Lead → Reservation → SPA → Handover → Warranty — Full lifecycle FSM with auto-creation of ContractParty on SPA conversion, Payment Schedule state machine, idempotent stage transitions
  • Sub-entity tabs — Phases · Blocks · Brokers · Price Matrix · Escrow — one screen for every dev operation, no page hops
  • House Type catalogue — ISO 3166-1 picker covering 180+ countries plus Custom region; CountryCombobox + HouseTypeEditModal share the same backend taxonomy as catalog & costs
  • SnagsBlock per handover — Photo upload, status (Open / Resolved / Disputed), one-click promote-to-warranty when a snag survives the defects-liability period
  • Contacts ↔ PropDev bridge — Every Lead and Buyer is idempotently tagged as a Contact via Contact.module_tags, so CRM and PropDev stay in sync without duplicates
  • Price Matrix — Per-phase × house-type × view-premium grid with currency-aware totals and bulk apply
  • Escrow — Per-buyer payment schedule with milestone receipts and outstanding balance roll-up
  • Bootstrap to Accommodation — One click on a development block creates a worker-camp / rental inventory in the Accommodation module (1:1 plots → rooms, idempotent)

Example: import a 240-unit residential masterplan, generate price matrix from house-type × view, push to globe, accept 18 reservations across 3 brokers, convert 11 to SPA, hand over 4, track 7 open snags in the warranty period — all in one app.

Accommodation

Accommodation module — worker camps, rentals and hotels in one place

One module for three lodging kinds — worker camps for site crews, rentals for staff, hotels for visiting consultants — with rooms, bookings and charges in a unified data model:

   PropDev block         Accommodation         Rooms              Bookings           Charges
 ┌──────────────┐      ┌──────────────┐    ┌────────────┐    ┌────────────┐    ┌────────────┐
 │ Plots #1..N  │──1▶──│ Worker camp  │───▶│ available  │───▶│ reserved   │───▶│ base rent  │
 │ (PropDev)    │ click│ Rental       │    │ occupied   │    │ checked_in │    │ extras     │
 │              │      │ Hotel        │    │ maintenance│    │ checked_out│    │ deposits   │
 └──────────────┘      └──────────────┘    │ blocked    │    │ cancelled  │    │ refunds    │
       ▲                     │             └────────────┘    └────────────┘    └────────────┘
       │                     ▼                                    ▲
       │              ┌──────────────┐                            │
       │              │ HR autobook  │ ◀──── lowest-labelled ─────┘
       │              │ (suggest+    │       available worker_camp room
       │              │  confirm)    │
       │              └──────────────┘
       │
   "Bootstrap to Accommodation" CTA
  • Three kinds, one moduleworker_camp · rental · hotel, with tab filter and per-kind capacity counters on every card
  • Rooms with statusavailable · occupied · maintenance · blocked; 409 prevents booking into a blocked or maintenance room
  • Booking state machinereserved → checked_in → checked_out with cancelled from any non-final state; idempotent same-state updates; final states locked
  • Charges with Decimal precision — Base rent, extras, deposits, refunds, all in the room's inherited currency (no hardcoded EUR)
  • PropDev bootstrap — One click on a development block iterates its plots and creates rooms 1:1, idempotent (running twice creates nothing extra)
  • HR autobook (suggest-confirm) — Pick an employee Contact → suggest the lowest-labelled available worker_camp room → human confirms with a real booking POST
  • BIM + Geo awarebim_element_id carries through from PropDev plots; cards with geo_lat/geo_lon get a "Geo" deeplink to the globe
  • IDOR-hardened — Every helper returns 404 (never 403) on cross-tenant access; tested in backend/tests/modules/accommodation/

Example: 240-plot worker camp on a remote site — bootstrap from the PropDev block, HR autobooks 187 crew members from the Contacts directory over three weeks, base-rent charges roll up to the project P&L automatically.

Floating Chat with the ERP Database

Bottom-right floating chat on every page — talks to the entire ERP database through 17 typed tools (projects, BOQ items, schedule, validation, risks, CWICR search, BIM elements, full semantic search):

  Any page          Floating button       Panel + 17 tools     Streamed
 ┌────────┐        ┌──────────────┐     ┌──────────────┐     ┌──────────┐
 │/projects│       │  bottom-right │     │ get_projects │     │ tool card│
 │/boq    │──FAB──▶│   ◯ Message  │────▶│ search_cwicr │────▶│ rendered │
 │/geo    │        │   (badge: 3) │     │ create_boq   │     │ in chat  │
 └────────┘        └──────────────┘     └──────────────┘     └──────────┘
  • Always-on — Mounted in AppLayout, available on every route (Dashboard, BOQ, BIM, Geo, PropDev, Accommodation, all 111 modules)
  • Real ERP access — Reads/writes through tools, not LLM guesswork: get_all_projects, get_project_summary, get_boq_items, get_schedule, get_validation_results, get_risk_register, search_cwicr_database, get_cost_model, compare_projects, run_validation, create_boq_item, search_boq_positions, search_documents, search_tasks, search_risks, search_bim_elements, search_anything
  • Streamed responses — Tool-call cards (risk register table, BOQ summary, etc.) render inline as the model produces them
  • Provider-agnostic — Anthropic / OpenAI / Gemini / Mistral / Groq / DeepSeek behind the same tool interface

Coordination Hub & Clash AI

Multi-disciplinary BIM coordination with AI-assisted issue triage:

  Federation         Raw clashes        Smart Issues       AI Triage         BCF 3.0
 ┌──────────┐      ┌────────────┐     ┌────────────┐    ┌────────────┐    ┌──────────┐
 │ ARC ·STR │      │ thousands  │     │ clustered  │    │ severity   │    │ Solibri  │
 │ MEP ·HSE │─────▶│ raw pairs  │────▶│ by zone +  │───▶│ rework $   │───▶│ Navisw.  │
 │ models   │      │ + distance │     │ disciplines│    │ confidence │    │ BIMcollab│
 └──────────┘      └────────────┘     └────────────┘    └────────────┘    └──────────┘
                                            │                                  ▲
                                            ▼                                  │
                                    ┌─────────────┐                            │
                                    │ Smart Views │  IDS + COBie owner drops ──┘
                                    │ RFI · Tasks │
                                    │ Cost Impact │
                                    └─────────────┘
  • Coordination Hub — Single dashboard fusing clashes, RFIs, submittals, action items per model federation
  • Smart Views v1 — Saved filters across the federation (e.g. "MEP-vs-STR clashes > 50mm in Level 03")
  • Clash Smart Issues — Auto-group thousands of raw clash results into prioritized issue clusters by location + discipline pair
  • AI Triage — LLM ranks new clashes by severity / rework cost / location criticality with confidence scores
  • Cost Impact rollup — Per-issue rework estimate driven by your cost database, surfaced on the dashboard
  • BCF 3.0 / OpenCDE export — Round-trip with Solibri, Navisworks, BIMcollab via the open BIM standard
  • BIM Requirements — IDS (Information Delivery Specification) and COBie import / export for owner-side data drops

4D Scheduling & 5D Cost Model

Plan your project timeline and track costs over time:

  • Gantt chart — Visual project schedule with drag-and-drop activities, dependencies (FS/FF/SS/SF), and critical path highlighting
  • Auto-generate from BOQ — Create schedule activities directly from your BOQ sections with cost-proportional durations
  • Earned Value Management — Track SPI, CPI, EAC, and variance. S-curve visualization shows planned vs actual progress
  • Budget tracking — Set baselines, compare snapshots, run what-if scenarios
  • Monte Carlo simulation — Risk-adjusted schedule analysis with probability distributions

Tendering, Risk & Reporting

Complete your estimation workflow:

   BOQ           Bid Package        Distribute         Compare           Award
 ┌────────┐    ┌────────────┐    ┌────────────┐    ┌────────────┐    ┌──────────┐
 │ priced │───▶│ subset +   │───▶│ Subs (mail │───▶│ side-by-   │───▶│ winner   │
 │ sections    │ instructions    │ + portal)  │    │ side mirror│    │ + change │
 │        │    │ + scope    │    │            │    │ + anomalies│    │   orders │
 └────────┘    └────────────┘    └────────────┘    └────────────┘    └──────────┘
                                                          │                │
                                                          ▼                ▼
                                                   ┌─────────────────────────┐
                                                   │ Reports · GAEB X83      │
                                                   │ Risk Register · EAC     │
                                                   └─────────────────────────┘
  • Tendering — Create bid packages, distribute to subcontractors, collect and compare bids with side-by-side price mirror
  • Change orders — Track scope changes with cost and schedule impact analysis
  • Risk register — Probability × impact matrix, mitigation strategies, risk-adjusted contingency
  • Reports — Generate professional PDF reports, Excel exports, GAEB XML. 12 built-in templates
  • Documents — Centralized file management with version tracking and drag-and-drop upload

Requirements & Quality Gates

Track and validate construction requirements with the EAC (Entity-Attribute-Constraint) system:

  • EAC Triplets — Capture requirements as structured data: Entity (wall), Attribute (fire_rating), Constraint (≥ F90)
  • 4 Quality Gates — Completeness → Consistency → Coverage → Compliance. Run sequentially to validate requirements
  • BOQ Traceability — Link each requirement to BOQ positions for full traceability from spec to estimate
  • Bulk Import — Import requirements from structured text (pipe-delimited format)
  • Categories — Structural, fire safety, thermal, acoustic, waterproofing, electrical, mechanical, architectural

PDF Markups & Annotations

Annotate construction drawings and documents directly in the browser:

  • 10 markup types — Cloud, arrow, text, rectangle, highlight, polygon, distance, area, count, stamp
  • Custom stamps — Approved, Rejected, For Review, Revised, Final + create your own with logo and date
  • Scale calibration — Set real-world scale per page for accurate measurements
  • Markups List — Table view of all annotations with filters, search, and CSV export
  • BOQ Integration — Link measurements directly to BOQ positions (quantity = measured value)

Punch List

Track construction deficiencies from discovery to resolution:

  • 5-stage workflow — Open → In Progress → Resolved → Verified → Closed
  • Location pins — Mark exact position on PDF drawings (x/y coordinates)
  • Priority levels — Low, Medium, High, Critical with color coding
  • Photo attachments — Upload photos of deficiencies from the field
  • Categories — Structural, mechanical, electrical, architectural, fire safety, plumbing, finishing
  • PDF Export — Generate punch list reports for stakeholder review
  • Verification control — Different user must verify (not the resolver)

Daily Diary & HSE

Field-level reporting and safety tracking that holds up in court:

  • Daily Diary — Weather-aware entries (auto-pulled from project geo-coordinates), crew on site, equipment used, deliveries, delays, photos
  • HSE Incidents — Near-miss → first-aid → recordable → lost-time taxonomy with mandatory root-cause and corrective-action fields
  • OSHA-recordable flag — Server-side default backing for compliant regulatory exports (300 / 300A / 301)
  • Photo capture with EXIF / GPS — Field photos preserve location and timestamp metadata; magic-byte upload validation for defence-in-depth
  • Geo-anchored pins — Daily Diary and HSE pins surface on the Geo Hub globe layer for portfolio-level safety dashboards

30+ Regional Standards

Standard Region Format
DIN 276 / ÖNORM / SIA Germany / Austria / Switzerland Excel, CSV
NRM 1/2 (RICS) United Kingdom Excel, CSV
CSI MasterFormat United States / Canada Excel, CSV
GAEB DA XML 3.3 DACH region XML
DPGF / DQE France Excel, CSV
ГЭСН / ФЕР Russia / CIS Excel, CSV
GB/T 50500 China Excel, CSV
CPWD / IS 1200 India Excel, CSV
Bayındırlık Birim Fiyat Turkey Excel, CSV
積算基準 (Sekisan) Japan Excel, CSV
Computo Metrico / DEI Italy Excel, CSV
STABU / RAW Netherlands Excel, CSV
KNR / KNNR Poland Excel, CSV
표준품셈 South Korea Excel, CSV
NS 3420 / AMA Nordic countries Excel, CSV
ÚRS / TSKP Czech Republic / Slovakia Excel, CSV
ACMM / ANZSMM Australia / New Zealand Excel, CSV
CSI / CIQS Canada Excel, CSV
FIDIC UAE / GCC Excel, CSV
PBC / Base de Precios Spain Excel, CSV

Validation & Compliance Engine

Ensure your estimates meet regulatory standards before submission:

  • 42 built-in rules across 13 rule sets — DIN 276, NRM, MasterFormat, GAEB, and universal BOQ quality checks
  • Real-time validation — Run checks with Ctrl+Shift+V. Each position gets a pass/warning/error indicator
  • Quality score — Overall BOQ quality percentage (0–100%) visible in the toolbar
  • Drill-down — Click any finding to jump directly to the affected BOQ position and fix it
  • Custom rules — Define project-specific validation rules via the rule builder or Python scripting

Guided Onboarding

Get productive in under 10 minutes:

  1. Choose language — Select from 27 languages. The entire UI switches instantly
  2. Select region — Determines default cost database, currency, and classification standard
  3. Load cost database — One-click import of CWICR pricing data for your region (55,000+ items)
  4. Import resource catalog — Materials, labor, equipment, and pre-built assemblies
  5. Configure AI (optional) — Enter an API key from any supported LLM provider
  6. Create your first project — Set name, region, standard, and start estimating

Quick Start

Prefer to see it first? ▶ Watch the 12-minute walkthrough on YouTube — onboarding → BoQ → BIM → DWG → PDF → AI → dashboard.

Requires Python 3.12+ (any path below). Check with python --version.

Recommended: pip install (1 command, full app)

pip install --upgrade openconstructionerp
openestimate

That's it. Installs backend + pre-built React frontend in one wheel (~7.4 MB), opens your browser at http://localhost:8080, creates a SQLite database, and seeds the three demo accounts on first boot. No Docker, no Node.js, no extra services. PyPI package.

Ubuntu / Debian users: on Ubuntu 23.04+ (including Ubuntu 26) and Debian 12+, pip install directly to the system Python fails with error: externally-managed-environment (PEP 668). Use a venv:

sudo apt install -y python3.12 python3.12-venv
python3.12 -m venv venv && source venv/bin/activate
pip install --upgrade openconstructionerp

Full Linux guide with system deps and troubleshooting: docs/INSTALL_LINUX.md.

If something looks off, run openestimate doctor for a per-check OK/WARN/ERROR report.

Alternative 1: One-line installer (auto-detects Docker / uv / pip)

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/scripts/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/scripts/install.ps1 | iex

Picks Docker if installed, otherwise uv, otherwise pip. Runs at http://localhost:8080.

Alternative 2: Docker compose

git clone https://github.com/datadrivenconstruction/OpenConstructionERP.git
cd OpenConstructionERP
make quickstart

Open http://localhost:8080 — builds everything in ~2 minutes.

Alternative 3: Local development (clone + npm + uvicorn)

git clone https://github.com/datadrivenconstruction/OpenConstructionERP.git
cd OpenConstructionERP

# Install dependencies
pip install -e ./backend[server]
cd frontend && npm install && cd ..

# Start (Linux/macOS)
make dev

# Start (Windows — two terminals)
# Terminal 1: cd backend && uvicorn app.main:create_app --factory --reload --port 8000
# Terminal 2: cd frontend && npm run dev

Open http://localhost:5173 — for hacking on the codebase. Requires Python 3.12+ and Node.js 20+.

Demo Accounts

Three demo accounts are created automatically on first start. Each password is generated per installation (via secrets.token_urlsafe) and printed to the backend startup log so you see it immediately, e.g.:

[seed] Demo user created: demo@openestimator.io / xK7p_Q2nR8sT4uV6wX9yZ
[seed] Pre-set DEMO_USER_PASSWORD env to skip random generation

The same passwords are also persisted to ~/.openestimator/.demo_credentials.json (chmod 600) so you can recover them later. To pin known passwords (e.g. for a team demo or CI), set the env vars before the first boot:

  • DEMO_USER_PASSWORD — admin (demo@openestimator.io)
  • DEMO_ESTIMATOR_PASSWORD — estimator (estimator@openestimator.io)
  • DEMO_MANAGER_PASSWORD — manager (manager@openestimator.io)
Account Email Password Role
Admin demo@openestimator.io see startup log or .demo_credentials.json Full access
Estimator estimator@openestimator.io see startup log or .demo_credentials.json Estimator
Manager manager@openestimator.io see startup log or .demo_credentials.json Manager

Demo accounts include 5 pre-loaded projects from Berlin, London, New York, Paris, and Dubai with complete BOQs, schedules, and cost models.

Security note. For any internet-exposed deployment, set the three DEMO_*_PASSWORD variables to strong, unique secrets, or disable demo accounts entirely with DISABLE_DEMO_ACCOUNTS=1. Do not reuse passwords from examples, screenshots, or earlier versions of this README.


Tech Stack

Layer Technology Purpose
Backend Python 3.12+ / FastAPI Async API, Pydantic v2 validation, modular architecture
Frontend React 18 / TypeScript / Vite SPA with code splitting, 27 language bundles
Database PostgreSQL 16+ / SQLite (dev) OLTP with JSON columns, zero-config SQLite for development
UI Tailwind CSS / AG Grid Professional data grid, responsive design, dark mode
AI Any LLM via REST API Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek
Vector Search LanceDB (embedded) / Qdrant Semantic cost item search, 384d or 3072d embeddings
CAD/BIM DDC cad2data RVT, IFC, DWG, DGN → structured quantities
i18n i18next + 27 language packs Full RTL support (Arabic), locale-aware formatting

Architecture

How the platform turns raw CAD/BIM into structured ERP data

OpenConstructionERP — Digitalization of Processes: Pipelines for Automatic Data Creation

OpenConstructionERP is built around seven cooperating pipelines that turn closed CAD/BIM files (RVT, IFC, DWG, DGN, PLN, TSK) into structured, queryable ERP data — without locking you into a proprietary stack. Every module in the platform plugs into one or more of these stages:

  1. Mining — collect existing project data (CAD/BIM models, CDE drops, COBie deliverables) into a semi-structured pool. Handled by cad, documents, bim_hub, file_search modules + the DDC cad2data converters (RVT/IFC/DWG/DGN/PLN → canonical JSON).
  2. QTO Check & Quantity Take-off rules — apply rule sets per discipline / family / type to extract quantities deterministically. Handled by takeoff, requirements, validation, and the rule editor in match-elements.
  3. BlackBox (company standard) — codify your firm's classifications, formulas, unit factors and assembly recipes as a single canonical rule book (COBie / CFIHOS / SQL / Excel / Access). Handled by costs, assemblies, catalog, cost_intelligence.
  4. New project modeling — apply the BlackBox to a fresh model: geometry → filtering → grouping → verification → BOQ. Handled by boq, projects, match-elements, clash.
  5. BlackBox mapping — map a new project's raw element list onto the canonical rule book via vector + lexical + rule-based matchers. Handled by match-elements (7-stage pipeline) + AI Estimate.
  6. Project-specific data (4D/5D/6D) — derive scheduling, cost, hours, ordering and environmental footprint per group. Handled by scheduling, advanced_schedule, 5d_planner, risk, carbon, hse.
  7. Saving data & Machine Learning — persist project history into the database, data lake and ML models so each new project starts further ahead. Handled by analytics, bi_dashboards, ai_chat, cost_intelligence, and the rule-learning loop in clash (Wave A4) and match-elements.

The right-hand side of the diagram is the automatic data retrieval layer that every UI surface (Dashboard, BOQ editor, /clash, /match-elements, /files, /scheduling) consumes: dashboards, calculations, reports, tables, charts, geometries, and ERP-ready exports — all driven from the same canonical store. The Machine-Learning column on the far right is where the platform progressively automates classification, parameterisation, recognition and marking, replacing manual steps () with automatic steps () over time.

This pipeline is the reason OpenConstructionERP can replace several commercial point-solutions with a single self-hosted stack — every module reads from and writes to the same canonical data layer.

Technical stack

flowchart TB
    UI["Frontend SPA<br>React 18, TypeScript, Vite<br>AG Grid, Tailwind, PDF.js"]

    subgraph Backend ["FastAPI Backend, 111 modules"]
        CORE["Core<br>Module loader, Event bus, Hooks, RBAC<br>Validation, FSM + audit log"]
        ESTIM["Estimating<br>BOQ, Costs, Catalog, Assemblies<br>Takeoff, BIM Hub, Match-Elements, 5D"]
        FIELD["Field Operations<br>Service, Equipment, Daily Diary<br>Portal, Resources & Crew"]
        COMM["Commercial<br>CRM, Contracts, Subcontractors<br>Bid Management, Variations, Suppliers, Property Dev"]
        QSAFE["Schedule & Quality<br>Advanced Schedule (LPS/CPM/EVM)<br>QMS, HSE, Carbon & ESG, BI Dashboards"]
        AIS["AI<br>AI Chat SSE, AI Estimate, Cost Intelligence<br>7 LLM providers"]
        CORE --> ESTIM
        CORE --> FIELD
        CORE --> COMM
        CORE --> QSAFE
        CORE --> AIS
    end

    subgraph Data ["Data layer"]
        PG[("PostgreSQL 16<br>SQLite in dev")]
        VEC[("Vector DB<br>LanceDB / Qdrant")]
        S3[("MinIO / S3<br>files, CAD, PDFs")]
    end

    subgraph Pipelines ["Pipelines"]
        CAD["DDC cad2data<br>RVT, IFC, DWG, DGN to canonical JSON"]
        CV["CV / OCR<br>PaddleOCR 3.0, YOLOv11<br>PDF takeoff, symbol detection"]
    end

    UI -- "REST, SSE" --> CORE
    BIZ --> PG
    BIZ --> VEC
    BIZ --> S3
    CAD --> BIZ
    CV --> BIZ

    classDef fe fill:#1f6feb,stroke:#0d3885,color:#fff;
    classDef be fill:#238636,stroke:#104822,color:#fff;
    classDef ai fill:#db6d28,stroke:#7a3c14,color:#fff;
    classDef data fill:#8250df,stroke:#4a2c7d,color:#fff;
    class UI fe
    class CORE,BIZ be
    class AIS ai
    class PG,VEC,S3,CAD,CV data
Loading
Plain-text version (for screen readers or non-Mermaid renderers)
┌──────────────────────────────────────────────────┐
│  Frontend (React SPA)                            │
│  TypeScript · Tailwind · AG Grid · PDF.js        │
└──────────────────┬───────────────────────────────┘
                   │ REST + SSE
┌──────────────────┴───────────────────────────────┐
│  Backend (FastAPI)                               │
│  111 auto-discovered modules · Plugin system     │
├──────────────────────────────────────────────────┤
│  BOQ · Costs · Schedule · 5D · Validation · AI   │
│  Takeoff · Tendering · Risk · Reports · Catalog  │
│  Requirements · Markups · Punch List · BIM Hub   │
│  PropDev · Geo Hub · Coordination · Clash AI     │
│  Accommodation · Floating Chat · 10 widgets      │
├──────────────────────────────────────────────────┤
│  Database (PostgreSQL / SQLite)                  │
│  Vector DB (LanceDB / Qdrant)                    │
│  CAD Converters (DDC cad2data)                   │
│  CV Pipeline (PaddleOCR + YOLOv11)               │
└──────────────────────────────────────────────────┘

Support the Project

OpenConstructionERP is built and maintained by the community. If you find it useful:

Security

OpenConstructionERP includes security hardening for production deployments:

  • Path traversal protection on all file download endpoints
  • CORS wildcard blocking in production mode
  • Bounded input validation on bulk price operations
  • Generic error responses to prevent account enumeration
  • Production startup checks for secrets, credentials, and database configuration

Do not open public GitHub issues for security vulnerabilities. Report privately via GitHub Security Advisories or by email to info@datadrivenconstruction.io. See SECURITY.md for the full coordinated-disclosure policy, response timelines, supported versions, scope, and regulatory-reporting obligations under EU Regulation 2024/2847 (Cyber Resilience Act).

AI disclaimer

AI suggestions produced by this software are preliminary estimates. A qualified construction-estimation professional must verify all quantities, classifications, and costs before any contractual or tender-submission use. See NOTICE and TERMS.md §4.

Trademarks

All product names, logos, and trademarks referenced in this repository are property of their respective owners. Any comparative references to commercial categories or products are made for fair comparative purposes based on publicly available information. OpenConstructionERP is an independent project and is not affiliated with, endorsed by, or sponsored by any third-party trademark owners. Full attributions in NOTICE.

Export control

This software contains cryptographic functionality (bcrypt password hashing, JWT signing). Export is classified under US EAR 740.17 (TSU mass-market exemption) and EU Regulation 2021/821 (dual-use). The Software is not authorised for download, use, or re-export to jurisdictions subject to comprehensive OFAC sanctions. See NOTICE for the full notice.

License

AGPL-3.0 — see LICENSE. Third-party attributions in NOTICE.

You can freely use, modify, and distribute this software. If you modify and deploy it as a service, AGPL §13 requires you to make the corresponding source code available under the same licence.

For commercial licensing without AGPL obligations, see COMMERCIAL-LICENSE.md or contact info@datadrivenconstruction.io.

Privacy and terms


Follow on X Subscribe on YouTube Connect on LinkedIn Watch the 12-minute walkthrough

DDC Logo
Unlock the Power of Data in Construction
Move to full-cycle data management where only unified
structured data & processes remain and where your data is yours

About

Open-source construction ERP - BOQ, PDF/CAD/BIM takeoff, AI cost matching. 42 regional catalogues, 21 languages, 71 modules. AGPL-3.0. v3.0 - pip install openconstructionerp

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 47.6%
  • Python 42.4%
  • HTML 9.2%
  • JavaScript 0.7%
  • CSS 0.1%
  • Shell 0.0%