A full-stack web application for book and category management, built with ASP.NET Core MVC and .NET 8. The project features layered architecture, authentication, CRUD operations, and responsive UI. Created as a learning project by following a comprehensive YouTube tutorial.
Books App is a role-based web application designed with clean architecture principles. It includes two user roles: Admin and Customer.
- Admin can manage categories and products (books) with full CRUD functionality.
- Customer can view the product list in a clean and user-friendly interface.
The project integrates authentication and authorization, Entity Framework Core, and a layered architecture to demonstrate a production-like backend structure. It also includes a modern responsive UI using Bootstrap, as well as user interaction enhancements with Toastr notifications and TinyMCE rich text editor.
- Framework: ASP.NET Core MVC (.NET 8)
- Language: C#
- Database: MS SQL Server
- ORM: Entity Framework Core
- Authentication & Authorization: ASP.NET Identity
- UI Framework: Bootstrap 5
- Text Editor: TinyMCE (for product description)
- Notifications: Toastr.js
- IDE: Visual Studio 2022
The project follows a clean, modular, and scalable architecture:
-
Layered Structure:
Models– Application models likeCategory,Product, andApplicationUser.DataAccess– Contains DB context (ApplicationDbContext), repositories, and interfaces.Utilities– Helper classes and constants.
-
Design Patterns:
- Repository Pattern – For abstracting data access.
- Dependency Injection – Used throughout the project (e.g., Singleton services).
-
ASP.NET MVC Features:
- Areas: Admin and Customer areas separate business logic and views.
- CRUD Operations: Implemented for both
CategoryandProductentities. - Role-Based Access Control: Admins manage data; customers view products only.
The application uses MS SQL Server as its database and integrates it via Entity Framework Core using Code-First approach.
-
Custom ApplicationDbContext handles the connection and database logic.
-
Identity tables are included by default for user authentication and role management.
-
The main application tables include:
-
Categories
-
Products
-
ApplicationUsers
-
Entity relationships are set up through navigation properties. Each product belongs to a category, and the admin user can perform all data operations on these entities via the admin panel.
📷 Below is a snapshot of the database structure (as viewed from SQL Server Management Studio):
By building this project, I gained practical experience in:
- Implementing layered architecture in enterprise-level web applications.
- Performing CRUD operations using Entity Framework Core.
- Managing user roles and permissions with ASP.NET Identity.
- Structuring scalable code with the Repository Pattern.
- Creating responsive UI layouts with Bootstrap.
- Enhancing UX with Toastr notifications and TinyMCE editors.
- Applying Dependency Injection for service configuration.
- Using Areas in ASP.NET MVC for better organization.
This project helped me strengthen my backend development skills with ASP.NET Core and improve my confidence in building real-world applications.
This project was developed by following an excellent YouTube tutorial series that explains every step in detail:
🎥 YouTube Tutorial:
Build a Full ASP.NET Core MVC Application
Below are screenshots from various pages of the application, showcasing both Admin and Customer functionalities such as CRUD operations, authentication, and product browsing.
Feel free to fork, star, or explore the project for your own learning journey!










