Back to directory
bradygaster avatar

squad-gh-aw-test

Test repo for Squad gh-aw workflow integration. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/bradygaster/squad-gh-aw-test.git

0

Stars

0

Forks

0

Watchers

—

License

Aspire Database-Backed App Starter

Add Factory

What does "Add Factory" do? Clicking the button installs the Factory GitHub App on this repository. Once installed, Factory watches for issues labeled intent and automatically decomposes them into sub-tasks, generates code with AI agents, opens pull requests, runs tests, and merges — all while tracking progress on a project board. No configuration files or allowlists needed; installing the App is the only setup step.

A blank-canvas template for building database-backed applications with Aspire. Clone it, point your agents at it, and start building features — the plumbing is done.

This is intentionally not a todo app. It seeds just enough data (page titles and content) to prove the stack works end-to-end, without leaving you a pile of domain logic to unwire before you can start your own project.

Architecture

graph LR
    Frontend[React Frontend] -->|/api proxy| API[.NET Minimal API]
    API --> DB[(PostgreSQL)]
    DbManager[DB Manager Worker] -->|migrations| DB
    DbSeeder[DB Seeder Worker] -->|seed data| DB

What's Inside

Project Role
AspireStarter.AppHost Aspire orchestrator — defines the topology and startup dependencies
AspireStarter.Api REST API using .NET Minimal APIs
AspireStarter.Models Entity Framework entity classes (standalone class library)
AspireStarter.Data DbContext, EF configuration, and migrations (standalone class library)
AspireStarter.DbManager Worker that applies EF migrations then exits
AspireStarter.DbSeeder Worker that seeds initial data then exits
AspireStarter.ServiceDefaults Shared OpenTelemetry, health checks, and resilience config
frontend/ React 19 + Vite + TypeScript with a dark reactive UI

Prerequisites

Getting Started

# Install the Aspire CLI
dotnet tool install -g Aspire.Cli

# Clone and run
git clone https://github.com/bradygaster/aspire-db-backed-app-starter.git
cd aspire-db-backed-app-starter
aspire run

The Aspire dashboard opens automatically — from there you can see all resources, traces, logs, and metrics.

Startup Order

Aspire orchestrates the full dependency chain:

  1. PostgreSQL container starts
  2. DB Manager waits for Postgres, applies EF Core migrations, exits
  3. DB Seeder waits for DB Manager to complete, seeds page content, exits
  4. API waits for seeding to finish, starts serving requests
  5. Frontend waits for API health, starts Vite dev server

Each worker emits OpenTelemetry traces so you can watch the step-by-step process in the dashboard's Traces view.

Extending This Template

Add a new entity

  1. Create the model class in AspireStarter.Models
  2. Add a DbSet<> to AppDbContext in AspireStarter.Data
  3. Generate a migration:
    dotnet ef migrations add YourMigration --project AspireStarter.Data --startup-project AspireStarter.Data
    
  4. Add API endpoints in AspireStarter.Api/Program.cs
  5. Build UI components in frontend/src/

Add seed data

Edit AspireStarter.DbSeeder/SeedWorker.cs — the pattern is already there.

Let agents do it

This repo includes Aspire agent skills (.agents/skills/). Point your AI coding agent at this repo and ask it to add features, entities, or screens — it has the context it needs.

Tech Stack

  • Aspire 13.4.6 — orchestration, service discovery, observability
  • .NET 10 — API and worker services
  • Entity Framework Core 10 — data access with PostgreSQL
  • React 19 + Vite 8 + TypeScript — frontend
  • OpenTelemetry — distributed tracing baked into every layer

Deploy to Azure Container Apps

# Deploy via Aspire CLI (recommended)
aspire deploy

# Or via Azure Developer CLI
azd up

The AppHost defines an Azure Container Apps environment (AddAzureContainerAppEnvironment). When you run aspire deploy, it provisions the infrastructure and deploys all services with managed identity authentication — no secrets to manage.

License

MIT