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

https://github.com/oznakdn/cleantemplate

The Clean Template Project is an open source project written in .NETCore.
https://github.com/oznakdn/cleantemplate

authentication-and-authorization caching-memory caching-redis clean-architecture cqrs ddd domain-driven-design ef-core fluentvalidation health-check jwt-auth logging mapster mediatr rate-limiting repository-pattern result-pattern unitofwork-pattern

Last synced: about 1 year ago
JSON representation

The Clean Template Project is an open source project written in .NETCore.

Awesome Lists containing this project

README

          

# Clean Template


The Clean Template Project is an open source project written in .NETCore.

The goal of this project is to apply widely used technologies and share them with communities.

If you like the project please give it a star :star:

```bash

CleanTemplate
|
├── src
| ├── Core
│ | ├── Clean.Application
│ | ├── Clean.Domain
│ | ├── Clean.Domain.Contracts
| | └── Clean.Domain.Shared
│ ├── Infrastructure
| | ├── Clean.Caching
| | ├── Clean.Identity
| | ├── Clean.Logging
| | ├── Clean.Notification
| | └── Clean.Persistence
| └── Presentation
| ├── Clean.Api
| ├── Clean.Mvc
| └── Clean.WebRazorPages
└── test
└── UnitTests
```

## Features

- [x] Clean Architecture
- [X] Domain driven design (DDD) View
- [X] Custom Domain Events
- [x] CQRS
- [x] Entity Framework Core 7 View
- [x] MongoDriver
- [x] Sqlite, SqlServer, PostgreSQL, MySql, MongoDB
- [x] Generic repository pattern View
- [x] Unit Of Work pattern View
- [x] Result pattern
- [X] Pagination, Filtering and Sorting
- [X] Data Shaping View
- [x] Claim based authentication with Json Web Token
- [x] Password Hashing
- [x] Logging
- [X] Redis and InMemory Caching
- [X] Health Check View
- [X] Rate Limiting View
- [x] MapSter
- [x] FluentValidation
- [x] MediatR
- [X] Email and Notification Service
- [X] Unit tests
- [x] Asp .Net Core Web Api View
- [x] Asp .Net Core Mvc View
- [x] Asp .Net Core WebApp(Razor Pages) View

## Migration Commands
#### Terminal
```csharp
$ cd CleanTemplate/src/Infrastructure/Clean.Persistence
```
```csharp
$ dotnet ef migrations add [MigrationName] --context [ContextName] --startup-project [Clean.Api ProjectDirectoryPath]
```
```csharp
$ dotnet ef database update --context [ContextName] --startup-project [Clean.Api ProjectDirectoryPath]
```

## Packages
```csharp
MediatR.Extensions.Microsoft.DependencyInjection
FluentValidation.DependencyInjectionExtensions
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Proxies
Npgsql.EntityFrameworkCore.PostgreSQL
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
Gleeman.EffectiveLogger.SQLite
Gleeman.EffectiveLogger
Gleeman.JwtGenerator
BCrypt.Net-Next
MongoDB.Driver
Mapster
MailKit
```
## Api Endpoints
![endpoints](https://github.com/oznakdn/CleanTemplate/assets/79724084/249dc317-c0a6-446a-a8a1-5a271e192a33)