Skip to content

mehmetyesildev/TechBlog-AspNetCore-CMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“’ Architecture Versions

This project demonstrates my ability to implement different authentication patterns. You can browse the source code for both versions via branches:

Version Architecture Description Link
v2.0 (Current) ASP.NET Core Identity Granular RBAC (Admin/Moderator), Privilege Escalation Protection, Hashing, Lockout & 2FA ready. Browse Code
v1.0 (Legacy) Manual Cookie Auth Custom authentication built with HttpContext.SignInAsync. Browse Code

πŸš€ TechBlog - Modern ASP.NET Core CMS

.NET Core Entity Framework Bootstrap Security License

TechBlog is a dynamic content management system developed from scratch using ASP.NET Core 8.0 architecture. Built upon the principles of N-Tier Architecture, the project has been enhanced with Hierarchical Role-Based Authorization, AJAX-based interactions, and a Secure Admin Panel.


🌟 Key Features & Technical Insights

πŸ›‘οΈ Advanced Security & Identity (v2.0 Update)

  • ASP.NET Core Identity: Complete integration for secure user management, login, and registration.
  • Granular RBAC (Hierarchical Roles):
    • Admin: Full access. Can manage Roles, Users, and assign other Admins.
    • Moderator: Can manage content and users but has restricted privileges.
    • User: Isolated environment. Can only view/edit their own profile.
  • Privilege Escalation Protection:
    • Backend Logic: A specialized logic block prevents Moderators from assigning "Admin" or "Moderator" roles to others. This prevents unauthorized authority expansion.
    • Frontend Security: Dynamic Views automatically hide sensitive controls (e.g., "Admin" role checkbox, "Roles" menu link) based on the logged-in user's hierarchy.

πŸ—οΈ Backend & Architecture

  • Entity Framework Core (Code First): Database entities designed as C# classes and managed via Migrations.
  • Repository Pattern: Implemented to decouple business logic from data access, ensuring cleaner and testable code (PostsRepository).
  • Data Modeling: Optimized One-to-Many (Author-Post, Post-Comment) and Many-to-Many (Post-Tag) relationships.
  • Seed Data: Automated test data generation upon initial application startup.

🎨 Frontend & UI

  • Dynamic Navbar: Menu items (Users/Roles) adjust visibility based on User Claims.
  • AJAX & jQuery: Asynchronous comment submission and listing without page reloads.
  • ViewComponents: Modular design for Sidebar, Popular Posts, and Tag Cloud.
  • State Management: Visual badges for content status (Published/Draft) and user roles.

βš™οΈ Content Management System (CMS)

  • Rich Text Editor: Integrated TinyMCE for HTML-formatted blog post creation.
  • File Management: Server-side image upload handling via IFormFile.
  • Dynamic Filtering: Content filtering by Tags or Categories via URL routing.

πŸ“Έ v2.0 Security Showcase (Identity & RBAC)

This section demonstrates the Hierarchical Security System implemented in v2.0.

1. Granular Access Control (Admin vs. Moderator)

The most critical security feature: Moderators cannot create Admins. The system dynamically renders the UI based on privileges.

Admin Perspective (Full Control) Moderator Perspective (Restricted)
Admin Edit View Moderator Edit View
Admin can see and assign 'Admin' & 'Moderator' roles. Critical roles are HIDDEN and backend-protected.

2. Identity Pages & Role Management

Secure Login Interface Role Management (Admin Only)
Login Screen Role Management
Customized Identity forms. Admins can manage system roles.

πŸ“Έ General Application Screenshots

1. Modern Showcase (Home Page)

Responsive home page with pagination infrastructure.

2. Content Creation Panel

TinyMCE editor and file upload mechanism.

3. Interactive Comment System (AJAX)

Comments load and submit asynchronously.


πŸ› οΈ Installation & Setup

To run this project locally, follow these steps:

  1. Clone the repository:
    git clone [https://github.com/mehmetyesildev/TechBlog-AspNetCore-CMS.git](https://github.com/mehmetyesildev/TechBlog-AspNetCore-CMS.git)
  2. Configure Database: Update the "ConnectionStrings" in appsettings.json to match your local SQL Server instance.
  3. Update Database: Open a terminal in the project directory and run:
    dotnet ef database update
  4. Run the Application:
    dotnet run

πŸ‘¨β€πŸ’» Contact

  • Developer: Mehmet Yeşil

About

Professional Blog Content Management System (CMS) built with ASP.NET Core 8.0. A dynamic blogging platform featuring N-Tier Architecture, Role-Based Authorization (RBAC), AJAX interactions, and a modern Bootstrap 5 UI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors