pkskelly / BlazorGolf

Blazor and Web API sample application to learn api design and blazor
MIT License
0 stars 0 forks source link

BlazorGolf

Build and Deploy Blazor Golf API | Azure Static Web Apps CI/CD |

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:

Approach

Trying to use some best practices with API design first, then layering in the additional features.

Project setup checklist

  1. [x] Start with an idea and draft a simple readme for the idea
  2. [x] Choose a language(s) (C#)
  3. [x] Choose an IDE (Visual Studio Code)
  4. [x] Choose a cloud (Azure)
    1. [x] What architecture will we use (containers/PaaS/Serverless/?)
      1. [x] Static Web App for the Blazor client app
      2. [x] PaaS using Azure App Hosting for API
    2. [x] What is the plan for resiliency
    3. [x] What is the plan for backups
  5. Choose a DevOps platform (GitHub)
    1. [x] Create an organization (personal)
    2. [x] Create a repo (personal & private to start)
    3. [x] Setup branch rules/policies (none for personal project)
  6. Creating the new/empty project
    1. [ ] Setup basic CI
    2. [x] Creating basic empty project (Blazor WASM Website)
    3. [ ] Creating basic empty projects (API site) !. [ ] Creating basic automated test projects - to prove that we are deploying working code
      1. [ ] unit/integration tests
      2. [ ] smoke/functional tests
      3. [ ] code coverage
    4. [ ] Add editor config file (to take the opinion out of code styling)
    5. [ ] Add infrastructure as code to deploy to each needed environment (Dev, QA, Prod?)
      1. [x] Added script to deploy Azure SWA for Blazor App as needed
  7. Back to GitHub
    1. [ ] Setup dependabot to automatically update dependencies
    2. [ ] Setup security to check for secrets and unsafe dependency
    3. [ ] Link to CD templates that build, test, or deploy as needed
    4. [ ] Setup basic CD, to deploy to each cloud environment, with smoke tests and environment approvals as needed
  8. Project planning
    1. [ ] Set goals/roadmap. What does Alpha/Beta/GA look like?
    2. [x] Track PBI/ User Stories - Issues with Labels in Github

Originally based on Project Setup from Sam Smith.