Y
Yadiel Valiente

Dashboard for Inventory, Accounting, Orders

MudBlazor Dashboard that displays KPI cards and tabbed data views. Includes MudTable filtering, MudTable sorting and a server-side paged orders table for common admin scenarios.

LIVE DEMO
Generated using Instruct UI - An AI for Blazor UI Generation
## What's implemented - KPI summary cards in a responsive MudGrid (Total Revenue, Pending Orders, Low Stock, Overdue Invoices). - Tabbed layout using MudTabs with four panels: Dashboard, Inventory, Accounting, Orders. - Inventory and Accounting lists rendered with MudTable including client-side filters and MudTablePager. - Orders view implemented with a server-side MudTable (ServerData) supporting paging and sorting. - Inline search controls (MudTextField) for filtering lists and triggering server reloads. - Status chips (MudChip) and icons (MudIcon) to indicate state and severity. ## Key components - MudTabs, MudTabPanel, MudGrid, MudItem, MudPaper - MudText, MudIcon, MudChip - MudTable, MudTablePager, MudTableSortLabel - MudTextField with @bind-Value and ValueChanged handlers - ServerData callback returning TableData<T>, @ref to MudTable ## How it works - Mock data is generated in OnInitialized and stored in local lists (products, invoices, allOrders). - Inventory and Accounting tables use Filter functions (FilterProducts, FilterInvoices) combined with MudTextField @bind-Value for client-side filtering. - Orders table uses ServerReload(TableState, CancellationToken) to simulate server-side paging, search and sorting and returns TableData<OrderModel>. - Search input calls OnSearch which updates orderSearchString and calls ordersTable.ReloadServerData() to refresh server data. - Status labeling and colors are computed with helper methods (GetStockStatus, GetInvoiceStatusColor, GetOrderStatusColor) and applied to MudChip components. - Table sorting maps state.SortLabel to LINQ order expressions; paging uses Skip/Take on the filtered sequence. ## Styling - Uses MudBlazor components and utility classes (pa-4, d-flex, mr-3) and Material icons via Icons.Material. - Responsive layout via MudGrid and MudItem breakpoints (xs, sm, md) for KPI cards. - Visual style follows the active MudBlazor theme; no Tailwind/Bootstrap utilities detected. ## Reuse steps 1. Add the MudBlazor NuGet package and call builder.Services.AddMudServices() in Program.cs. 2. Import MudBlazor namespaces (using MudBlazor; using MudBlazor.Components) and add MudBlazor CSS/theme to the app shell. 3. Copy models (ProductModel, InvoiceModel, OrderModel) and the DashboardPage.razor into a Blazor project. 4. Replace mock data in OnInitialized with real services (inject an API/data service) and adapt ServerReload to call an API that returns paged results. 5. Wire authentication/authorization and error handling for production; keep @ref usage for server table reloads and cancellation token handling. ## Limitations & next steps - Page uses mock Random data and local lists; backend/API wiring is required for real data, auth, and persistence. - ServerReload simulates latency with Task.Delay; replace with real HTTP calls and proper cancellation/error handling. - No form EditForm or DataAnnotationsValidator is present; add validation where editable forms are introduced. - Consider DI for services, centralized state, caching, and stronger sorting mappings to avoid magic strings in SortLabel. - Add accessibility review, localization, and unit/integration tests before production use.