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 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.
- 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.
- 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).
- 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.
- 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.
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. |
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. |
TinyMCE editor and file upload mechanism.
Responsive home page with pagination infrastructure.
To run this project locally, follow these steps:
- Clone the repository:
git clone [https://github.com/mehmetyesildev/TechBlog-AspNetCore-CMS.git](https://github.com/mehmetyesildev/TechBlog-AspNetCore-CMS.git)
- Configure Database:
Update the "ConnectionStrings" in
appsettings.jsonto match your local SQL Server instance. - Update Database:
Open a terminal in the project directory and run:
dotnet ef database update
- Run the Application:
dotnet run
- Developer: Mehmet Yeşil
- Project: ASP.NET Core Learning Path & Portfolio





