Blazor CRUD is a demo application built with the Blazor framework using the client-side hosting model with WebAssembly in the browser invoking .NET Core REST APIs secured by a JWT service. To browse the two components of the application, follow the links below. For authenticated pages and APIs, use the credentials ([email protected] / Password123).
- Blazor CRUD Application - A client side hosted WASM application built using Blazor. The application highlights CRUD data entry for entities, data pagination, client-side validation using Data Annotations, and authentication and authorization using JWT tokens.
- Blazor CRUD REST API - A REST API for CRUD with non-read API calls secured with JWT. The API includes a call to authenticate users and receive a JWT bearer token.
Blazor CRUD uses the following DevOps environment and tools to support a CI / CD process:
- GitHub Source Code Repository - All source code is stored in the GitHub repository, which is where you currently find yourself.
- Azure DevOps for CI/CD - Azure DevOps is used for continunous integration and continuous delivery (CI/CD). Builds and deployments are initiated with every cheackin to the main brach of the solution in GitHub.
- DockerHub for Container Storage - DockerHub is where BlazorCrud tagged Docker images are stored after being created in the CI/CD pipeline. The can also be pulled and run locally by using the command "docker pull thbst16/blazor-crud".
- Online demo site to explore the application
- CI/CD Using Azure DevOps
- Docker container generation as a single deployable Docker image
- Dashboard page
- Entity lists with pagination and search
- Modal data entry forms with validations
- Complex data entry with object graph validations
- File upload and download using JavaScript Interop
- Batch processing of JSON files ( Patients, Organizations, and Claims ) for data upload.
- REST interfaces with Swagger documentation
- Javascript Web Token (JWT) authentication
- Automation of Azure Infrastructure Setup
- Data generation to pre-populate thousdands of entity records
- AutoMapper for object-object mappings.
- Azure Fluent Management for Azure automation from C#.
- BlazorInputFile for file upload.
- BlazorStorage for local and session storage in the browser.
- BlazorStrap Bootstrap 4 components for Blazor.
- Blazor.Toastr for Toastr-style notifications.
- Bogus for data generation.
- ChartJs.Blazor Blazor component that wraps ChartJs widgets for dashboard.
- FluentValidation For entity validation, including complex object graph validations.
- Swashbuckle for Swagger document generation.