Coder Social home page Coder Social logo

net7starter's Introduction

Net7ApiStarter

Code contributors

Alt

.NET 7.0 Web Api project with Entity framework 6 code first approach. In this template n-tier architecture, repository and unit of work pattern implemented, database based logging implemented using action filters, request profiling added using MiniProfiler, unhandled exception handled by sentry, response security headers added, audit properties implemented by overriding SaveChangesAsync method of DbContext, docker-compose yaml written, authentication and authorization implemented using custom middleware, generic CRUD operations implemented, automapper configured, simple one to many role and permission logic implemented, password policy implemented, anti forgery token implemented, generic pagination, global exception handling, localization, whitelist, custom generic automapping & validations between entity and dtos implemented, mail sender implemented, rate limiting implemented, encoding and decoding implemened, sftp functions implemented, source code generator for DAL, BLL, API layer implemented, Database and application dockerized. Docker compose implemented with build step, automated service registration implemented using Scrutor, unit test implemented, load test implemented, Mediatr seperated as a independent layer, Elasticsearch implemented, MongoDb implemented.

Structure

│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│ .NET 7.0 WebApi Starter Project
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── API 
│   ├── ActionFilters
│   │   ├── LogActionFilter
│   │   └── ModelValidatorActionFilter
│   ├── Attributes
│   │   ├── ValidateForgeryTokenAttribute
│   │   └── ValidateTokenAttribute
│   ├── Containers
│   │   └── DependencyContainer
│   ├── Controllers
│   │   ├── UserController
│   │   └── ...
│   ├── Graphql
│   │   ├── Role
│   │   │   ├── Mutation
│   │   │   └── Query
│   │   └── ...
│   ├── Hubs
│   │   ├── UserHub
│   │   └── ...
│   ├── Middlewares
│   │   ├── AntiForgery
│   │   │   ├── AntiForgeryTokenValidator
│   │   │   └── ValidateAntiForgeryTokenMiddleware
│   │   ├── ExceptionMiddleware
│   │   └── LocalizationMiddleware
│   └── Services
│       └── RedisIndexCreatorService
│
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── BLL     
│   ├── Abstract
│   │   ├── IUserService
│   │   └── ...
│   ├── Concrete
│   │   ├── UserService
│   │   └── ...
│   ├── Mappers
│   │   ├── Automapper
│   │   ├── UserMapper
│   │   └── ...
│   └── MediatR
│       ├── OrganizationCQRS
│       │   ├── Commands
│       │   │   ├── AddOrganizationCommand
│       │   │   └── ...
│       │   ├── Handlers
│       │   │   ├── AddOrganizationHandler
│       │   │   ├── GetOrganizationListHandler
│       │   │   └── ...
│       │   └── Queries
│       │       ├── GetOrganizationListQuery
│       │       └── ...
│       └── ...
│       //TODO ADD RABBITMQ HERE
│ 
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── CORE
│   ├── Abstract
│   │   └── ISftpService
│   │   └── IUtilService
│   ├── Concrete
│   │   └── SftpService
│   │   └── UtilService
│   ├── Constants
│   │   ├── Constants
│   │   └── LocalizationConstants
│   ├── Config
│   │   ├── AuthSettings
│   │   ├── ConfigSettings
│   │   ├── ConnectionStrings
│   │   ├── Controllable
│   │   ├── CryptographySettings
│   │   ├── HttpClientSettings
│   │   ├── HttpHeader
│   │   ├── MailSettings
│   │   ├── RedisSettings
│   │   ├── RequestSettings
│   │   ├── SentrySettings
│   │   ├── SftpSettings
│   │   └── SwaggerSettings
│   ├── Helper
│   │   ├── ExpressionHelper
│   │   ├── FileHelper
│   │   ├── FilterHelper
│   │   ├── ObjectSerializer
│   │   └── SecurityHelper
│   ├── Logging
│   │   ├── ILoggerManager
│   │   └── LoggerManager
│   └── Localization
│       ├── TranslatorExtension
│       ├── Messages
│       ├── MsgResource.az
│       ├── MsgResource.en
│       └── MsgResource.ru
│
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── DAL
│   ├── Abstract
│   │   ├── IUserRepository
│   │   └── ...
│   ├── Concrete
│   │   ├── UserRepository
│   │   └── ...
│   ├── CustomMigrations
│   │   └── DataSeed
│   ├── DatabaseContext
│   │   └── DataContext
│   ├── GenericRepositories
│   │   ├── Abstract
│   │   │   └── IGenericRepository
│   │   └── Concrete
│   │       └── GenericRepository
│   ├── Migrations
│   │   └── ...
│   ├── UnitOfWorks
│   │   ├── Abstract
│   │   │   └── IUnitOfWork
│   │   └── Concrete
│   │       └── UnitOfWork
│   └── Utility
│       ├── PaginatedList 
│       └── PaginationInfo
│
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── DTO  
│   ├── User
│   │   ├── UserValidators
│   │   │   ├── AddDtoValidator
│   │   │   └── ...
│   │   ├── UserToAddDto
│   │   └── ...
│   └── ...
│
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── ENTITIES
│   ├── Entities
│   │   ├── Redis
│   │   │   └── ..
│   │   ├── Logging
│   │   │   └── ..
│   │   ├── User
│   │   └── ..
│   ├── Enums
│   │   ├── UserType
│   │   └── ..
│   └── IEntity
│ 
│── ── ── ── ── ── ── ── ── ── ── ── ── ──
│
├── SOURCE
│   ├── Builders
│   ├── Helpers
│   ├── Models
│   └── Workers
│
└── ── ── ── ── ── ── ── ── ── ── ── ── ──

net7starter's People

Contributors

hamidmusayev avatar mustafamustafayev avatar orujovkamil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.