# Conductor A web-based, drag-and-drop UI builder for creating simple frontend applications backed by REST API endpoints. Designed for IBM Concert Workflows / Rapid Infrastructure Automation, but backend-agnostic — any system that exposes HTTP/REST endpoints can be used as an integration target. --- ## Overview - **Visual Editor** — drag-and-drop canvas for placing and configuring UI components - **JSON Editor** — direct access to the canonical project definition - **Preview Mode** — run the application as an end user - **REST Proxy** — server-side proxy for API calls; secrets never reach the browser - **Backend-agnostic REST integration** — build and run REST-backed interfaces without an AI dependency --- ## Repository Structure ``` conductor/ ├── frontend/ # React + TypeScript UI │ ├── public/ │ └── src/ ├── backend/ # Node.js + Express + TypeScript API │ └── src/ ├── docs/ # Project documentation │ ├── REQUIREMENTS.md │ ├── ARCHITECTURE.md │ ├── NICE-TO-HAVE.md │ └── BUILD_AND_TEST_PLAN.md ├── examples/ │ └── project-definitions/ ├── docker-compose.yml └── README.md ``` --- ## Local Development ### Prerequisites - Node.js 20+ - npm 10+ ### Frontend ```bash cd frontend npm install npm start # Runs on http://localhost:3000 ``` ### Backend ```bash cd backend npm install npm run dev # Runs on http://localhost:4000 ``` The frontend development server proxies `/api/*` requests to `http://localhost:4000`. --- ## Development Docker ```bash docker compose up --build # Frontend: http://localhost:3000 # Backend: http://localhost:4000 ``` ## Production installation Conductor's production distribution is one non-root container serving the compiled frontend, published application routes, and backend API on port 8080. SQLite data is stored in a persistent volume. The development stack above remains separate. ```bash curl -O https://gitea.skeletonworks.online/vwiebe/conductor/raw/tag/v0.1.0/compose.production.yml curl -o .env https://gitea.skeletonworks.online/vwiebe/conductor/raw/tag/v0.1.0/.env.production.example # Replace both placeholder keys with independent values from: openssl rand -hex 32 docker compose --env-file .env -f compose.production.yml pull docker compose --env-file .env -f compose.production.yml up -d ``` Open `http://localhost:8080` and create the first administrator in the browser. There are no default credentials. For source builds, reverse proxies, upgrades, backups, restores, and SkeletonWorks installation, see [docs/INSTALL.md](docs/INSTALL.md) and [docs/OPERATIONS.md](docs/OPERATIONS.md). --- ## Documentation | Document | Description | |---|---| | [ROADMAP.md](ROADMAP.md) | Unified v0.1.0 work plan grouped by function and slice | | [MVP_SCOPE.md](MVP_SCOPE.md) | Approved v0.1.0 release boundary and acceptance workflows | | [TESTING.md](TESTING.md) | Detailed manual test workflows and acceptance records | | [docs/REQUIREMENTS.md](docs/REQUIREMENTS.md) | Full product requirements | | [docs/MVP_TRACEABILITY.md](docs/MVP_TRACEABILITY.md) | v0.1.0 requirements mapped to slices and validation evidence | | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Technical architecture | | [docs/NICE-TO-HAVE.md](docs/NICE-TO-HAVE.md) | Future enhancements | | [docs/BUILD_AND_TEST_PLAN.md](docs/BUILD_AND_TEST_PLAN.md) | Incremental build and test plan | | [docs/INSTALL.md](docs/INSTALL.md) | Public source/container and reverse-proxy installation | | [docs/OPERATIONS.md](docs/OPERATIONS.md) | Production configuration, backup, restore, upgrade, and rollback | | [docs/RELEASE.md](docs/RELEASE.md) | Image tagging, release construction, and publication | | [docs/USER_GUIDE.md](docs/USER_GUIDE.md) | Admin/user authoring, runtime, and publishing workflows | | [docs/DEVELOPER_GUIDE.md](docs/DEVELOPER_GUIDE.md) | Architecture, invariants, tests, and contribution workflow | | [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | Production and application troubleshooting | | [docs/KNOWN_LIMITATIONS.md](docs/KNOWN_LIMITATIONS.md) | Explicit v0.1.0 limitations and deferred capabilities | --- ## Stack | Layer | Technology | |---|---| | Frontend | React 18, TypeScript 5 | | Backend | Node.js 20, Express 4, TypeScript 5 | | Database | SQLite (MVP) | | Deployment | Single production container, Docker Compose, Caddy/NGINX reverse proxy |