# RpgRoller Fresh full-stack starter scaffold: - `RpgRoller/`: ASP.NET Core backend + static frontend output (`wwwroot`) - `RpgRoller/frontend/`: TypeScript frontend source - `RpgRoller.Tests/`: xUnit integration-heavy test project - `RpgRoller.sln`: solution used by local CI script ## Prerequisites - .NET SDK 10.0+ - Node.js 22+ and npm - PowerShell 7+ ## Local Development 1. Run the local CI parity script: ```powershell pwsh ./scripts/ci-local.ps1 ``` 2. Start the backend: ```powershell dotnet run --project RpgRoller/RpgRoller.csproj ``` 3. Open `http://localhost:5000` (or the port shown in the console). ## Frontend Tooling - OpenAPI contract: `openapi/RpgRoller.json` - TypeScript build output config: `tsconfig.frontend.json` - API client generation + frontend compile: `npm run generate:api-client` - Frontend lint checks: `npm run lint` - Frontend format checks: `npm run format:check` ## Test and Coverage - Tests: ```powershell dotnet test RpgRoller.Tests/RpgRoller.Tests.csproj --collect:"XPlat Code Coverage" --settings RpgRoller.Tests/coverlet.runsettings ``` - Coverage gate: ```powershell pwsh ./scripts/check-coverage.ps1 -MinLineRate 0.90 -MinBranchRate 0.70 ```