BlazorGolf
| |
Summary
A Blazor WebAssembly client application and a .NET 6 Web API sample application to learn/practice Blazor WebAssembly and Web API design and development.
The initial application will be based on the following:
- .NET 6 Web API project secured using Azure AD and Roles (for player vs admin features)
- Use/support Open API from the start
- .NET 6 Blazor WebAssembly project using MudBlazor components (OSS and free)
- Deployed to Azure (targets TBD)
Approach
Trying to use some best practices with API design first, then layering in the additional features.
Project setup checklist
- [x] Start with an idea and draft a simple readme for the idea
- [x] Choose a language(s) (C#)
- [x] Choose an IDE (Visual Studio Code)
- [x] Choose a cloud (Azure)
- [x] What architecture will we use (containers/PaaS/Serverless/?)
- [x] Static Web App for the Blazor client app
- [x] PaaS using Azure App Hosting for API
- [x] What is the plan for resiliency
- [x] What is the plan for backups
- Choose a DevOps platform (GitHub)
- [x] Create an organization (personal)
- [x] Create a repo (personal & private to start)
- [x] Setup branch rules/policies (none for personal project)
- Creating the new/empty project
- [ ] Setup basic CI
- [x] Creating basic empty project (Blazor WASM Website)
- [ ] Creating basic empty projects (API site)
!. [ ] Creating basic automated test projects - to prove that we are deploying working code
- [ ] unit/integration tests
- [ ] smoke/functional tests
- [ ] code coverage
- [ ] Add editor config file (to take the opinion out of code styling)
- [ ] Add infrastructure as code to deploy to each needed environment (Dev, QA, Prod?)
- [x] Added script to deploy Azure SWA for Blazor App as needed
- Back to GitHub
- [ ] Setup dependabot to automatically update dependencies
- [ ] Setup security to check for secrets and unsafe dependency
- [ ] Link to CD templates that build, test, or deploy as needed
- [ ] Setup basic CD, to deploy to each cloud environment, with smoke tests and environment approvals as needed
- Project planning
- [ ] Set goals/roadmap. What does Alpha/Beta/GA look like?
- [x] Track PBI/ User Stories - Issues with Labels in Github
Originally based on Project Setup from Sam Smith.