Skip to content

Repository files navigation

PoPunkouterSoftware

PoPunkouterSoftware is a .NET 10 Blazor Web App with a server host, a WebAssembly client, and operational endpoints for the Azure inventory report, the app portfolio, and diagnostics.

Solution Layout

  • src/PoPunkouterSoftware/: ASP.NET Core host, API endpoints, diagnostics, and Blazor shell.
  • src/PoPunkouterSoftware.Client/: WASM UI, layouts, pages, and static assets.
  • src/PoPunkouterSoftware.Shared/: contracts and models shared between the host and client.
  • src/PoPunkouterSoftware.Infrastructure/: Azure and integration adapters.
  • tests/PoPunkouterSoftware.Tests/: xUnit unit and integration tests (WebApplicationFactory + Azurite Testcontainers).
  • tests/PoPunkouterSoftware.Tests.E2E/: C# Playwright browser tests (run on demand against a live instance).
  • SCRIPTS/: setup and automation helpers.

Local Development

Prerequisites:

  • .NET SDK from global.json
  • Node.js for Playwright tests
  • Docker Desktop for Azurite-backed integration scenarios

Common commands:

dotnet build .\src\PoPunkouterSoftware\PoPunkouterSoftware.csproj
dotnet test .\tests\PoPunkouterSoftware.Tests

Available VS Code tasks in this workspace include:

  • build
  • test-unit
  • start-azurite
  • start-api-server
  • deep-clean (removes every bin/ and obj/; dotnet clean leaves obj/ behind)

The app runs locally on HTTP port 8000.

Runtime Notes

  • /health is the deep probe (Key Vault, Table Storage); /healthz is a static liveness ping.
  • /diag and 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.
  • The Azure dashboard can download New-AzureEfficiencyReport.ps1, a local Azure CLI audit that generates azure-inventory-report.html and a review-only cleanup_suggestions.ps1 with commented commands.

Testing Strategy

  • 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.

Developer Guidance

  • Read AGENT.MD before 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages