Skip to content

About

A modular monolith application for learning advanced .NET architecture using Asp.Net, Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit, MediatR

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

🛒 EShop Modular Monolith

Build Status Coverage .NET License

A comprehensive modular monolith application for learning advanced .NET architecture using modern technologies and best practices.

📊 Code Coverage

Module Unit Tests Integration Tests Coverage
🛒 Basket Unit Tests Integration Coverage
📦 Catalog Unit Tests Integration Coverage
📋 Ordering Unit Tests Integration Coverage
🔧 Shared Unit Tests Integration Coverage

🚀 Technologies

  • Framework: ASP.NET Core 9.0
  • Database: PostgreSQL 15
  • Cache: Redis 7
  • Message Broker: RabbitMQ
  • Authentication: Keycloak
  • Logging: Seq, Serilog
  • Containerization: Docker
  • Messaging: MassTransit
  • CQRS: MediatR
  • Testing: xUnit, FluentAssertions, Moq, TestContainers
  • Code Coverage: Coverlet, ReportGenerator

🏗️ Architecture

This project demonstrates a Modular Monolith architecture with:

  • Clean Architecture principles
  • Domain-Driven Design (DDD)
  • CQRS pattern with MediatR
  • Event-Driven Architecture
  • Comprehensive Testing Strategy

🧪 Testing

The project includes a comprehensive testing framework:

  • Unit Tests: Individual module testing with mocks
  • Integration Tests: End-to-end API testing with TestContainers
  • Code Coverage: Automated coverage reporting
  • Test Helpers: Reusable builders and utilities using Bogus

Running Tests

# Run all tests
dotnet test

# Run tests with coverage
dotnet test --collect:"XPlat Code Coverage"

# Run specific module tests
dotnet test tests/UnitTests/Basket/
dotnet test tests/IntegrationTests/Api/

About

A modular monolith application for learning advanced .NET architecture using Asp.Net, Web API, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, Docker, MassTransit, MediatR

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages