๐ Welcome to the DDD-Members project! This repository showcases a comprehensive implementation of Domain-Driven Design (DDD) principles using .NET Core. Dive in to explore a robust and maintainable architecture with features like CQRS, Clean Architecture, and more.
- Domain-Driven Design (DDD): Leverage the power of DDD to tackle complex business logic.
- Clean Architecture: Maintain a clear separation of concerns for better scalability and maintainability.
- CQRS (Command Query Responsibility Segregation): Separate read and write operations for optimized performance.
- FluentValidation: Ensure robust input validation.
- Entity Framework Core (EF Core): Efficient data access and manipulation.
- MediatR: Simplify application logic with the mediator pattern.
- Logging: Integrated logging for better debugging and monitoring.
- Unit of Work: Manage transactions efficiently.
- .NET Core SDK
- SQL Server or any other compatible database
- Visual Studio or Visual Studio Code
-
Clone the Repository:
git clone https://github.com/Ebrahem-Outlook/DDD-Members.git cd DDD-Members
-
Setup the Database:
- Update the connection string in
appsettings.json
to point to your database. - Apply migrations to create the database schema:
dotnet ef database update
- Update the connection string in
-
Run the Application:
dotnet run
- Endpoints: Explore various API endpoints for managing members.
- Swagger: Access the Swagger UI for interactive API documentation at
http://localhost:<port>/swagger
.
- Domain: Contains core business logic and domain models.
- Application: Implements application services, CQRS handlers, and validation logic.
- Infrastructure: Manages data access, repository implementations, and external services.
- Presentation: Hosts the API controllers and related presentation logic.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Inspired by the best practices in Domain-Driven Design and Clean Architecture.
- Thanks to the contributors and the community for their support.
Feel free to add more sections or modify this template to better fit your project's needs.