A production-grade, clean-architecture Todo App using ASP.NET Core 10 (Web API), Angular 20, PostgreSQL, and .NET Aspire for orchestration. This App is designed for extensibility, maintainability, and best practices in modern web development.
- Backend: ASP.NET Core 10, Clean Architecture (Domain, Application, Infrastructure, Api)
- Frontend: Angular 20, Angular Material, JWT authentication, i18n
- Database: PostgreSQL
- Orchestration: .NET Aspire AppHost
- CI/CD: Ready for GitHub Actions
backend/
src/
Domain/ # Business logic, entities, enums, exceptions
Application/ # DTOs, validators, handlers, mapping, interfaces
Infrastructure/ # Data access, JWT, repositories, extensions
Api/ # Controllers, middleware, endpoints, config
ServiceDefaults/# OpenTelemetry, HealthCheck
frontend/
src/app/
features/taskTodos/ # Task CRUD
features/auth/ # Auth
core/ # Http client, interceptors
shared/ # UI components
AppHost/ # Aspire orchestration
- Set secrets using Aspire and User Secrets:
cd AppHost
[Guid]::NewGuid().ToString()
dotnet user-secrets set "Parameters:Jwt-Key" "<your-guid-key>"- Configure
appsettings.jsonin Api for connection strings and JWT settings.
- Run Backend:
dotnet run --project backend/src/Api
- Run Frontend:
cd frontend && ng serve
- Run with Aspire:
dotnet aspire run AppHost
- Backend: Add unit/integration tests in
backend/tests - Frontend: Use Angular's testing tools
- Clean architecture separation
- DTOs, validators, CQRS handlers
- JWT authentication
- Global error handling
- Swagger API docs
- OpenTelemetry & HealthCheck
- Environment-based configuration
MIT
- Add GitHub Actions for CI/CD
- Extend with more features as needed