M
Marcel Eleveld

Moderne Budget App Interface

Bootstrap Budget Dashboard shows summary cards, a responsive transactions table, action buttons, and an SVG chart placeholder. Uses Bootstrap classes and custom CSS; generated by Instruct UI and editable.

LIVE DEMO
Generated using Instruct UI - An AI for Blazor UI Generation
## What's implemented - Top navigation bar with user dropdown and avatar. - Three summary cards showing total balance, monthly income, and monthly expenses. - Responsive recent transactions table rendered from a TransactionModel list. - Action buttons for creating income/expense entries and an inline SVG chart placeholder for category breakdown. - Localized currency formatting using a CultureInfo instance. ## Key components - HTML + Bootstrap elements: navbar, container, row, col-*, card, table, btn. - Razor constructs: @page, @foreach, @code block, OnInitialized. - Data types: TransactionModel class and TransactionType enum. - Styling: BudgetPage.razor.css and FontAwesome icon usage. ## How it works - Data population occurs in OnInitialized where a List<TransactionModel> is created and totals are computed. - The transactions list is rendered with @foreach into a Bootstrap table; amounts and dates are formatted with ToString using nl-BE CultureInfo. - Conditional CSS classes and icon selection use inline expressions (Type == TransactionType.Income ? ... : ...). - Buttons are present but lack click handlers; they are static placeholders in this component. ## Styling - Uses Bootstrap utility and component classes (navbar, table-responsive, row/col-*, card, btn, dropdown-menu-end). - Includes a scoped CSS file (BudgetPage.razor.css) for background, avatar size, card shadow, hover effects and table hover state. - Layout is responsive via Bootstrap grid (col-md, col-lg); the table is wrapped in .table-responsive for narrow viewports. ## Reuse steps 1. Add the Razor file and TransactionModel/TransactionType into a Blazor project that includes Bootstrap (default Blazor templates include Bootstrap). 2. Ensure FontAwesome (or desired icon set) is available in index.html/_Host.cshtml or replace icons with SVGs. 3. Place BudgetPage.razor.css alongside the component to apply scoped styles. 4. Adapt TransactionModel and data population to use application services (inject a service or HttpClient) and replace demo data in OnInitialized. 5. Optionally add a charting library (Chart.js, Plotly, etc.), implement click handlers for the action buttons, and add forms (EditForm) for creating transactions. ## Limitations & next steps - This is a single-page UI scaffold generated by Instruct UI and is not wired to persistence, authentication, or real services. - No EditForm or validation is implemented for creating transactions; add forms and DataAnnotations validation for entry editing. - Action buttons lack event handlers; implement event callbacks and navigation/modal dialogs for create/edit flows. - Replace SVG placeholder with a chart library for interactive category breakdowns, and add paging, filtering, or search for the transactions table. - Consider centralizing culture and currency formatting via localization middleware for multi-culture support.