schmidt.florian
|
d5419729e5
|
M5: Blazor dashboard (MudBlazor + ApexCharts)
- MudBlazor theme (dark default) + responsive drawer/appbar layout + nav.
- DashboardService read model: KPIs with period-over-period deltas, category breakdown,
"what cost more/less" difference view, monthly trends.
- Pages: Overview (KPI cards + DeltaChip + donut + difference table), Trends (range-select
bar chart), Meters (list + source status), Import (load reference dataset + CSV dry-run
preview), Admin (energy types, tariffs). Charts isolated into components to avoid the
ApexCharts/MudBlazor Color/Format name clashes.
- ReferenceDataImporter: one-click load of all four sheets as a starter dataset (meters,
tank, tariff history, category memberships) — bundled sample CSVs copied to app output.
- End-to-end render test: import creates meters + consumption; overview/meters/trends/
import/admin pages all return 200 with KPI cards rendered.
92 tests green (56 Core + 36 integration).
Deferred to polish: dedicated PV & oil/consumable panels, meter-detail page, full admin
CRUD, prev-year trend overlay.
Claude-Session: https://claude.ai/code/session_01WujdMtMJPbxDpDnMeK22rr
|
2026-07-13 12:11:12 +02:00 |
|
schmidt.florian
|
48a7f5a825
|
M0: scaffold solution, EF+Timescale schema, /healthz
Five-project Clean Architecture solution (Core/Infrastructure/App + Core.Tests/
Integration.Tests) on .NET 10 with central package management, snake_case EF mapping,
and shared build/style config.
- Full domain entity set + EF DbContext for the SDD §5.3 schema (singular table names).
- InitialSchema migration (relational) + TimescaleHypertables migration (raw SQL:
create_hypertable + compression on reading, hypertable on consumption).
- App wiring: Serilog (actually wired, unlike MQTTower), DbContext, migrate-on-startup,
/healthz. Serves plain HTTP behind a reverse proxy (no HTTPS redirect).
- deploy/Dockerfile (2-stage, ICU-capable) + docker-compose (app + timescaledb).
- Integration.Tests: shared TimescaleFixture (Testcontainers) — migrations, hypertables,
compression policy, and /healthz all verified green (4/4).
Claude-Session: https://claude.ai/code/session_01WujdMtMJPbxDpDnMeK22rr
|
2026-07-13 11:02:21 +02:00 |
|