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
- Clone this Repository and Extract it to a Folder.
- Change the Connection Strings for the Application and Identity in the PublicAPI/appsettings.json and Web/appsettings.json
- 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.
- Email - superadmin@gmail.com / Password - 123Pa$$word!
- Email - basic@gmail.com / Password - 123Pa$$word!
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.
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
- Blogs at codewithmukesh.com
- Facebook - codewithmukesh
- Twitter - Mukesh Murugan
- Twitter - codewithmukesh
- Linkedin - Mukesh Murugan
Licensing
iammukeshm/AspNetCoreHero-Boilerplate Project is licensed with the MIT License.