Skip to content

Blazor WASM admin project setup #25

@mikemcdougall

Description

@mikemcdougall

Summary

Set up Blazor WebAssembly project for admin UI.

Architecture Reference

See ADR-0010 for complete Admin UI architecture decisions.

Key Decisions

  • Component Library: MudBlazor
  • State Management: Simple injectable services (upgrade to Fluxor if needed)
  • Testing: bUnit for components, Playwright for E2E
  • Map Integration: MapLibre GL JS via JS Interop
  • Hosting: Support both integrated (/admin) and standalone (S3/CDN)

Tasks

  • Create Honua.Admin Blazor WASM project
  • Add MudBlazor package reference
  • Configure MudBlazor in Program.cs
  • Create basic layout with AppBar and NavMenu
  • Configure /admin path routing in server
  • Create HonuaApiClient service class
  • Add authentication integration scaffolding
  • Configure CORS for standalone hosting
  • Add bUnit test project
  • Document admin UI setup

Hosting Options

// Program.cs - Support both integrated and standalone hosting
if (builder.Configuration.GetValue<bool>("ServeAdminUI", true))
{
    app.MapFallbackToFile("/admin/{*path:nonfile}", "admin/index.html");
}

Package References

<PackageReference Include="MudBlazor" Version="7.*" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="9.*" />

Acceptance Criteria

  • Honua.Admin project created
  • MudBlazor installed and configured
  • Basic layout with MudBlazor AppBar and NavMenu
  • Served from /admin path (integrated mode)
  • API client service scaffolded (HonuaApiClient.cs)
  • Authentication integration ready
  • CORS configured for standalone hosting option

Blocking Issue

⚠️ Blocked by: #59 Admin UI wireframes and UX design

Test Plan

  • Admin UI loads at /admin
  • Navigation works between pages
  • MudBlazor components render correctly

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort/L🌳 L: 1-2 days (complex feature, multiple components)enhancementNew feature or requestphase/MVPMVP scopepriority/P4💡 Future enhancement - evaluate for later phases

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions