Overview
Framework Overview
WUIC Framework is a metadata-driven platform for building business interfaces quickly and consistently.
What It Includes
- DataSource and DataRepeater for orchestrating data and rendering.
- Visual archetypes (list, map, scheduler, chart, carousel).
- Runtime designer for dashboards and dynamic templates.
- Workflow designer/runner for operational processes.
- RAG Chatbot for querying the codebase in natural language.
First Steps — Starting the Dev Environment
The WUIC stack is composed of several services. Start them in the order below.
Prerequisites
| What | Check | Notes |
|---|---|---|
| .NET 10 SDK | dotnet --version | Hosting Bundle for IIS in production |
| Node.js 20+ | node --version | |
| SQL Server (Express) | sqlcmd -S localhost\sqlexpress -E -C -Q "SELECT 1" | Default sqlexpress instance |
| Python 3.12 | python --version | Only for the RAG Chatbot (optional) |
1. Download the project template
Start from the WuicTest-src-*.zip package (link in the Download section of the site).
Extract it to a working folder, e.g. C:\dev\WuicTest (files go directly at the root —
NOT inside a src/ subfolder). The package contains:
WuicTest.csproj→ host project with<PackageReference Include="WuicCore" Version="..." />wwwroot/→ Angular app whosepackage.jsonreferenceswuic-framework-libfrom the npm registryappsettings.jsonpreconfigured infirstRun = "true"mode with__SET_*__placeholdersappsettings-samples/→ 6 ready templates (mssql/mysql, firstRun/post-firstRun,Development)
> No need to clone the framework repository: WuicCore ships as a NuGet package from
> nuget.org and wuic-framework-lib as an npm package from the npm registry. The framework
> source is only needed if you want to modify it — typically not your case.
2. Database
Databases must already be present. Connections in appsettings.json:
MetaDataSQLConnection— metadata DB (menu, tables, columns, boards, users)DataSQLConnection— application data DB
If this is the first installation (AppSettings.firstRun = "true" in the template),
the scaffolding wizard on first startup creates the metadata schema and populates the data DB.
See the Initial Scaffolding page for the guided flow.
3. Backend (.NET)
From the root of the extracted folder (e.g. C:\dev\WuicTest):
# First run: restore NuGet packages (pulls WuicCore + deps from nuget.org, ~30 s)
dotnet restore
# Start dev with hot reload
$env:ASPNETCORE_ENVIRONMENT = 'Development'
dotnet watch run
The backend exposes APIs on http://localhost:5000.
4. Frontend (Angular)
In a second shell, from the wwwroot/ subfolder:
cd wwwroot
# First run: restore npm dependencies (pulls wuic-framework-lib from npm registry, ~2 min)
npm install
# Start dev server
npm run serve:devThe frontend is available on http://localhost:4200.
Default login (post-firstRun): admin / admin.
5. RAG Chatbot (optional)
The RAG Chatbot (Administration > RAG Chat) requires a Python FastAPI
server on 127.0.0.1:8765. Without it, the component shows the
"RAG server unreachable" banner and the RAG offline status — the
rest of the application works normally.
Prerequisites: Python 3.12 (winget install Python.Python.3.12)
# Setup (one-time) — creates venv and installs dependencies
pwsh scripts/rag-setup.ps1
# Start the server
pwsh scripts/rag-setup.ps1 -StartFor CUDA GPU: pwsh scripts/rag-setup.ps1 -CudaVersion 12.1.
For LLM chat: pwsh scripts/rag-setup.ps1 -Start -AnthropicApiKey "sk-ant-...".
Without an API key, only the retrieval mode (snippet search) works.
Cold start ~13 seconds. Once the log shows
Uvicorn running on http://127.0.0.1:8765, reload the page in the browser.
For production (Windows service NSSM) see the skill
skills/rag-chatbot-deploy/SKILL.md.
Services Summary
| Service | Port | Required | Quick command |
|---|---|---|---|
| SQL Server | 1433 | yes | (Windows service) |
| .NET Backend | 5000 | yes | dotnet watch ... run |
| Angular Frontend | 4200 | yes | npm run serve:dev |
| Python RAG Server | 8765 | no | uvicorn rag_server:app ... |
Quick Start — First Component
1. Configure the AsmxProxy endpoint.
2. Define route metadata and columns.
3. Mount wuic-data-source + wuic-data-repeater.
<wuic-data-source [hardcodedRoute]="'cities'"></wuic-data-source>
<wuic-data-repeater [hardcodedAction]="'list'"></wuic-data-repeater>