BlazingChat is a Blazor WebAssembly app developed by CuriousDrive
for the community.
This is a sample application for developers who are just getting started with Blazor.
BlazingChat has code samples for Authentication, Logging, Virtualization ... and much more. The app is open source and running in production.
Check it out here https://www.blazingchat.com
- Make sure that you have .NET 5 installed on your machine.
- Clone repo
https://github.com/CuriousDrive/BlazingChat.git
on your machine. - Open folder
/src/WebAPI
in terminal. And run commanddotnet run
. - Open folder
/src/Client
in terminal. And run commanddotnet run
. - Go to
https://localhost:5001/
- Click on login. You should get logged in with email address
john.smith@gmail.com
- Or you can login with your Twitter or Facebook
- Congratulations!!! you are using BlazingChat.
The front-end is made using Blazor WebAssembly and the back-end is made using ASP.NET Core Web API + Entity Framework Core. SQLite is used to store the data. You can run this app on Windows, Mac or Linux operating systems. The repo is maintained episode by episode so that you can go back to particular episode and the code related to it.
The best part about BlazingChat app is that it's been documented while it was getting built.
Please check out the videos below, if you want to learn how to build your own Blazor WebAssembly app from scratch.
Topic | Video Recording |
---|---|
Introduction/Full Course/Workshop - EP01 | https://youtu.be/v6Mt8HKAWa0 |
Hello World from Windows/Linux - EP02 | https://youtu.be/BajljUky-KA |
Project Structure/Template - EP03 | https://youtu.be/S-skkhzcMmo |
Routing, NavigationManager & AdditionalAssemblies : EP04 | https://youtu.be/86vyb4vDGTk |
Debugging in VS Code, Chrome and Visual Studio : EP05 | https://youtu.be/4c2vli5567A |
Entity Framework Core - EP06 | https://youtu.be/rACHqnkaORA |
MVVM Architecture - EP07 | https://youtu.be/dvgReCfPsvg |
Dependency Injection in MVVM - EP08 | https://youtu.be/bxpSa0ZmwtY |
Using HttpClient in MVVM - EP09 | https://youtu.be/To-GSKOac10 |
Open-source Project - EP10 | https://youtu.be/6T-l-lt28rs |
Custom Authentication - EP11 | https://youtu.be/B9jKf-Dn0Yg |
AuthenticationState - EP12 | https://youtu.be/N8YoJRV19rw |
Twitter Authentication/Login - EP13 | https://youtu.be/TZSwbey58CM |
Facebook Authentication - EP14 | https://youtu.be/AoN-CzWJwa4 |
Google Authentication - EP15 | https://youtu.be/4lYPhionIEo |
Migrating from 3.1 to .NET 5 - EP16 | https://youtu.be/kcihC-h69fE |
CSS Isolation - EP17 | https://youtu.be/0EqMxSm_49k |
Uploading Files - EP18 | https://youtu.be/sF6yhn2UJNs |
Downloading Files : EP19 | https://youtu.be/qUbbtcZZqaI |
Virtualize Component - EP20 | https://youtu.be/UtmAlX6U29k |
JavaScript Isolation - EP21 | https://youtu.be/tbNgLNZnNWM |
Lazy-loading Assemblies - EP22 | https://youtu.be/e_22VhPQJj0 |
Deploy to IIS(Internet Information System) - EP23 | https://youtu.be/vV0zn91OZfc |
Creating Chat Application Using SignalR - EP24 | https://youtu.be/5VSUX6w5P8g |
SignalR - Sending Messages to Specific Clients - EP25 | https://youtu.be/SeQvP8_dVng |
Cookie Expiration & API Authorization - EP26 | https://youtu.be/QOFwpmjEW7g |
Logging to Database using Custom Logger Provider - EP27 | https://youtu.be/SmFsQJBbsO0 |
Global Exception Handling using CascadingValue - EP28 | https://youtu.be/mxOYvu2MWFo |
"Remember me" using Cookie Authentication - EP30 | https://youtu.be/220FQbMKyrg |
Dark/Light Theme Switch - EP31 | https://youtu.be/5qRaUviEYIw |
JWT Authorization - EP32 | https://youtu.be/bu6F4oeYdzA |
JWT For Facebook Authentication - EP33 | https://youtu.be/bBvDQ9z1Xdw |
Authorization using CascadingAuthenticationState & JWT - EP34 | https://youtu.be/uthjcpJHzKo |
Deploying the app with WebAPI using GitHub Actions(CI/CD) for FREE - EP35 | https://youtu.be/m7DqtL0WIV0 |
If you have any questions on how this project is setup then you can reach out to us on below handles.
https://twitter.com/curious_drive
https://www.facebook.com/curiousdrive/
https://www.youtube.com/c/curiousdrive
Let us know how it goes.