Syncfusion Blazor Components
Enterprise-grade UI components powering Grade My Investments' interactive experiences
flowchart TB
subgraph CW[Client Web - 12 pages]
CW1[SfGrid<br/>5 pages]:::app
CW2[SfButton<br/>12 pages]:::app
CW3[SfTextBox<br/>6 pages]:::app
CW4[SfTreeView<br/>File Browser]:::app
CW5[SfSpreadsheet<br/>Excel Preview]:::data
CW6[SfCard<br/>Dashboard]:::app
end
subgraph AW[Admin Web - 8 pages]
AW1[SfGrid<br/>8 pages]:::svc
AW2[SfChart<br/>Financials]:::svc
AW3[SfSpinner<br/>Loading]:::svc
AW4[SfDateRangePicker<br/>4 pages]:::svc
end
SF{{Syncfusion<br/>Blazor Library}}:::ext
SF --> CW
SF --> AW
classDef app fill:#1f2630,stroke:#C0894E,color:#F3EFE8;
classDef svc fill:#241c14,stroke:#E2B583,color:#F3EFE8;
classDef data fill:#22201a,stroke:#C0894E,color:#EBD3AE;
classDef ext fill:#1b1f27,stroke:#5A616B,color:#C4C0B8;
classDef sec fill:#1d2733,stroke:#5cc8e0,color:#eafaff;Why Syncfusion?
Grade My Investments chose Syncfusion Blazor over building custom components or using basic HTML/Bootstrap controls for several strategic reasons. The platform requires rich data grids with sorting, filtering, and pagination; interactive tree views for file management; spreadsheet viewers for Excel report previews; and charting capabilities for financial data visualization. Building these from scratch would have added months of development time and introduced maintenance burden for complex UI logic that Syncfusion handles out of the box.
Development Speed
Enterprise components ready to use instead of building from scratch
Consistent UX
Unified look and feel across all pages with built-in theming
Responsive Design
All components are mobile-responsive out of the box
Accessibility
WCAG-compliant components with keyboard navigation and ARIA support
Component Inventory
SfGrid - Data Grids
The Syncfusion DataGrid is the most heavily used component in Grade My Investments, providing sortable, filterable, and paginated tables across both the Client Web and Admin Web applications.
| Page | Application | Data Displayed |
|---|---|---|
| Billing & Usage | Client Web, Admin Web | Charges, invoices, payment history with date filtering |
| Payment Methods | Client Web | Credit cards with default card management |
| Report Generations | Client Web | Job history with status, dates, and symbol list details |
| Email Notifications | Client Web | Notification email addresses with active/inactive status |
| SMS Notifications | Client Web | SMS phone numbers with active/inactive status |
| Account Validations | Admin Web | Pending accounts with validation actions |
| Email Queue | Admin Web | Queued, sent, and failed emails with search and date filtering |
| SMS Queue | Admin Web | Queued, sent, and failed SMS messages with search and date filtering |
| Activity Log Dashboard | Admin Web | User activity logs with type filtering and date range search |
| Report Generations | Admin Web | All report jobs across accounts with status tracking |
| Account Search | Admin Web | Shared search component used across multiple admin pages |
SfTreeView - Tree Navigation
The TreeView component powers the file/folder management system in both Client Web and Admin Web. It renders the hierarchical folder structure with expand/collapse, selection, right-click context menus, and custom node templates that display folder and file icons with color coding.
Features Used
- Hierarchical data binding with recursive folder/file nodes
- Single-node selection with
NodeSelectedevent handling - Custom node templates with icons, badges, and color indicators
- Expand/collapse state management
Pages
- Client Web - Manage Folders (Browse My Report Files)
- Admin Web - Manage Folders (per-account file management)
SfSpreadsheet - Excel Viewer
The Spreadsheet component provides in-browser Excel file viewing on the Manage Folders page. When a user
clicks to preview an .xlsx file, Grade My Investments downloads the file bytes from Azure Blob Storage
and renders them directly in the Syncfusion Spreadsheet component, allowing users to view report outputs
without downloading the file to their device.
Features Used
- Read-only Excel rendering from byte arrays
- Multi-sheet tab navigation
- Cell formatting preservation (colors, fonts, borders)
- Responsive container within modal dialogs
Pages
- Client Web - Manage Folders (file preview modal)
- Admin Web - Manage Folders (file preview modal)
SfChart - Financial Charts
The Chart component is used in the Admin Web to visualize Grade My Investments' own financial data, including quarterly and yearly revenue trends, charge breakdowns, and platform usage metrics.
Features Used
- Bar charts for quarterly/yearly revenue comparison
- Data labels and tooltips for precise values
- Responsive sizing within dashboard cards
Pages
- Admin Web - Grade My Investments Financials dashboard
Form Components
SfTextBox
Enhanced text inputs with floating labels, validation integration, and input masking.
Used in: Account Settings, Create Account, Add Payment Method, Email/SMS management, Admin account searchSfDropDownList
Searchable dropdown menus with data binding and template support.
Used in: Country selection, status filters, report generation options, admin queue filtersSfDateRangePicker / SfDatePicker
Date and date range selection with calendar popup and preset ranges.
Used in: Report generation scheduling, Email/SMS queue date filtering, Activity log filteringSfButton
Styled action buttons with primary, outline, and icon variants, plus built-in disabled state management.
Used in: Every page across both Client Web and Admin WebSfCard
Structured content cards for dashboards, summaries, and information panels.
Used in: Dashboard, Billing & Usage, Payment Methods, Report GenerationsSfDialog / SfPopup
Modal dialogs for confirmations, data entry, and notifications.
Used in: Email/SMS notification management, confirmation dialogsSfSpinner - Loading States
The Spinner component provides loading indicators during async operations. In the Admin Web's Manage Folders and Account Search pages, the spinner overlays the content area while data is being fetched, giving users clear feedback that an operation is in progress.
Component Usage by Application
Client Web (12 pages)
- SfButton 12 pages
- SfTextBox 6 pages
- SfGrid 5 pages
- SfCard 4 pages
- SfDropDownList 3 pages
- SfTreeView 1 page
- SfSpreadsheet 1 page
- SfDateRangePicker 1 page
Admin Web (8 pages)
- SfGrid 8 pages
- SfButton 8 pages
- SfDropDownList 6 pages
- SfDateRangePicker 4 pages
- SfTextBox 4 pages
- SfChart 1 page
- SfTreeView 1 page
- SfSpreadsheet 1 page
- SfSpinner 2 pages
Integration Approach
Registration
Syncfusion is registered once in each application's Program.cs with
builder.Services.AddSyncfusionBlazor() and licensed via
SyncfusionLicenseProvider.RegisterLicense(). A global import in
_Imports.razor makes the base namespace available to all pages.
// _Imports.razor
@using Syncfusion.Blazor
// Individual pages import specific namespaces
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.Navigations
@using Syncfusion.Blazor.SpreadsheetDesign Philosophy
- Selective usage: Syncfusion is used where it adds clear value (data grids, tree views, spreadsheets, charts). Simple layouts still use Bootstrap 5.
- No vendor lock-in on structure: Pages use standard Blazor patterns (
EditForm,@bind) alongside Syncfusion components, making it possible to swap individual components. - Per-page imports: Each page imports only the Syncfusion namespaces it needs, keeping dependency scope clear and bundle size manageable.
- Bootstrap 5 coexistence: Syncfusion components are styled with Bootstrap CSS classes (
CssClass="btn-primary") to maintain visual consistency with the rest of the UI.
10
Distinct Syncfusion Components
20+
Pages Using Syncfusion
2
Applications (Client Web + Admin Web)
13
Data Grid Instances