An open API service indexing awesome lists of open source software.

https://github.com/taidangduc/eshop

Practical Monolith, built with .Net 9, Clean Architecture, CQRS and the latest technologies.
https://github.com/taidangduc/eshop

asp-net-core clean-architechture csharp dotnet dotnet-api dotnet-mvc identityserver4 monolith oauth2 reactjs testing

Last synced: about 5 hours ago
JSON representation

Practical Monolith, built with .Net 9, Clean Architecture, CQRS and the latest technologies.

Awesome Lists containing this project

README

          

# Eshop

> πŸ›οΈ A practical e-commerce application built with .NET for the backend and React (Vite) for the frontend, demonstrating clean architecture and the latest technologies.

## Purpose

Provide a sample production-ready foundation for an online store with clean architecture and domain-driven design.

## Key Features

- HTTP APIs for Basket, Catalog, Customer, Identity, Order, and Payment.
- Aspire used to local orchestration.
- Domain‑driven design: entities, value objects, and domain events.
- Seperate commands, queries in per feature.
- JWT authentication and Cookie authentication
- Unit and integration test projects.

## Goals of This Project

- ❇️ Using `Clean Architecture` for architecture level.
- ❇️ Using `CQRS` implementation with `MediatR` library.
- ❇️ Using `Fluent Validation` and a `Validation Pipeline Behaviour` on top of `MediatR`.
- ❇️ Using `Unit Testing` for testing small units and mocking
- ❇️ Using `Docker` for containerization
- ❇️ Using `Nginx` for reserve proxy
- ❇️ Using `Aspire` for local development, fast test
- ❇️ Integration payment gateway with a `Stripe`
- ❇️ Identity and authentication via `Duende IdentityServer`.
- ❇️ Using storage: local filesystem and `Azure Blob` provider.
- ❇️ Observability via `OpenTelemetry` (instrumentation + exporters).
- ❇️ Email notifications via SMTP and background host services.
- ❇️ In-memory caching

## Technologies - Libraries

- βœ”οΈ `.NET 9` – runtime and SDK used across services.
- βœ”οΈ `Entity Framework Core` – persistence, migrations, etc
- βœ”οΈ `MediatR` – CQRS and in-process messaging (handlers + pipeline behaviors).
- βœ”οΈ `FluentValidation` – command validators and validation pipeline integration.
- βœ”οΈ `Duende.IdentityServer` – Identity and authentication.
- βœ”οΈ `OpenTelemetry` – tracing and metrics instrumentation.
- βœ”οΈ `Stripe` – payment provider implementation and factory-based payment gateway.
- βœ”οΈ `Azure Blob Storage` and local file storage managers.
- βœ”οΈ `Swashbuckle / OpenAPI` (Swagger) – API documentation and UI.
- βœ”οΈ `React` + `Vite` – storefront frontend.
- βœ”οΈ `xUnit.net` – unit and integration testing projects.
- βœ”οΈ `Docker`, `Nginx` – containerized dev/production setups and reverse proxy.
- βœ”οΈ `Aspire` – local orchestration for multi-service development.
- βœ”οΈ `Microsoft.Extensions.Caching.Memory` – in-memory caching support.

## Demo

#### Identity Server