FinanceManager API

Backend application built with ASP.NET Core (.NET 8) following Clean Architecture and Domain-Driven Design principles.


Overview

FinanceManager is a backend project designed to demonstrate a production-ready architecture with strong separation of concerns, maintainability and testability.

The project simulates a real-world enterprise architecture by applying layered design, domain-driven modeling and automated tests.

Architecture

The solution follows a layered Clean Architecture approach.

Domain
  • Entities
  • Value Objects
  • Domain Services
  • Domain Events
  • Business rules
  • No external dependencies
Application
  • Application Services
  • DTOs
  • Repository Interfaces
  • Unit of Work
  • Use case orchestration
Infrastructure
  • Entity Framework Core
  • SQLite Provider
  • Repository Implementations
  • Unit of Work Implementation
API Layer
  • Minimal APIs
  • Dependency Injection
  • Swagger
  • Problem Details middleware

Technologies

.NET 8 ASP.NET Core Entity Framework Core SQLite xUnit FluentAssertions WebApplicationFactory

Architectural Patterns

  • Clean Architecture
  • Domain-Driven Design (DDD)
  • Repository Pattern
  • Unit of Work
  • Domain Events
  • Dependency Injection
  • Separation of Concerns

Testing Strategy

The project includes multiple testing layers:

  • Domain Tests validating entities and business rules
  • Application Tests covering use case orchestration
  • API Integration Tests using WebApplicationFactory

Integration tests use an in-memory SQLite database and run the full API pipeline.

Database

The project uses SQLite for development and testing. Integration tests run with an in-memory SQLite database and automatically create the schema during test setup.