Skip to content

sncnick/EchoCDE

Repository files navigation

EchoCDE

English | 繁體中文

Common Data Environment for AECO — A lightweight, ISO 19650–aligned CDE platform and the collaboration hub for the Echo Series.

Quick Start

# 1. Copy environment variables
cp .env.example .env

# 2. Start all services
docker compose up -d

# 3. Open the web UI (not port 3000 — that is API-only)
open http://localhost:3001

Services (default ports)

Service URL Notes
Web UI http://localhost:3001 Login and day-to-day use
API http://localhost:3000/api/v1 REST API (no page at /)
Swagger http://localhost:3000/api/docs Interactive API docs
MinIO Console http://localhost:9001 Object storage admin

Note: Opening http://localhost:3000/ returns Cannot GET / — that is expected. The backend has no homepage; use port 3001 for the UI.

Default login

On first startup, the backend seeds a Super Admin account:

Field Value
Account admin
Password admin123
Role Super Admin

You will be prompted to change the password on first login. Change it before any production or internet-facing deployment.

See also: docs/self-hosted-auth.md

Remote / LAN access

When accessing from another machine, set your host IP in .env before building:

NEXT_PUBLIC_API_URL=http://192.168.1.100:3000
CORS_ORIGIN=http://192.168.1.100:3001
FRONTEND_URL=http://192.168.1.100:3001

Then rebuild the frontend:

docker compose up -d --build frontend

Open the UI at http://<host-ip>:3001. Optional port overrides: PI_API_PORT, PI_FRONTEND_PORT in .env.

Project Structure

EchoCDE/
├── backend/                 # NestJS API
│   └── src/
│       ├── storage/         # S3/MinIO abstraction
│       ├── conversion/      # IFC → Fragments hook (Phase 2)
│       ├── files/           # File management + 3D view API
│       ├── comments/        # 3D annotations
│       └── entities/        # TypeORM schema
├── frontend/                # Next.js (Phase 1+)
├── docs/
│   ├── openapi.yaml         # Full OpenAPI 3.1 spec
│   ├── iso19650-compliance.md # ISO 19650 alignment & gaps
│   └── fragments-pipeline.md# Conversion pipeline architecture
└── docker-compose.yml

Core APIs (3D Focus)

# Upload IFC (triggers conversion hook)
curl -X POST http://localhost:3000/api/v1/projects/{projectId}/files \
  -H "Authorization: Bearer {jwt}" \
  -F "file=@model.ifc" \
  -F 'metadata={"discipline":"MEP","convertToFragments":true}'

# Get 3D view metadata
curl http://localhost:3000/api/v1/projects/{projectId}/files/{fileId}/view \
  -H "Authorization: Bearer {jwt}"

# Add a 3D comment
curl -X POST http://localhost:3000/api/v1/projects/{projectId}/files/{fileId}/comments \
  -H "Authorization: Bearer {jwt}" \
  -H "Content-Type: application/json" \
  -d '{"content":"Clash here","ifcGuid":"3QJ8...","fragmentsPosition":{"x":1,"y":2,"z":3}}'

Development

cd backend && npm install && npm run start:dev

Roadmap

Phase Scope Status
0 Docker + Storage + Auth + Swagger + RBAC
1 File + Versioning + 2D Viewer + Comment + multi-user collaboration 🔜
2 IFC → Fragments Worker + 3D Viewer 🔜
3 AI Agents integration 🔜

License

© 2026 Chickatrice Limited. All rights reserved.

About

ISO 19650–aligned Common Data Environment for AECO — lightweight multi-user CDE with BIM collaboration (Echo Series)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages