Skip to content

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

License

Notifications You must be signed in to change notification settings

mehmetyesildev/TechBlog-AspNetCore-CMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 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 Professional security, RBAC, 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 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 Role-Based Authorization (RBAC), AJAX-based interactions, and a Modern UI.


🌟 Key Features & Technical Insights

🏗️ 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.

🔐 Security & Authentication

  • Authentication: Evolving from Cookie-Based to ASP.NET Core Identity.
  • Role-Based Authorization (RBAC):
    • Admin: Full access to manage all content (Active/Passive), users, and roles.
    • User: Can only view and manage their own content; isolated from administrative functions.
  • Backend Validation: Prevents unauthorized access via URL manipulation (IDor Protection).

🎨 Frontend & UI

  • ViewComponents: Modular design for Sidebar, Popular Posts, and Tag Cloud.
  • AJAX & jQuery: Asynchronous comment submission and listing without page reloads.
  • Modern Design: Responsive card layouts utilizing Bootstrap 5.
  • State Management (UI): 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.

📸 Screenshots

1. Role-Based Authorization (Admin vs User)

Visual proof of backend security. The Admin manages the entire system, while standard users are isolated to their own data.

Admin Panel (Full Access) Standard User Panel (Restricted)
Admin manages all authors and statuses. Users only see their own posts.

2. Relational Data & Details

Reflection of database relationships (Joins) on the UI. The content and interaction areas are designed separately.

Rich Text Content (Html.Raw) Interactive Comment System (AJAX)
Blog posts support HTML content. Comments load asynchronously.

3. Content Creation Panel

TinyMCE editor and file upload mechanism.

4. Modern Showcase (Home Page)

Responsive home page with pagination infrastructure.


🛠️ 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
  • Project: ASP.NET Core Learning Path & Portfolio

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

No packages published