Skip to content

eugene-seb/TodoApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TodoApp 📝

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.

Features ✨

  • 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

Project Structure 🗂️

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

Getting Started 🚀

Prerequisites 📦

Environment Variables & Secrets 🔑

  • Set secrets using Aspire and User Secrets:
cd AppHost
[Guid]::NewGuid().ToString()
dotnet user-secrets set "Parameters:Jwt-Key" "<your-guid-key>"
  • Configure appsettings.json in Api for connection strings and JWT settings.

Usage ▶️

  • Run Backend:
    • dotnet run --project backend/src/Api
  • Run Frontend:
    • cd frontend && ng serve
  • Run with Aspire:
    • dotnet aspire run AppHost

Testing 🧪

  • Backend: Add unit/integration tests in backend/tests
  • Frontend: Use Angular's testing tools

Best Practices 🏆

  • Clean architecture separation
  • DTOs, validators, CQRS handlers
  • JWT authentication
  • Global error handling
  • Swagger API docs
  • OpenTelemetry & HealthCheck
  • Environment-based configuration

License 📄

MIT

Further Considerations 💡

  • Add GitHub Actions for CI/CD
  • Extend with more features as needed

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published