commodus / AspNetCoreHero-Boilerplate

ASP.NET CORE HERO - Boilerplate template for your next project!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ASP.NET Core Hero - Boilerplate

Beta V1.0 is Out!

Feel Free to Clone the Project and try it out.

Releases

v1.0 - Beta Release - Download Beta-V1.0 Release

Problem It will Solve

The Basic Idea is to save hours of development time. The users should be able to start off from the point all the technical aspects are already covered. The only thhing we need to worry is about implementing the Business Logic. I am planning this Project to have 2 realms - A Fluid UI Based ASP.NET Core 3.1 Razor Project and a WebAPI Project that provided data to public via valid JWT.

Give a Star ⭐️

If you found this Implementation helpful or used it in your Projects, do give it a star. Thanks! Or, If you are feeling really generous, Support the Project with a small contribution!

Tech Stack

  • ASP.NET Core 3.1 Razor Pages / Controllers / Web API
  • Entity Framework Core
  • MSSQL (Supports other RDBMS too)
  • Javascript / JQuery
  • Bootstrap 4 / AdminLTE

Getting Started with ASP.NET Core Hero - Boilerplate Template

  1. Clone this Repository and Extract it to a Folder.
  2. Change the Connection Strings for the Application and Identity in the PublicAPI/appsettings.json and Web/appsettings.json
  3. Run the following commands on Powershell in the Web Project's Directory.
  • dotnet restore
  • dotnet ef database update -Context ApplicationContext
  • dotnet ef database update -Context IdentityContext
  • dotnet run (OR) Run the Solution using Visual Studio 2019

PS - If the above code doesnt work for some reason, try using -C instead of -Context

Check out my blog or say Hi on Twitter!

Default Roles & Credentials

As soon you build and run your application, default users and roles get added to the database.

Default Roles are as follows.

  • SuperAdmin
  • Admin
  • Moderator
  • Basic

Here are the credentials for the default users.

Project Structure

  • ASP.NET Core 3.1 Razor Project with Identity
  • ASP.NET Core 3.1 WebAPI Public API Project with JWT Auth
  • Application Layer
  • Domain Layer
  • Infrastructure.Shared Layer
  • Infrastructure.Persistence Layer

Architecture

Check out a Diagramatic Representation of the Architecture here

Feature Overview

  • Onion / Hexagonal Architecture
  • Clean Code Practices
  • CQRS with MediatR
  • Cached Repository with In-Memory Caching and Redis Caching
  • Generic Repository with Unit Of Work Pattern
  • Complete User Management Module*
  • Role Management* (Add / Edit / Delete Roles)
  • Add Roles to Users
  • Automapper
  • Validation
  • Auditable Entity (Track Changes on any Entity based on User and DateTime)
  • Policy Based Permission Management*
  • Mail Service
  • Project Wise
  • CRUD on Product Entity Implemented for Reference

ASP.NET Core Razor Page

  • DARK Mode
  • MultiLingual
  • Fluid UI - Blazing Fast
  • AdminLTE
  • Responsive & Clean Design
  • RTL Support for Arabic Scripts
  • Cookie Authentication
  • Default User / Roles / Claims Seeding
  • Serilog Logging
  • Super Quick CRUD with Razor Page / Partial Views and JQuery
  • jQuery Datatable
  • Bootstrap Modal

ASP.NET Core WebAPI

  • JWT Authentication
  • Doesnot depend on the UI Project - Should run Individually
  • CQRS Approach to communicate with Application Layer
  • Response Wrappers
  • Swagger UI with Bearer Auth
  • API Versioning

Hangfire Server

  • Not yet used*

and much more. Feel Free to Clone the Project and try it out. Raise any issues / requests that you may find.

Support

Support This Project to keep it active.

Buy Me A Coffee

Questions? Bugs? Suggestions for Improvement?

Having any issues or troubles getting started? Get in touch with me or Raise a Bug or Feature Request. Always happy to help.

About the Author

Mukesh Murugan

Licensing

iammukeshm/AspNetCoreHero-Boilerplate Project is licensed with the MIT License.

About

ASP.NET CORE HERO - Boilerplate template for your next project!

License:MIT License


Languages

Language:CSS 38.2%Language:JavaScript 32.7%Language:SCSS 8.8%Language:C# 8.6%Language:Less 8.0%Language:HTML 3.8%