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
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.