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

WhatCheckNotes
.NET 10 SDKdotnet --versionHosting 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.12python --versionOnly 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 whose package.json references wuic-framework-lib from the npm registry
  • appsettings.json preconfigured in firstRun = "true" mode with __SET_*__ placeholders
  • appsettings-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):

Snippet 1PowerShell
# 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:

Snippet 2PowerShell
cd wwwroot

# First run: restore npm dependencies (pulls wuic-framework-lib from npm registry, ~2 min)
npm install

# Start dev server
npm run serve:dev

The 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)

Snippet 3PowerShell
# Setup (one-time) — creates venv and installs dependencies
pwsh scripts/rag-setup.ps1

# Start the server
pwsh scripts/rag-setup.ps1 -Start

For 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

ServicePortRequiredQuick command
SQL Server1433yes(Windows service)
.NET Backend5000yesdotnet watch ... run
Angular Frontend4200yesnpm run serve:dev
Python RAG Server8765nouvicorn 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.

Snippet 4HTML
<wuic-data-source [hardcodedRoute]="'cities'"></wuic-data-source>
<wuic-data-repeater [hardcodedAction]="'list'"></wuic-data-repeater>