LegalAssistant.AppService/
├── src/
│ ├── Domain/ # 🏛️ Domain Layer - Business Rules
│ ├── Application/ # 🔧 Application Layer - Use Cases
│ ├── Infrastructure/ # 🗄️ Infrastructure Layer - External Services
│ └── Web.Api/ # 🌐 Presentation Layer - API Endpoints
└── README.md
- No dependencies - The purest layer
- Contains business rules and domain logic
- Aggregates, Entities, Value Objects, Domain Events
- Depends on: Domain
- Orchestrates use cases and business workflows
- Commands, Queries, Handlers, Behaviors
- Depends on: Domain + Application
- Implements repositories and external services
- Database, Email, File Storage, APIs
- Depends on: Application + Infrastructure
- Controllers, Middleware, Models
- API endpoints and HTTP concerns
Presentation → Application → Domain
↓ ↓
Infrastructure -----→
- .NET 8 - Framework
- MediatR - CQRS Pattern
- Entity Framework Core - ORM
- FluentValidation - Validation
- Serilog - Logging
- Swagger - API Documentation
- ✅ Clean Architecture
- ✅ CQRS (Command Query Responsibility Segregation)
- ✅ Domain Events
- ✅ Repository Pattern
- ✅ Specification Pattern
- ✅ Pipeline Behaviors
- .NET 8.0 SDK or later
- Docker & Docker Compose
- Your favorite IDE (Visual Studio, VS Code, JetBrains Rider)
-
Clone the repository
git clone <repository-url> cd LegalAssistant.AppService
-
Restore dependencies
dotnet restore
-
Build the solution
dotnet build
# Start only the database with Docker
docker-compose up -d postgres
# Run the API locally for development
dotnet run --project src/Web.ApiThe API will be available at https://localhost:10001 and http://localhost:10000
# Run all services in Docker
docker-compose up -d --buildAll services will run in containerized environment
- Open your browser and navigate to
https://localhost:10001/swaggerorhttp://localhost:10000/swagger - You should see the Swagger UI with API documentation
- 📚 Documentation Overview - Complete documentation index
- �️ Architecture Overview - System architecture and design principles
- 🔄 Event Handler Flow - Domain events and event handling patterns
- 📦 Aggregate Explained - Domain-Driven Design aggregates
- 🎯 Behaviors Guide - MediatR pipeline behaviors and cross-cutting concerns
- 🏷️ Naming Conventions - Code styling and naming standards
⚠️ Exception Guidelines - Error handling best practices- 💉 Dependency Injection Examples - DI patterns and behaviors
- ⌨️ Commands Reference - Available CLI commands and scripts
- 🚀 CI/CD Pipeline - Continuous integration and deployment
- Domain Layer - Business logic and domain models
- Application Layer - Use cases and application services
- Infrastructure Layer - Data access and external services
- Web.Api Layer - REST API and presentation logic