Skip to content

Running it locally

Each repository runs on its own. Change into the sub-repo first - never run these from the workspace parent.

Requires the .NET 10 SDK and Docker Desktop (for PostgreSQL).

Terminal window
dotnet tool restore # once: restores the pinned dotnet-ef
docker compose up -d # PostgreSQL (central + tenant DBs) on :5432
dotnet build NexisOmni.slnx # build all
dotnet test NexisOmni.slnx # xUnit tests (Postgres-backed ones skip if Docker is absent)
dotnet run --project src/NexisOmni.Api --launch-profile http # API on http://localhost:5089 (https -> :7298)

Run a single test by name:

Terminal window
dotnet test --filter "FullyQualifiedName~<substring>"

First-time database setup (migrations, the sample tenant, and the demo user) is in the backend’s own docs/developer-guide.md. Central and tenant migrations target different EF contexts and output folders - follow that guide exactly.

Requires Node >= 20 and pnpm 10 (corepack enable).

Terminal window
pnpm install
pnpm dev # all apps via Turborepo; or: pnpm -F hq-dashboard dev
pnpm typecheck # tsc --noEmit across packages
pnpm test # vitest
pnpm check # Biome format + lint + Tailwind class-sort, with --write
pnpm check:ci # what CI enforces, no writes

Run a single web test file:

Terminal window
pnpm -F <app-or-pkg> exec vitest run <path>

A Flutter app for Android and Windows. It is offline-first: it runs against its own local database and syncs to the backend when it can reach it. See the POS docs for the sync model.