π Epic Overview
This epic tracks the migration from the current N-Layer architecture to Clean Architecture (Onion Architecture) for the Refhub book management system. This will improve maintainability, testability, and separation of concerns.
π― Goals
- Separation of Concerns: Clear boundaries between business logic, data access, and presentation
- Dependency Inversion: Core business logic independent of external frameworks
- Testability: Easy unit testing of business logic without external dependencies
- Maintainability: Modular structure for easier feature development and maintenance
- Domain-Driven Design: Rich domain models with business logic encapsulation
π Current Architecture Analysis
Current Structure (N-Layer):
Refhub/
βββ Controllers/ # Presentation Layer
βββ Areas/Admin/ # Admin Presentation
βββ Data/
β βββ Context/ # EF DbContext
β βββ Models/ # Data Models (Anemic)
β βββ Configuration/ # EF Configurations
βββ Service/
β βββ Interface/ # Service Contracts
β βββ Implement/ # Service Implementations
βββ Models/ # ViewModels/DTOs
βββ Tools/ # Utilities
βββ wwwroot/ # Static Files
Target Structure (Clean Architecture):
Refhub.Domain/ # Core Business Logic
βββ Entities/ # Rich Domain Entities
βββ ValueObjects/ # Value Objects
βββ Interfaces/ # Domain Service Contracts
βββ Specifications/ # Business Rules
βββ Events/ # Domain Events
Refhub.Application/ # Use Cases & Application Logic
βββ Commands/ # CQRS Commands
βββ Queries/ # CQRS Queries
βββ DTOs/ # Data Transfer Objects
βββ Interfaces/ # Application Service Contracts
βββ Services/ # Application Services
βββ Validators/ # Input Validation
Refhub.Infrastructure/ # External Concerns
βββ Data/ # EF Core Implementation
β βββ Context/ # DbContext
β βββ Configurations/ # EF Configurations
β βββ Repositories/ # Repository Implementations
βββ Services/ # External Services (S3, Email, etc.)
βββ Migrations/ # Database Migrations
Refhub.Web/ # Presentation Layer
βββ Controllers/ # MVC Controllers
βββ Areas/ # Admin/User Areas
βββ Models/ # ViewModels
βββ wwwroot/ # Static Files
Refhub.Tests/ # Test Projects
βββ Domain.Tests/ # Domain Unit Tests
βββ Application.Tests/ # Application Unit Tests
βββ Infrastructure.Tests/ # Infrastructure Tests
βββ Web.Tests/ # Integration Tests
π Related Issues
This epic is broken down into the following sprint-ready issues:
Sprint 1 (2 weeks) - Foundation
Sprint 2 (2 weeks) - Core Migration
Sprint 3 (2 weeks) - Infrastructure & Testing
π·οΈ Business Value
- Reduced Technical Debt: Cleaner, more maintainable codebase
- Faster Development: Clear separation allows parallel development
- Better Testing: Improved test coverage and reliability
- Scalability: Architecture supports future growth and features
- Team Productivity: Clear guidelines for where code should go
π― Success Criteria
π Estimated Timeline
- Total Duration: 6 weeks (3 sprints)
- Team Size: 2-3 developers
- Risk Level: Medium (well-defined patterns)
π Migration Strategy
- Gradual Migration: Implement new structure alongside existing code
- Feature Toggles: Use feature flags to switch between old/new implementations
- Backward Compatibility: Maintain existing functionality during transition
- Testing: Comprehensive testing at each migration step
Epic Owner: @hootanht
Sprint Planning: Ready for breakdown into individual sprint issues
π Epic Overview
This epic tracks the migration from the current N-Layer architecture to Clean Architecture (Onion Architecture) for the Refhub book management system. This will improve maintainability, testability, and separation of concerns.
π― Goals
π Current Architecture Analysis
Current Structure (N-Layer):
Target Structure (Clean Architecture):
π Related Issues
This epic is broken down into the following sprint-ready issues:
Sprint 1 (2 weeks) - Foundation
Sprint 2 (2 weeks) - Core Migration
Sprint 3 (2 weeks) - Infrastructure & Testing
π·οΈ Business Value
π― Success Criteria
π Estimated Timeline
π Migration Strategy
Epic Owner: @hootanht
Sprint Planning: Ready for breakdown into individual sprint issues