G
Gamal Khaled (DESPERADO)

Lapshop Frontend and Admin Dashboard

Responsive Bootstrap Laptop Shop showing sidebar filters, responsive product cards, and pagination. Uses Blazor InputSelect and Bootstrap form-control components for client-side filtering and page-size control.

LIVE DEMO
Generated using Instruct UI - An AI for Blazor UI Generation
## What's implemented - Sidebar filter panel with Brand, Price range, RAM and Storage selectors. - Responsive product grid rendering ProductCard components in a 3/2/1 column layout. - Client-side pagination and page-size selector with page count and navigation. - Product cards with image, brand, RAM/storage badges, price and Add-to-Cart button. - Lightweight CSS for hover transform and aspect-ratio image handling. ## Key components - InputSelect, InputNumber (Blazor built-in inputs) - ProductCard (reusable Razor component) - @bind-Value bindings and @onclick handlers for pagination and controls - Bootstrap classes: container-fluid, row, col-*, card, badge, pagination - Simple view models: LaptopViewModel, FilterViewModel ## How it works - Data is seeded in OnInitialized into allLaptops and allBrands; FilteredLaptops applies LINQ predicates from FilterViewModel. - Paging is computed in PagedLaptops using Skip/Take and a totalPages helper. - Controls use @bind-Value to update filters and pageSize; change handlers reset currentPage to 1. - ProductCard receives a LaptopViewModel via [Parameter] and renders UI; Add-to-Cart button is a placeholder with no backend logic. ## Styling - Uses Bootstrap utility and layout classes for responsive grid and form controls. - Local CSS (Lapshop.razor.css) adds hover transform and image aspect-ratio handling. - Icons use Font Awesome markup (fa- classes) present in markup but require including the icon stylesheet in the host. ## Reuse steps 1. Add the .razor and model files to a Blazor project and ensure Bootstrap CSS is available in index.html/_Host.cshtml. 2. Include Font Awesome or replace icons with Bootstrap icons if preferred. 3. Replace seeded sample data with an injected data service (register via Program.cs) and return LaptopViewModel collections. 4. Implement a cart service (scoped) and wire the Add-to-Cart button to that service; persist via local storage or API. 5. Adjust models and validation if server-side filtering is required; convert LINQ filters to API query parameters. ## Limitations & next steps - This is a single-page UI generated by Instruct UI; no API, authentication, or persistence is included. - Filtering and pagination run client-side on seeded data; swap to server-side endpoints for large datasets. - Add proper validation for numeric inputs, accessibility attributes, and cart/checkout flows. - Consider debounced search, windowed pagination, and SSR/data caching for performance.