PoPunkouterSoftware is a .NET 10 Blazor Web App with a server host, a WebAssembly client, and operational endpoints for Azure, diagnostics, GitHub activity, and infrastructure scanning.
PoPunkouterSoftware/: ASP.NET Core host, API endpoints, diagnostics, and Blazor shell.PoPunkouterSoftware.Client/: WASM UI, layouts, pages, and static assets.PoPunkouterSoftware.Shared/: contracts and models shared between the host and client.PoPunkouterSoftware.Infrastructure/: Azure and integration adapters.tests/PoPunkouterSoftware.Tests.Unit/: xUnit unit tests.tests/PoPunkouterSoftware.Tests.Integration/: integration tests withWebApplicationFactoryand Azurite.tests/PoPunkouterSoftware.Tests.E2E/: Playwright end-to-end tests.SCRIPTS/: setup and automation helpers.
Prerequisites:
- .NET SDK from
global.json - Node.js for Playwright tests
- Docker Desktop for Azurite-backed integration scenarios
Common commands:
dotnet build .\PoPunkouterSoftware\PoPunkouterSoftware.csproj
dotnet test .\tests\PoPunkouterSoftware.Tests.Unit
dotnet test .\tests\PoPunkouterSoftware.Tests.IntegrationAvailable VS Code tasks in this workspace include:
buildtest-unitstart-azuritestart-api-server
The app runs locally on HTTP 5000 and HTTPS 5001.
/healthand/api/healthprovide machine-readable health output./diagand related/api/diag/*endpoints expose diagnostics details with masked secrets.- Azure behavior prefers Key Vault and managed identity when available, with local fallback configuration for development.
- The client dashboard consumes the shared Azure report models generated by the server and infrastructure layers.
- Unit tests cover pure logic and API helpers.
- Integration tests cover host configuration, diagnostics endpoints, and Azure Table Storage behavior.
- E2E tests cover browser flows and static asset availability.
- Read
architecture.mdandAGENT.MDbefore broad changes. - Keep diagnostics endpoints available but do not link them from the UI.
- Preserve Po-prefixed naming and strict build quality defaults from
Directory.Build.props.