Skip to content

Repository files navigation

📚 Library Management System

LB_Home

A comprehensive library management system built with ASP.NET Core MVC, implementing Layered Architecture principles and modern web development practices.

🎓 Project Context

This project was developed as the capstone project for the MSCD Software Specialist Training Program at Arı Bilgi Bilişim Teknolojileri, demonstrating proficiency in full-stack .NET development and architectural design patterns.

✨ Key Features

📖 Book Management

  • Add New Books with detailed information (Title, Publish Year, Description, Cover Image)
  • Dynamic Category & Author Creation during book creation process
  • Comprehensive Book Listing with search and filter capabilities
  • Book Details View with complete information display
  • Edit & Delete Operations with data integrity checks

👥 Author Management

  • Author Profiles with full name and book count tracking
  • Author Details Page showing all books by the author
  • CRUD Operations (Create, Read, Update, Delete)
  • Dynamic Author Creation from book creation form

📂 Category Management

  • Category Organization with book count tracking
  • Creation Date Tracking for administrative purposes
  • Category Details showing all books in category
  • Full CRUD Operations

🔍 Advanced Search & Filtering

  • Multi-criteria Search (by Book Title, Author Name, Category)
  • Real-time Filtering with dynamic results
  • User-friendly Search Interface

🖼️ File Management

  • Image Upload System for book covers
  • File Validation (format, size restrictions)
  • Organized File Storage in dedicated folders

🏗️ Architecture & Technologies

The main structure I created: detailed_layeredarch

Technology Stack

  • Framework: ASP.NET Core MVC 8+
  • Database: Microsoft SQL Server
  • ORM: Entity Framework Core
  • Frontend: HTML5, CSS3, Bootstrap 5
  • JavaScript: jQuery
  • Icons: Font Awesome
  • Object Mapping: AutoMapper

Architectural Pattern: Layered Architecture

📁 Solution Structure
├── 🎨 Presentation Layer (UI.Web)
│ ├── Controllers/
│ ├── Views/
│ ├── Models/ (ViewModels)
│ ├── Helpers/ (FileUploadService)
│ └── wwwroot/ (Static files, uploads)
│
├── 💼 Business Layer
│ ├── Services/ (Business Logic)
│ └── Middlewares/
│
├── 🎯 Core Layer
│ ├── Abstracts/ (Interfaces)
│ │ ├── IRepositories/
│ │ ├── IServices/
│ │ └── IUnitOfWork
│ └── Concretes/
│ ├── DTOs/ (Data Transfer Objects)
│ ├── Entities/ (Domain Models)
│ └── Maps/ (AutoMapper Profiles)
│
├── 🗄️ Data Access Layer
│ ├── Contexts/ (DbContext)
│ ├── Repositories/ (Data Access)
│ ├── Migrations/
│ └── UnitOfWork/
│
└── 🛠️ Utilities
├── Generics/ (Generic Repository Pattern)
└── Results/ (Result Patterns)

🗃️ Database Schema

Core Entities

  • Books
LB_dbo books
  • Authors
LB_dbo authors
  • Categories
LB_dto categories

Relationships

  • Book ➤ Author (Many-to-One)
  • Book ➤ Category (Many-to-One)

🚀 Getting Started

Prerequisites

  • .NET 8.0 SDK or later
  • SQL Server (LocalDB or Full Version)
  • Visual Studio 2022 or VS Code

Installation Steps

  1. Clone the Repository

    git clone [repository-url]
    cd LibraryManagement
  2. Restore NuGet Packages

    dotnet restore
  3. Update Connection String

    // appsettings.json
    {
    "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=LibraryDB;Trusted_Connection=true"
    }
    }
  4. Apply Migrations

    dotnet ef database update
  5. Run the Application

    dotnet run

📱 Application Screenshots

🏠 Home Page

  • Clean, intuitive interface showing book collection
  • Advanced search functionality
  • Easy navigation to all features LB_Home_Filter

📚 Book Management

  • Add New Book: Comprehensive form with image upload
  • Book Listing: Organized grid view with pagination
  • Book Details: Full information display with cover image LB_AddBookLB_AddBook_authorLB_AddBook_categoryorauthor

👤 Author Management

  • Author Profiles: Complete author information
  • Book Count Tracking: Shows productivity metrics
  • Author Details: Lists all books by author LB_AuthorsLB_Author_DetailsLB_Author_EditLB_Authors_DeleteLB_Books_CreateJFIFfileuploaderror

🏷️ Category Management

  • Category Overview: Shows organization structure
  • Book Distribution: Visual representation of collection
  • Category Details: Filtered book listings LB_CategoriesLB_Categories_DetailsLB_Categories_EditLM_Categories_CreateLB_Categories_Delete

🔧 Design Patterns & Best Practices

Implemented Patterns

  • Repository Pattern: Clean data access abstraction
  • Unit of Work Pattern: Transaction management
  • Dependency Injection: Loose coupling and testability
  • DTO Pattern: Data transfer optimization
  • Result Pattern: Consistent error handling
  • MVC Pattern: Clear separation of concerns

Code Quality Features

  • SOLID Principles adherence
  • Clean Code practices
  • Error Handling with user-friendly messages
  • Validation on both client and server sides
  • Responsive Design for mobile compatibility

🎯 Learning Outcomes

This project demonstrates proficiency in:

  • Full-Stack Development with .NET Core ecosystem
  • Database Design and Entity Framework Core
  • Layered Architecture implementation
  • Modern Web UI/UX with Bootstrap and responsive design
  • File Upload & Management systems
  • Search & Filter functionality implementation
  • CRUD Operations with proper validation
  • Error Handling and user experience optimization

👨‍💻 Developer

Seyma Nur Dalamanli


This project represents the culmination of 4 months of intensive software development training, showcasing modern .NET development practices and architectural design principles.

About

A multi-layered Library Management System built with ASP.NET Core MVC and Entity Framework Core. Includes features like book listing, category management, advanced filtering, and DTO-based architecture with AutoMapper integration.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages