Lesson 40 of 40 Capstone Advanced 90 min

Building a Full-Stack App End-to-End

Bring it all together — build a complete Task Management SaaS with ASP.NET Core API, Blazor frontend, EF Core, Azure deployment, and Copilot-assisted development.

Part 1: Architecture Overview

Our TaskFlow app architecture:
  • API: ASP.NET Core 10 Minimal API, JWT auth, EF Core + PostgreSQL
  • Frontend: Blazor Web App (Auto render mode)
  • Real-time: SignalR for live task updates
  • Background: BackgroundService for email notifications
  • Infrastructure: Docker Compose + Azure Container Apps

Part 2: Scaffolding with Copilot Agent Mode

Start with a detailed Copilot Agent prompt:
"Create a TaskFlow solution with:
- TasksApi: Minimal API with CRUD endpoints for tasks + projects
- TasksBlazor: Blazor Web App with task board view
- TasksWorker: Background service for notifications
- Shared: DTOs and domain models
Use JWT auth, EF Core with SQLite for dev.
Add unit tests for all service classes."
Review Agent changes carefully before accepting.

Part 3: Real-time Kanban Board

// SignalR hub
public class TaskHub : Hub
{
  public async Task MoveTask(Guid taskId, string column)
  {
    await _service.MoveAsync(taskId, column);
    await Clients.Others.SendAsync("TaskMoved", taskId, column);
  }
}

Part 4: Deploy to Azure Container Apps

# GitHub Actions deploy step
- name: Deploy to Azure
  uses: azure/container-apps-deploy-action@v1
  with:
    imageToDeploy: ${{ env.REGISTRY }}/taskflow:${{ github.sha }}
    containerAppName: taskflow-api
    resourceGroup: taskflow-rg
Congrats — your full-stack .NET 10 app is live! 🚀