Project 2 Requirements - 042020-dotnet-uta/curriculumCode GitHub Wiki

Project 2

April 20, 2020 Arlington .NET / Mark Moore

Angular single-page application

  • client-side validation
  • error handling on requests to APIs
  • deployed to Azure App Service
  • supports 'deep links'

ASP.NET Core REST service

  • follow standard HTTP uniform interface, except hypermedia
  • architecture with separation of concerns between domain/business logic, data access, and API; repository pattern
  • deployed to Azure App Service
  • Entity Framework Core ▪ DB should be on the cloud ▪ all DB/network access should be async
  • server-side validation
  • support filtering or pagination on at least one resource
  • logging
  • implement hypermedia, or, implement an API Description Language, e.g. using Swashbuckle
  • (optional: implement a custom filter, health check, or middleware, e.g. exception-handling middleware)

Azure Pipelines

  • CI pipelines ▪ Unit tests ▪ SonarCloud ▪ Code coverage at least 50% for API, at least 50% for Angular app ▪ Reliability/Security/Maintainability scored at least B
  • (optional: deploy in release definition or separate job instead of in build job, and use health checks)
  • must have some calls to an external API, or integration with some other service
  • authentication and authorization with Auth0 or Okta
  • Scrum processes ▪ Project board to track user stories across team. ▪ Standup at least two or three times a week
  • any other tech you want within reason
  • the data model (how many tables, what kind of complex relationship like N to N) must be at least as complicated as project 1.
  • the user interaction model (what are the user stories, what inputs/interactions can the user make) must be at least as complicated as project 1.
  • a project proposal ▪ MVP minimum viable product ▪ potentially stretch goals, extra features