Metadata-Version: 2.4
Name: openconstructionerp
Version: 2.5.1
Summary: Open-source construction cost estimation — BOQ, 4D/5D, AI, CAD/BIM takeoff. After install, run: openestimate
Project-URL: Homepage, https://datadrivenconstruction.io/erp
Project-URL: Documentation, https://openconstructionerp.com/docs
Project-URL: Repository, https://github.com/datadrivenconstruction/OpenConstructionERP
Project-URL: Issues, https://github.com/datadrivenconstruction/OpenConstructionERP/issues
Project-URL: Changelog, https://github.com/datadrivenconstruction/OpenConstructionERP/blob/main/CHANGELOG.md
Author-email: Artem Boiko <info@datadrivenconstruction.io>
Maintainer-email: Data Driven Construction <info@datadrivenconstruction.io>
License-Expression: AGPL-3.0-or-later
Keywords: bill-of-quantities,bim,boq,cad,construction,cost-estimation,cwicr,din276,erp,fastapi,gaeb,ifc,masterformat,nrm,open-source,quantity-surveying,react,revit
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.12
Requires-Dist: aiosqlite>=0.20.0
Requires-Dist: alembic>=1.14.0
Requires-Dist: bcrypt>=4.0.0
Requires-Dist: defusedxml>=0.7.1
Requires-Dist: duckdb>=1.2.0
Requires-Dist: email-validator>=2.1.0
Requires-Dist: ezdxf>=0.18.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: httpx>=0.28.0
Requires-Dist: openpyxl>=3.1.0
Requires-Dist: orjson>=3.10.0
Requires-Dist: pandas>=2.2.0
Requires-Dist: pdfplumber>=0.11.0
Requires-Dist: pyarrow>=18.0.0
Requires-Dist: pydantic-settings>=2.6.0
Requires-Dist: pydantic>=2.10.0
Requires-Dist: python-dateutil>=2.9.0
Requires-Dist: python-jose[cryptography]>=3.3.0
Requires-Dist: python-multipart>=0.0.26
Requires-Dist: rapidfuzz>=3.0.0
Requires-Dist: reportlab>=4.0.0
Requires-Dist: sqlalchemy[asyncio]>=2.0.36
Requires-Dist: structlog>=24.4.0
Requires-Dist: trimesh>=4.0.0
Requires-Dist: uvicorn[standard]>=0.32.0
Provides-Extra: ai
Requires-Dist: qdrant-client>=1.12.0; extra == 'ai'
Requires-Dist: sentence-transformers>=3.3.0; extra == 'ai'
Provides-Extra: all
Requires-Dist: aioboto3>=12.0.0; extra == 'all'
Requires-Dist: asyncpg>=0.30.0; extra == 'all'
Requires-Dist: boto3>=1.35.0; extra == 'all'
Requires-Dist: celery[redis]>=5.4.0; extra == 'all'
Requires-Dist: fastembed>=0.4.0; extra == 'all'
Requires-Dist: lancedb>=0.17.0; extra == 'all'
Requires-Dist: opencv-python-headless>=4.10.0; extra == 'all'
Requires-Dist: paddleocr>=2.9.0; extra == 'all'
Requires-Dist: pillow>=12.1.1; extra == 'all'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'all'
Requires-Dist: pymupdf>=1.25.0; extra == 'all'
Requires-Dist: qdrant-client>=1.12.0; extra == 'all'
Requires-Dist: sentence-transformers>=3.3.0; extra == 'all'
Requires-Dist: ultralytics>=8.3.0; extra == 'all'
Provides-Extra: analytics
Provides-Extra: cv
Requires-Dist: opencv-python-headless>=4.10.0; extra == 'cv'
Requires-Dist: paddleocr>=2.9.0; extra == 'cv'
Requires-Dist: pillow>=12.1.1; extra == 'cv'
Requires-Dist: pymupdf>=1.25.0; extra == 'cv'
Requires-Dist: ultralytics>=8.3.0; extra == 'cv'
Provides-Extra: dev
Requires-Dist: factory-boy>=3.3.0; extra == 'dev'
Requires-Dist: httpx>=0.28.0; extra == 'dev'
Requires-Dist: mypy>=1.13.0; extra == 'dev'
Requires-Dist: pre-commit>=4.0.0; extra == 'dev'
Requires-Dist: pyinstaller>=6.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest-cov>=6.0.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
Requires-Dist: pytest>=8.3.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Provides-Extra: s3
Requires-Dist: aioboto3>=12.0.0; extra == 's3'
Provides-Extra: semantic
Requires-Dist: qdrant-client>=1.12.0; extra == 'semantic'
Requires-Dist: sentence-transformers>=3.3.0; extra == 'semantic'
Provides-Extra: server
Requires-Dist: asyncpg>=0.30.0; extra == 'server'
Requires-Dist: boto3>=1.35.0; extra == 'server'
Requires-Dist: celery[redis]>=5.4.0; extra == 'server'
Requires-Dist: psycopg2-binary>=2.9.10; extra == 'server'
Provides-Extra: vector
Requires-Dist: fastembed>=0.4.0; extra == 'vector'
Requires-Dist: lancedb>=0.17.0; extra == 'vector'
Description-Content-Type: text/markdown

# OpenConstructionERP

**The #1 open-source platform for construction cost estimation**

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

---

> ### ▶ After `pip install`, type one command: **`openestimate`**
>
> That's the only thing you need to remember. It prints a welcome,
> asks **press `o` + Enter** to open the app in your browser, then
> starts the server at **http://127.0.0.1:8080**.

---

## Quick Start

```bash
pip install openconstructionerp
openestimate                 # welcome screen + o-to-open-browser + server
```

That's the whole first run. The bare `openestimate` command:

1. Prints a welcome with links to docs, issues, and the community chat.
2. Creates a local SQLite database and data folder under `~/.openestimate/`.
3. Starts the server at **http://127.0.0.1:8080** and opens your browser.

Demo login: `demo@openestimator.io` / `DemoPass1234!`

Prefer explicit steps? Run them yourself:

```bash
openestimate init-db         # create the local database
openestimate serve           # start the server
openestimate doctor          # health check if anything looks wrong
openestimate welcome         # re-print the welcome screen + support links
```

### Where to ask questions

- **Community chat (Telegram):** https://t.me/datadrivenconstruction
- **Bug reports / feature requests:** https://github.com/datadrivenconstruction/OpenConstructionERP/issues
- **Docs:** https://openconstructionerp.com/docs

## Features

- **BOQ Editor** — Hierarchical Bill of Quantities with AG Grid, markups, validation, export (PDF/Excel/CSV/GAEB)
- **55,000+ Cost Items** — CWICR database across 11 regions with resource breakdown
- **7,000+ Resource Catalog** — Materials, labor, equipment with prices
- **AI Estimation** — Generate BOQ from text, photo, PDF, Excel, or CAD/BIM (7 LLM providers)
- **4D Schedule** — Gantt chart with CPM, dependencies, auto-generate from BOQ
- **5D Cost Model** — Earned Value Management, S-curve, budget tracking
- **20 Regional Standards** — DIN 276, NRM, MasterFormat, GAEB, and 16 more
- **21 Languages** — Full i18n with RTL support
- **42 Validation Rules** — Automatic compliance checking

## CLI Commands

```bash
openestimate serve   [--host HOST] [--port PORT] [--data-dir DIR] [--open] [--quiet]
openestimate init-db [--data-dir DIR]    # Create local SQLite DB + data dirs
openestimate doctor  [--port PORT]       # Run installation health checks
openestimate seed    [--demo]            # Load demo project data
openestimate version                     # Show version info
```

The `openconstructionerp` command is also available as a longer alias for both binaries.

## Links

- [Documentation](https://openconstructionerp.com/docs)
- [GitHub](https://github.com/datadrivenconstruction/OpenConstructionERP)
- [Telegram Community](https://t.me/datadrivenconstruction)

## License

AGPL-3.0 — [Data Driven Construction](https://datadrivenconstruction.io)
