A comprehensive, enterprise-ready CRM application built with Blazor WASM and .NET 9, showcasing modern web development best practices.
Get Started Β»
Request Feature
MudBlazorCrmApp is a full-featured Customer Relationship Management (CRM) system designed as both a production-ready application and a learning resource for developers. Built on the latest .NET 9 stack, it demonstrates enterprise patterns and best practices for building modern web applications.
- Learning Resource: Understand how to build real-world Blazor applications
- Reference Implementation: Copy patterns for your own projects
- Starter Template: Fork and customize for your business needs
- Best Practices: See how to structure enterprise .NET applications
- π₯ Customer Management: Track companies, contacts, and relationships
- π Sales Pipeline: Manage leads, opportunities, and deals through stages
- π Product & Service Catalog: Organize offerings with categories
- π« Support Cases: Track customer issues with SLA management
- β Task Management: Todo lists and Kanban boards
- π₯οΈ Modern Frontend: Single-page application with Blazor WASM
- π¨ Beautiful UI: Professional MudBlazor components
- π Secure Authentication: ASP.NET Core Identity with JWT tokens
- π Interactive Dashboard: Real-time KPIs and analytics charts
- π Advanced Querying: OData for flexible data access
- π API Documentation: Swagger/OpenAPI integration
- π Audit Logging: Track all entity changes with Login/Logout events
- π¬ Communication Tracking: Log all customer interactions
- π€ Data Export: CSV export functionality
- β Data validation with annotations
- β Proper entity relationships
- β Indexed database queries
- β Rate limiting protection
- β Role-based authorization
- β Automatic timestamp tracking
- β Soft delete support
- β Auditable entities (CreatedBy, ModifiedBy)
| Technology | Description |
|---|---|
| Core application framework | |
| Frontend C# web framework | |
| Material Design components | |
| ORM for data access | |
| Embedded database | |
| RESTful API standard | |
| API documentation |
MudBlazorCrmApp/
βββ MudBlazorCrmApp/ # ASP.NET Core Web API (Backend)
β βββ Controllers/ # API endpoints
β βββ Data/ # DbContext and data access
β βββ Models/ # Server-side models
β βββ Services/ # Business logic services
β
βββ MudBlazorCrmApp.Blazor/ # Blazor WASM Client
β βββ Program.cs # Client entry point
β
βββ MudBlazorCrmApp.Shared/ # Shared Models
β βββ Models/ # DTOs and entities
β
βββ MudBlazorCrmApp.Shared.Blazor/# Shared Blazor Components
βββ Pages/ # Razor pages
βββ Layout/ # App layout
βββ Components/ # Reusable components
βββ Services/ # Client services
| Entity | Description | Key Features |
|---|---|---|
| Customer | Companies/accounts | Industry, revenue, account manager |
| Contact | People at companies | Email, phone, role, do-not-contact flag |
| Lead | Potential customers | Source, score, conversion tracking |
| Opportunity | Sales deals | Value, probability, pipeline stage |
| Sale | Completed transactions | Products, discounts, payment tracking |
| SupportCase | Customer issues | Priority, SLA, resolution tracking |
| Communication | Interactions log | Calls, emails, meetings, notes |
| AuditLog | Change tracking | Entity changes, Login/Logout events |
| ActivityLog | User activity | Authentication and action history |
- Prospecting β Qualification β Proposal β Negotiation β Closed Won/Lost
- New β Contacted β Qualified β Converted / Disqualified
- .NET 9 SDK
- Visual Studio 2022 with ASP.NET workload
- Git
# Clone the repository
git clone https://github.com/donpotts/MudBlazorCrmApp.git
# Navigate to the project
cd MudBlazorCrmApp
# Run the application
dotnet run --project MudBlazorCrmAppOr with Visual Studio:
- Open
MudBlazorCrmApp.sln - Set
MudBlazorCrmAppas startup project - Press F5 to run
The application will open at https://localhost:5001
| Role | Password | |
|---|---|---|
| Administrator | adminUser@example.com | testUser123! |
| Normal User | normalUser@example.com | testUser123! |
- Administrator: Full access to all features including user management
- User: Access to CRM features (customers, leads, sales, etc.)
GET /api/dashboard/kpis # Key performance indicators
GET /api/dashboard/sales-trend # Sales over time
GET /api/dashboard/lead-sources # Lead source distribution
GET /api/dashboard/pipeline-stages # Sales pipeline data
GET /api/dashboard/recent-activity # Activity feed
GET /api/dashboard/top-opportunities # Top deals
GET /api/auditlog # Entity change history
GET /api/auditlog/{id} # Audit log details
POST /api/authactivity/login # Log login event
POST /api/authactivity/logout # Log logout event
GET/POST /api/customer
GET/PUT/DELETE /api/customer/{id}
GET/POST /api/lead
GET/PUT/DELETE /api/lead/{id}
GET/POST /api/opportunity
GET/PUT/DELETE /api/opportunity/{id}
... (similar for all entities)
All list endpoints support OData queries:
GET /api/customer?$top=10&$skip=0&$orderby=Name
GET /api/lead?$filter=Status eq 'New'&$count=true
- Create model in
MudBlazorCrmApp.Shared/Models/ - Add DbSet to
ApplicationDbContext - Create controller in
MudBlazorCrmApp/Controllers/ - Add service methods to
AppService.cs - Create Blazor pages in
MudBlazorCrmApp.Shared.Blazor/Pages/
- Theming: Modify
ThemeServiceandThemesMenu - Dashboard: Edit
CRMDashboard.razorfor custom widgets - Navigation: Update
NavMenu.razorfor menu structure
Don Potts - Don.Potts@DonPotts.com
Project Link: https://github.com/donpotts/MudBlazorCrmApp
- MudBlazor - Amazing Blazor component library
- Chart.js - Beautiful charts
- ASP.NET Core - Robust backend framework
